EsploraTFTEtchASketch

Arduino TFT ekran ve Esplora için bu örnek, joystick'in konumuna bağlı olarak ekranda beyaz bir çizgi çiziyor. Ekranı temizlemek için Esplora'yı sallayın. İvmeölçerdeki değerler ekranın temizlenip silinmeyeceğini belirler.

Gerekli Donanım

  • Arduino Esplora
  • Arduino TFT ekran

Devre

Ekranı, "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 <Esplora.h>
#include <TFT.h>
#include <SPI.h>
[Kodu Al]

İmlecin x & y konumunu ayarlayın. Örnekte, ekranın ortasında başlar; ekranın yüksekliğini ve genişliğini 2'ye bölerek belirlenir.

int xPos = EsploraTFT. genişlik ( ) / 2 ;
int yPos = EsploraTFT. yükseklik ( ) / 2 ;

setup() , ekranı başlatın ve ekranın arka planını temizleyin.

void setup ( ) {
EsploraTFT. begin ( ) ;
EsploraTFT. arka plan ( 0 , 0 , 0 ) ;
}

Kumanda kolunun değerlerini okuyun ve daha küçük bir sayıya eşleyin. Kumanda kolunuzun orta konumdayken 0 okumaması mümkündür. İmlecin yalnızca kumanda kolu kasıtlı olarak hareket ettirildiğinde hareket ettiğinden emin olmak için, konumunun bir eşiğin içinde olup olmadığını kontrol etmek için bir if ifadesi kullanın (bu durumda -10 ila 10). Bu aralık dahilindeyse, oğul; t imleç konumunu güncelle. Ancak, bunun dışındaysa imleci uygun yönde hareket ettirin.

void loop ( )
{
int xAxis = Esplora. readJoystickX ( ) ;
int yAxis = Esplora. readJoystickY ( ) ;

eğer ( xAxis < 10 && xAxis > - 10 ) {
xPos = xPos ;
}
başka {
xPos = xPos + ( harita ( xAxis , - 512 , 512 , 2 , - 2 ) ) ;
}
eğer ( yAxis < 10 && yAxis > - 10 ) {
yAxis = yAxis ;
}
başka {
yPos = yPos + ( harita ( yAxis , - 512 , 512 , - 2 , 2 ) ) ;
}

Noktayı çizmeden önce imlecin birkaç if() ifadesi ile ekran dışına taşınmasını önlemek isteyeceksiniz.

eğer ( xPos > 159 ) {
( xPos = 159 ) ;
}

eğer ( xPos < 0 ) {
( xPos = 0 ) ;
}
eğer ( yPos > 127 ) {
( yPos = 127 ) ;
}

eğer ( yPos < 0 ) {
( yPos = 0 ) ;
}

EsploraTFT. inme ( 255 , 255 , 255 ) ;
EsploraTFT. nokta ( xPos , yPos ) ;

Son olarak, ivmeölçerin değerini kontrol edin. X veya y ekseninin değeri belirlediğiniz eşiğin üzerindeyse, ekranı background() temizleyin.

if ( abs ( Esplora. readAccelerometer ( X_AXIS ) ) > 200 || abs ( Esplora. readAccelerometer ( Y_AXIS ) ) > 200 ) {
EsploraTFT. arka plan ( 0 , 0 , 0 ) ;
}

gecikme ( 33 ) ;
}

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

/ *

Esplora TFT EtchASketch

Arduino TFT ve Esplora için bu örnek
pozisyona bağlı olarak ekranda beyaz bir çizgi
oyun çubuğu. Ekranı temizlemek için
İvmeölçerdeki değerleri kullanarak Esplora.

Bu örnek kod kamu malıdır.

15 Nisan 2013 tarafından Scott Fitzgerald tarafından oluşturuldu

http: egitim.aspx e = EsploraTFTEtchASketch

* /


#include <Esplora.h>
#include <TFT.h> // Arduino LCD kütüphanesi
#include <SPI.h>

// imlecin başlangıç konumu
int xPos = EsploraTFT. genişlik ( ) / 2 ;
int yPos = EsploraTFT. yükseklik ( ) / 2 ;

void setup ( ) {
// ekranı başlat
EsploraTFT. begin ( ) ;

// arka planı temizle
EsploraTFT. arka plan ( 0 , 0 , 0 ) ;
}

void loop ( ) {

int xAxis = Esplora. readJoystickX ( ) ; // X eksenini okuyun
int yAxis = Esplora. readJoystickY ( ) ; // Y eksenini oku

// hattın konumunu güncelleyin
// joystick'in konumuna bağlı olarak
eğer ( xAxis < 10 && xAxis > - 10 ) {
xPos = xPos ;
} başka {
xPos = xPos + ( harita ( xAxis , - 512 , 512 , 2 , - 2 ) ) ;
}
eğer ( yAxis < 10 && yAxis > - 10 ) {
yAxis = yAxis ;
} başka {
yPos = yPos + ( harita ( yAxis , - 512 , 512 , - 2 , 2 ) ) ;
}

// noktanın ekran kenarlarından geçmesine izin verme
eğer ( xPos > 159 ) {
( xPos = 159 ) ;
}

eğer ( xPos < 0 ) {
( xPos = 0 ) ;
}
eğer ( yPos > 127 ) {
( yPos = 127 ) ;
}

eğer ( yPos < 0 ) {
( yPos = 0 ) ;
}

// noktayı çiz
EsploraTFT. inme ( 255 , 255 , 255 ) ;
EsploraTFT. nokta ( xPos , yPos ) ;

// ivmeölçer değerlerini kontrol edin ve temizleyin
// sallanıyorsa ekran
if ( abs ( Esplora. readAccelerometer ( X_AXIS ) ) > 200 || abs ( Esplora. readAccelerometer ( Y_AXIS ) ) > 200 ) {
EsploraTFT. arka plan ( 0 , 0 , 0 ) ;
}

gecikme ( 33 ) ;
}