Eğitimler
EsploraTFTHorizon
Arduino Esplora ile TFT ekran için bu çizim, yerleşik ivmeölçerin değerini okur ve ekran boyunca ufka paralel kalan bir çizgi çizer.
Esplora'yı eğdiğinizde, ivmeölçer yönünü dünyanın merkezine bildirir. Bu değerlerin eşlenmesi, çizgiyi ufuk çizgisiyle hizalanmış olarak sallamanıza olanak tanır.
Gerekli Donanım
- Arduino Esplora
- Arduino TFT ekran
Devre
TFT ekranını "SD Kart" etiketi yukarı bakacak şekilde Esplora'nızdaki sokete takın.
Kod
Ekranı kullanmak için önce SPI ve TFT kitaplıklarını eklemeniz gerekir. Esplora kütüphanesini de eklemeyi unutmayın.
#include <TFT.h>
#include <SPI.h>
Satırın başlangıç ve bitiş noktaları için değişkenlerin yanı sıra loop()
aracılığıyla bir önceki kez konumları tutacak değişkenler oluşturun. Bu değerleri, konumu değiştirdiğinde satırları silmek için kullanırsınız.
int yEnd = EsploraTFT. yükseklik ( ) / 2 ;
int oldEndY ;
int oldStartY ;
setup()
, ekranı başlatın ve ekranın arka planını temizleyin.
EsploraTFT. begin ( ) ;
EsploraTFT. arka plan ( 0 , 0 , 0 ) ;
}
loop()
öğesinde, ivmeölçerin x eksenindeki değeri okuyun. Bu, Esplora yüzünüzün önünde, dünyaya dik tutulduğunda ufka doğru yönlendirilmiş eksendir. İvmeölçerdeki değerleri, çizginin başlangıç noktası 0 ile ekranın yüksekliği arasında olacak şekilde eşleyin. Bitiş noktasını bulmak için çıktı değerlerini ters çevirin
{
int tilt = Esplora. akselerometre ( X_AXIS ) ;
yStart = harita ( eğim , - 100 , 100 , EsploraTFT. yükseklik ( ) , 0 ) ;
yEnd = harita ( eğim , - 100 , 100 , 0 , EsploraTFT. yükseklik ( ) ) ;
Geçerli başlangıç ve bitiş noktalarını, önceki loop()
önceki değerlerle karşılaştırın. Farklılarsa, önceden çizilen çizgiyi silin. Ardından, eşlenen değerlere göre çizgiyi yeni konumuna çizin.
EsploraTFT. inme ( 0 , 0 , 0 ) ;
EsploraTFT. çizgi ( 0 , oldStartY , EsploraTFT. genişlik ( ) , oldEndY ) ;
}
EsploraTFT. inme ( 255 , 0 , 255 ) ;
EsploraTFT. çizgi ( 0 , yStart , EsploraTFT. genişlik ( ) , yEnd ) ;
loop()
ile bir sonraki sefer karşılaştırmak için geçerli başlangıç ve bitiş değerlerini önceki değerler olarak kaydedin.
oldEndY = yEnd ;
gecikme ( 10 ) ;
}
Çizimin tamamı aşağıdadır:
Esplora TFT Horizon
Arduino TFT ve Esplora için bu örnek
ekranda zeminle aynı seviyede kalan bir çizgi
Esplora'yı yan yana döşerken
Bu örnek kod kamu malıdır.
15 Nisan 2013 tarafından Scott Fitzgerald tarafından oluşturuldu
http: egitim.aspx e = EsploraTFTHorizon
* /
#include <Esplora.h>
#include <TFT.h> // Arduino LCD kütüphanesi
#include <SPI.h>
// yatay başlangıç ve bitiş konumları
int yStart = EsploraTFT. yükseklik ( ) / 2 ;
int yEnd = EsploraTFT. yükseklik ( ) / 2 ;
// önceki başlangıç ve bitiş konumları
int oldEndY ;
int oldStartY ;
void setup ( ) {
// ekranı başlat
EsploraTFT. begin ( ) ;
// arka planı siyah yap
EsploraTFT. arka plan ( 0 , 0 , 0 ) ;
}
void loop ( ) {
// ivmeölçerin x eksenini okuyun
int tilt = Esplora. akselerometre ( X_AXIS ) ;
// sola yatırıldığında değerler 100
// sağa yatırıldığında -100
// bu değerleri başlangıç ve bitiş noktalarına eşle
yStart = harita ( eğim , - 100 , 100 , EsploraTFT. yükseklik ( ) , 0 ) ;
yEnd = harita ( eğim , - 100 , 100 , 0 , EsploraTFT. yükseklik ( ) ) ;
// önceki değerler geçerli değerlerden farklıysa
// önceki satırı sil
if ( oldStartY ! = yStart || oldEndY ! = yEnd ) {
EsploraTFT. inme ( 0 , 0 , 0 ) ;
EsploraTFT. çizgi ( 0 , oldStartY , EsploraTFT. genişlik ( ) , oldEndY ) ;
}
// macentada çizgi çiz
EsploraTFT. inme ( 255 , 0 , 255 ) ;
EsploraTFT. çizgi ( 0 , yStart , EsploraTFT. genişlik ( ) , yEnd ) ;
// geçerli başlangıç ve bitiş noktalarını kaydet
// bir sonraki döngüde karşılaştırmak için
oldStartY = yStart ;
oldEndY = yEnd ;
gecikme ( 10 ) ;
}