İçindekiler:

Arduino TFT Çizim Programı: 4 Adım
Arduino TFT Çizim Programı: 4 Adım

Video: Arduino TFT Çizim Programı: 4 Adım

Video: Arduino TFT Çizim Programı: 4 Adım
Video: ChatGPT with Arduino Nano #arduino #chatgpt #technology #openAI #electronic 2024, Temmuz
Anonim
Arduino TFT Çizim Programı
Arduino TFT Çizim Programı
Arduino TFT Çizim Programı
Arduino TFT Çizim Programı
Arduino TFT Çizim Programı
Arduino TFT Çizim Programı

Bu talimat, bir Arduino TFT ekranı için bir çizim programı oluşturmaya giden kodu detaylandırır. Ancak bu program benzersizdir, çünkü bir çizimin SD karta kaydedilmesine ve daha sonra daha fazla düzenleme yapmak için yüklenmesine izin verir!

Gereçler

  1. Arduino Uno - orijinal veya uyumlu bir klon
  2. TFT dokunmatik ekran - Bir Elegoo ekranı kullandım, yani Elegoo sürücülerine ihtiyacım vardı.
  3. Micro SD okuyucu kartı - çizim verilerini SD karta depolamak için kullanılır. Ekranımın altında yerleşik bir okuyucu vardı.
  4. Stylus - ekranım bir tane ile geldi. Tırnaklar da iyi çalışır.
  5. Micro SD kart - exFAT formatlama sınırlamaları nedeniyle 32GB'tan fazla değil (Arduino FAT32 formatlı kartları okuyabilir ancak exFAT DEĞİLDİR. Çoğu büyük kart exFAT ile formatlanmıştır.). Bu, genişletilebilir depolama alanına sahip bir telefona koyacağınız türdendir.
  6. Arduino IDE'li bilgisayar
  7. Programlama kablosu - USB A'dan USB B'ye. Arduino'm bir tane ile geldi.
  8. SD kart adaptörü - Micro SD kartı, SD yuvasına takmak için normal bir SD'ye VEYA bir SD kartı bir USB yuvasına bağlayan bir SD'ye dönüştürmek için kullanılır.

1. Adım: SD Kartı Biçimlendirin

SD Kartı Biçimlendir
SD Kartı Biçimlendir
SD Kartı Biçimlendir
SD Kartı Biçimlendir
  1. Micro SD kartı alın ve SD kart okuyucunuzu kullanarak bilgisayarınıza takın
  2. Dosya Gezgini'ni açın ve SD kartı bulun.
  3. Sağ tıklayın ve Format'ı seçin.
  4. Ekran görüntüsüne göre seçenekleri ayarlayın.
  5. Başlat'a tıklayın.
  6. İşlem tamamlandığında kartı çıkarın.

Windows çalıştırmıyorsanız, SD ilişkilendirmesinden SD Formatter kullanmayı deneyin.

Adım 2: Arduino'yu Hazırlayın

Arduino'yu hazırlayın
Arduino'yu hazırlayın
Arduino'yu hazırlayın
Arduino'yu hazırlayın
  1. Pinleri hizalamaya dikkat ederek ekran koruyucunuzu Arduino'nun üzerine bastırın.
  2. SD kartı ekranın altındaki okuyucuya takın.

Adım 3: Arduino Kroki

Parça listesi oldukça basit olmasına rağmen, bir ton kod var. Burada adım adım anlatacağım.

#Dahil etmek

#include #include #include #include

Elegoo_GFX, _TFTLCD ve TouchScreen'in tümü donanıma özeldir. Farklı bir ekran kullanıyorsanız, üretici tarafından sağlanan kitaplıkları kullanın.

SPI ve SD, SD kart ile iletişim kurmak için kullanılır. SPI, SD kart denetleyicisi tarafından kullanılan protokoldür.

#if tanımlı(_SAM3X8E_)#undef _FlashStringHelper::F(string_literal) #define F(string_literal) string_literal #endif

Bu aynı zamanda donanıma özeldir.

#define YP A3 // analog pin olmalı#define XM A2 // analog pin olmalı #define YM 9 #define XP 8

//Yeni ILI9341 TP İçin Dokunun

