EsploraTFTBitmapLogo

Arduino ekranlı Esplora için bu örnek bir SD karttan bir bitmap dosyası okur ve rastgele bir yerde ekranda görüntüler.

Bu örneğin çalışması için "logo.bmp" adlı bir görüntüyü SD kartın kök dizinine kaydetmeniz gerekir. SD kartın FAT16 ve FAT32 formatlı olması gerekir. SD kartlarla çalışma hakkında daha fazla bilgi için SD kitaplığı belgelerine bakın.

Gerekli Donanım

  • Arduino Esplora
  • Arduino TFT ekran
  • Mikro SD kart

TFT ekranını "SD Kart" etiketi yukarı bakacak şekilde Esplora'nızdaki sokete takın. "Logo.bmp" dosyasını içeren SD kartı yuvaya takın.

Kod

Ekranı kullanmak için önce SPI ve TFT kitaplıklarını eklemeniz gerekir. Resmi karttan okumak için Esplora kütüphanesini ve SD kütüphanesini eklemeyi unutmayın.

#include <Esplora.h>
#include <TFT.h>
#include <SPI.h>
#include <SD.h>
[Kodu Al]

SD okuyucunun çip seçimi (CS) için pimi tanımlamanız gerekir. Esplora'da, pin 8'e eşlenir.

#define SD_CS 8

Görüntü bilgilerini tutmak için PImage adı verilen özel bir veri türü vardır. PImage'ın adlandırılmış bir sürümünü oluşturma

PImage logosu ;

setup() da seri bağlantı noktasını başlatacak ve başlatmadan önce etkinleşmesini bekleyeceksiniz. Bu, çizim yüklendikten sonra seri monitörü açmanız gerektiği anlamına gelir. Durum bilgisini yok saymak istiyorsanız while() döngüsünü yorumlayın.

Seri iletişim başladıktan sonra, SD kütüphanesini başlatın. Bir hata varsa, Esplora'nın LED'ini kırmızıya çevirin.

void setup ( ) {
Seri . başlar ( 9600 ) ;
while ( ! Seri ) {
}

Seri . print ( "SD kart başlatılıyor ..." ) ;
eğer ( ! SD. başlar ( SD_CS ) ) {
Seri . println ( "başarısız oldu!" ) ;
Esplora. writeRed ( 255 ) ;
dönüş ;
}
Seri . println ( "Tamam!" ) ;

Ekranı başlat ve temizle

EsploraTFT. begin ( ) ;
EsploraTFT. arka plan ( 255 , 255 , 255 ) ;

loadimage() ile daha önce adlandırdığınız PImage içine görüntü dosyasını okumayı deneyin. Geçerli bir görüntü olup olmadığını kontrol edin ve her şey yolundaysa Esplora'nın LED'ini yeşil, bir hata varsa kırmızıya çevirin.

Esplora. writeRGB ( 0 , 0 , 0 ) ;
logo = EsploraTFT. loadImage ( "logo.bmp" ) ;
if ( logo. isValid ( ) ) {
Esplora. writeGreen ( 255 ) ;
}
Başka
Esplora. writeRed ( 255 ) ;

}

Görüntü doğru yüklenmediyse, devam etmeden önce çizimi durdurun.

void loop ( ) {
if ( logo. isValid ( ) == false ) {
dönüş ;
}

Görüntü bilgileri geçerliyse, görüntüyü görüntülemek için ekranda rastgele bir nokta seçin. Tüm görüntünün ekranda çizildiğinden emin olmak için görüntünün boyutlarını alın ve görüntüyü ekranın boyutlarından çıkarın.

int x = rastgele ( EsploraTFT. width ( ) - logo. width ( ) ) ;
int y = rastgele ( EsploraTFT. yükseklik ( ) - logo. yükseklik ( ) ) ;

Önceki adımdan rastgele koordinatlardan başlayarak görüntüyü ekranda çizin ve sonraki loop() girmeden önce biraz bekleyin loop()

EsploraTFT. görüntü ( logo , x , y ) ;

gecikme ( 1500 ) ;
}