#tanımla TS_MINX 120 #tanımla TS_MAXX 900 #tanımla TS_MINY 70 #tanımla TS_MAXY 920

#define CSPIN 10

#define LCD_CS A3

#define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4

Bu #define ifadelerinin her biri, IDE'nin adı değerle değiştirmesini sağlar. Burada LCD ve SD I/O pinlerini ayarlarlar.

// Bazı 16 bitlik renk değerlerine ad atayın:#define BLACK 0x0000 #define WHITE 0xFFFF #define RED 0xF800 #define BLUE 0x001F #define GREEN 0x07E0

Bunlar kodda kullanılan renklerden birkaçı. #define-ing onları kodu okumayı kolaylaştırır.

#define PENRADIUS 3

Bu, çizim kaleminin boyutunu tanımlar.

#define MINPRESSURE 10#define MAXPRESSURE 1000

// Daha iyi basınç hassasiyeti için direnci bilmemiz gerekir

// X+ ve X- arasında Okumak için herhangi bir multimetre kullanın // Kullandığım için, X plakası boyunca 300 ohm'u Dokunmatik Ekran ts = Dokunmatik Ekran(XP, YP, XM, YM, 300);

Elegoo_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

Bu ifadeler bir dokunuşu kaydetmek, dokunma işlevini başlatmak ve ekranı başlatmak için gereken basıncı tanımlar.

Dosya depolama;int depolamaBoyutu; int stoX = 1; int stok = 1;

Bunlar, programın depolama kısmı için değişkenlerdir.

void setup(void) { Serial.begin(9600); Serial.println("Boya programı");

tft.reset();

uint16_t tanımlayıcı = tft.readID();

if (tanımlayıcı == 0x0101) { tanımlayıcı = 0x9341; Serial.println(F("0x9341 LCD sürücüsü bulundu")); }

//Ekranı başlat

tft.begin(tanımlayıcı); tft.setRotation(2);

pinMode(13, ÇIKIŞ);

//SD kartı başlat

if (!SD.begin(CSPIN)) { Serial.println("SD başlatma başarısız"); dönüş; } Serial.println("SD başlatıldı");

//Arka planı çiz

drawBackground(); }

Kurulum işlevi, varsa Seri'yi başlatır, ekranı sıfırlar, TFT sürücüsünü algılar, ekranı başlatır, kartı başlatır ve arka planı çizmek için bir işlev çağırır.

Döngü fonksiyonunun ana kısmına atlayacağım. Diğer her şey sadece dokunmatik ekranı sürmek için kullanılıyor.

//Ekranı algıla ve eğer (p.z > MINPRESSURE && p.z < MAXPRESSURE) { //Scale p.x = map(p.x, TS_MINX, TS_MAXX, tft.width(), 0); p.y = (tft.height() - harita(p.y, TS_MINY, TS_MAXY, tft.height(), 0));

//Çizmek

if (p.y > 21) { //Verileri SD kart deposuna kaydet = SD.open("storage.txt", FILE_WRITE); depolama.baskı(p.x); depolama.print(", "); depolama.println(p.y); depolama.close();

//Dokunma konumunda nokta

tft.fillCircle(p.x, p.y, PENRADIUS, BEYAZ); }

//Sil düğmesi

if ((p.y 198) && (p.x < 219)) { deleteStorage(); }

//Düğme eylemi yükle

if ((p.y 219)) { loadStorage(); } }

Bir pres algılanırsa, presin konumu için değişkenleri ayarlayın.

Ardından, eğer baskı çizim alanı içindeyse, noktayı depolama.txt dosyasındaki SD karta kaydedin ve basılan noktada tanımlanmış bir boyut ve renk ile bir daire çizin.

Ardından, pres sil düğmesinin bulunduğu yerdeyse, saklanan çizimi silen bir işlevi çalıştırın. Farklı boyutta bir ekran kullanıyorsanız, düğme konum değerleriyle oynamayı deneyin.

Ardından, pres, yükle düğmesinin bulunduğu yerdeyse, saklanan çizimi yükleyen bir işlevi çalıştırın. Farklı boyutta bir ekran kullanıyorsanız, düğme konum değerleriyle oynamayı deneyin.

Şimdi fonksiyonları anlatacağım.