Çizimin tamamı aşağıdadır:

/ *

Esplora TFT Bitmap Logoları

Arduino TFT ekran için bu örnek kullanım içindir
Arduino Esplora ile.

Bu örnek, bir mikro SD karttan bir görüntü dosyasını okur
ve rastgele konumlarda ekrana çizer.

Bu çizimde bir .bmp dosyası var.
- çizim klasörünü açın (Ctrl-K veya Cmd-K)
- "arduino.bmp" dosyasını bir mikro SD'ye kopyalayın
- SD'yi Arduino LCD modülünün SD yuvasına yerleştirin.

Bu örnek kod kamu malıdır.

19 Nisan 2013 tarihinde Enrico Gueli tarafından oluşturuldu

http: egitim.aspx e = EsploraTFTBitmapLogo

* /


// gerekli kütüphaneleri dahil et
#include <Esplora.h>
#include <SPI.h>
#include <SD.h>
#include <TFT.h> // Arduino LCD kütüphanesi

// SD kart için yonga seçme hattına bağlı Esplora pimi
#define SD_CS 8

// bu değişken ekranda çizilecek görüntüyü temsil eder
PImage logosu ;

void setup ( ) {
// GLCD'yi başlat ve bir mesaj göster
// kullanıcıdan seri hattı açmasını istemek
EsploraTFT. begin ( ) ;
EsploraTFT. arka plan ( 255 , 255 , 255 ) ;

EsploraTFT. inme ( 0 , 0 , 255 ) ;
EsploraTFT. println ( ) ;
EsploraTFT. println ( F ( "Arduino LCD Bitmap Örneği" ) ) ;
EsploraTFT. inme ( 0 , 0 , 0 ) ;
EsploraTFT. println ( F ( "Seri monitörü aç" ) ) ;
EsploraTFT. println ( F ( "çizimi çalıştırmak için" ) ) ;

// seri bağlantı noktasını başlat:
// bazı tanılama bilgilerini yazdır
Seri . başlar ( 9600 ) ;
while ( ! Seri ) {
// seri portun bağlanmasını bekleyin. Yalnızca yerel USB bağlantı noktası için gereklidir
}

// SD karta erişmeyi deneyin. Bu başarısız olursa (ör.
// kart yok), Esplora'nın LED'i kırmızıya döner.
Seri . baskı ( F ( "SD kart başlatılıyor ..." ) ) ;
eğer ( ! SD. başlar ( SD_CS ) ) {
Seri . println ( F ( "başarısız oldu!" ) ) ;
Esplora. writeRed ( 255 ) ;
dönüş ;
}
Seri . println ( "Tamam!" ) ;

// başlamadan önce GLCD ekranını temizleyin
EsploraTFT. arka plan ( 255 , 255 , 255 ) ;

// artık SD karta erişilebildiğine göre,
// Görüntü dosyası. Esplora LED'i yeşil veya kırmızı renkte yanarsa
// yükleme tamam mı değil mi?
Esplora. writeRGB ( 0 , 0 , 0 ) ;
logo = EsploraTFT. loadImage ( "arduino.bmp" ) ;
if ( logo. isValid ( ) ) {
Esplora. writeGreen ( 255 ) ;
} başka {
Esplora. writeRed ( 255 ) ;
}

}

void loop ( ) {
// resim doğru yüklenmediyse hiçbir şey yapmayın.
if ( logo. isValid ( ) == false ) {
dönüş ;
}

Seri . println ( F ( "çizim resmi" ) ) ;

// görüntünün çizileceği rastgele bir konum elde edin.
// Görüntünün ekran dışına çizilmesini önlemek için,
// resim boyutunu dikkate alınız.
int x = rastgele ( EsploraTFT. width ( ) - logo. width ( ) ) ;
int y = rastgele ( EsploraTFT. yükseklik ( ) - logo. yükseklik ( ) ) ;

// görüntüyü ekrana çiz
EsploraTFT. görüntü ( logo , x , y ) ;

// tekrar çizmeden önce biraz bekle
gecikme ( 1500 ) ;
}