İlk işlev, arka planı ve düğmeleri çizmek için kurulumda çağrılır.

void drawBackground() { //Arka planı ayarlayın tft.fillScreen(BLACK);

// Metni boya

tft.setTextColor(BEYAZ); tft.setTextSize(3); tft.setCursor(0, 0); tft.println("Boya");

//Yükle düğmesi

tft.fillRect(219, 0, 21, 21, YEŞİL);

//Temizle düğmesi

tft.fillRect(198, 0, 21, 21, KIRMIZI); }

Ekranı siyah doldurur, Paint kelimesini yazar ve düğmeler için renkli kareler çizer. Farklı boyutta bir ekran kullanıyorsanız, düğme konum değerleriyle oynamayı deneyin.

void deleteStorage() { //SD.remove("storage.txt") dosyasını silin;

//Arka planı ayarla

tft.fillScreen(SİYAH);

// Başarı metnini sil

tft.setTextColor(BEYAZ); tft.setTextSize(2); tft.setCursor(0, 0); tft.println("storage.txt silindi");

//Kullanıcının okumasına izin ver

gecikme(2000);

//Çizime devam et

drawBackground(); }

deleteStorage işlevi, storage.txt dosyasını kaldırır, ekranı siyahla doldurur ve silinmesi için bir başarı mesajı verir. Ardından, başka bir şey boyamaya başlamanıza izin vermek için drawBackground işlevini çağırır.

void loadStorage() { //Parmakların yavaş gecikmesinden dolayı tekrarlardan kaçının(250);

//Depolama dosyasını kontrol et

if (!SD.exists("storage.txt")) { Serial.println("Depolama.txt dosyası yok"); dönüş; }

//Dosyayı salt okunur modda aç

depolama = SD.open("storage.txt", FILE_READ);

//Veri varken, while (stoY > 0) { //Konum değişkenlerini güncelle stoX = storage.parseInt(); stoY = depolama.parseInt();

//Depodan çiz

tft.fillCircle(stoX, stoY, PENRADIUS, BEYAZ); } //depolama dosyasını kapatın.close(); }

Son olarak loadStorage işlevi bir depolama dosyası olup olmadığını kontrol eder, onu salt okunur modda açar ve ardından şu döngüyü tekrarlar:

Daha fazla veri olduğu sürece,

  1. Storage.txt dosyasındaki ayrıştırılmış verilerle konum değişkenlerini güncelleyin
  2. Yüklenen noktada bir daire çizin

Döngü tamamlandığında ve başka veri kalmadığında, depolama dosyasını kapatır.

Bu eskizin kodu aşağıda bulunabilir. Sadece indirin, Arduino'da açın ve panonuza yükleyin!

Adım 4: Bu Programı Kullanma

Bu Programı Kullanmak
Bu Programı Kullanmak

Arduino'nuzu bir güç kaynağına (bilgisayar, pil, duvar siğili vb.) takın ve çizmeye başlayın. Çiziminizi ve saklanan verilerini silmek için kırmızı düğmeye basın. Depodan bir çizim yüklemek ve üzerinde çalışmaya devam etmek için yeşil düğmeye tıklayın. Bu şekilde, bir çizim üzerinde birçok kez yineleme yapabilirsiniz!

Bir uzantı olarak, çizimi bilgisayarınızda çizmeyi deneyin:

  1. Verileri içeren SD kartı bilgisayarınıza takın.
  2. En sevdiğiniz metin/kod düzenleyicide storage.txt dosyasını açın.
  3. Storage.txt içindeki tüm değerleri kopyalayın.
  4. Bir nokta çizme programı için bu bağlantıyı takip edin.
  5. Soldaki iki örnek noktayı silin.
  6. Verilerinizi örnek noktaların olduğu yere yapıştırın.

Bu, çizimlerinizi göstermenin güzel bir yoludur - belki Arduino'da veya nokta çizicide nokta rengini değiştirmeyi deneyin!

Değişiklikler memnuniyetle karşılanır ve yorumlarda bazı öneriler görmeyi çok isterim. Buna bir göz attığınız için teşekkürler ve umarım kendi projelerinizde bunun için düzgün kullanımlar bulursunuz!

Önerilen: