Kazalo:
- Zaloge
- 1. korak: Kako deluje ……
- 2. korak: nalaganje kode
- 3. korak: potrebne knjižnice:
- 4. korak: Povezave
- 5. korak: Udarite vse skupaj
- 6. korak: Nadaljnje izboljšave:
Video: Robot, ki pove, ali vas prodajalec elektronike vara ali ne: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Lani sva z očetom odšla v novo odprto trgovino z robotiko/elektroniko zelo blizu mesta, kjer živimo. Ko sem vstopil tja, je bilo polno elektronike, serov, senzorjev, Raspberry pis in Arduinosa. Naslednji dan smo odšli v isto trgovino in kupili veliko senzorjev in 3 Arduino v vrednosti približno 150 USD. Takoj, ko sem šel domov, niso delovali nobeni drugi izdelki, razen Arduino Mega. Prevarali so nas za približno 130 USD, kar je veliko.
Zato sem se odločil ustvariti robota, ki lahko preizkusi približno 12 senzorjev in 2 motorja (še vedno deluje na servo) in lahko ugotovi, ali je izdelek okvarjen.
Pojdimo naravnost!
Zaloge
1. Arduino UNO
2. 2,4 -palčni zaslon na dotik TFT
3. nekaj mostičnih žic
4. senzorji in motorji, da jih lahko preizkusite (tukaj sem uporabil - senzor gibanja, senzor plina MQ6, senzor zvoka, potenciometer in senzor nivoja vode)
1. korak: Kako deluje ……
Arduino sem programiral za ustvarjanje in interaktivni uporabniški vmesnik s TFT zaslonom. Kot vemo, ima zaslon TFT samo en prosti pin, to je pin A5. (če uporabljate UNO). Torej je kateri koli senzor, ki za branje podatkov uporablja analogne nožice, združljiv s to nastavitvijo …
V uporabniškem vmesniku lahko spremenite barvo ozadja namizja in odprete aplikacijo, ki sem jo za Arduino razvil za testiranje senzorjev.
Ko odprete aplikacijo, lahko vidite 2 možnosti, VHOD in IZHOD. tako da, če kliknete Input, se prikažejo 4 senzorji (združljiv je z 12, vendar ga še ne programiram, ker se mi bližajo izpiti …. ni časa:(. Kodo lahko ureja vsak …)
Prav tako lahko preveri, ali servo motor deluje, če ga priključite v režo.
Poglej:
2. korak: nalaganje kode
Koda je 600 vrstni program, ki sem ga natančno kodiral v približno 50 urah. Ima nekaj hroščev, zato ga popravite in mi ga pošljite na mojo pošto ([email protected]).
Naložite kodo in priključite ščit TFT na Arduino. Priporočam vam, da se poigrate z uporabniškim vmesnikom, da se ga bolje naučite.
Koda:
#vključi
#include #include #include #define LCD_CS A3 #define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4 #define BLACK 0x0000 #define BLUE 0x001F #define NAVY 0x000FefineFine0define0define0define0define0define0define0define0 #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define YP A1 #Define Xdefine9 160 #define TS_MAXX 160 #define TS_MAXY 970 TouchScreen ts = Zaslon na dotik (XP, YP, XM, YM, 300); Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); #define BOXSIZE 40 #define PENRADIUS 3 #define MINPRESSURE 10 #define MAXPRESSURE 1000 int zvok; stanje char = 6; int touch = 0; int barva = ČRNA; int redir = 0; int ota; void setup () {Serial.begin (9600); tft.reset (); tft.setFont (& FreeMonoBoldOblique12pt7b); tft.begin (0x9325); tft.setRotation (45); tft.setTextSize (0,5); tft.fillScreen (BELO); tft.setCursor (60, 160); tft.setTextColor (ČRNO); tft.print ("Povlecite za prijavo"); } void loop () {float sensorVoltage; plavajoči senzorVrednost; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); če (pz> MINPRESSURE && pz 240 && px 130 && py 240 && px 20 && py 240 && px 20 && py 160 && px 12 && py 240 && px 20 && py 240 && px 20 && py 40 && px 15 && p 150 && px 40 && py 150 && px 80 && py 150 && px 120 && py 150 && px 170 && py 90 && px 40 && py 90 && px 80 && py 90 && px 120 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 100 && px 20 && py 200 && px 100 && py 100 && px 20 && py 100 && px 20 && py 100 && px 20 && py <100) {touch = 26; }} if (touch == 1 && state == 6) {tft.setRotation (0); tft.fillScreen (barvno); zvok = 0; tft.fillRect (200, 180, 80, 140, BELO); tft.drawRect (201, 181, 81, 141, ČRNO); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, ČRNO); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, ČRNO); tft.fillRect (10, 180, 30, 120, VIJOLIČNO); tft.drawRect (11, 181, 31, 121, ČRNO); tft.fillRect (45, 180, 30, 120, MODRA); tft.drawRect (46, 181, 31, 121, ČRNO); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, ČRNO); tft.fillRect (115, 180, 30, 120, ZELENO); tft.drawRect (116, 181, 31, 121, ČRNO); tft.fillRect (150, 180, 30, 120, RUMENO); tft.drawRect (151, 181, 31, 121, ČRNO); tft.fillTriangle (210, 30, 210, 50, 220, 40, BELO); tft.fillRect (200, 35, 12, 12, BELO); tft.drawTriangle (210, 30, 210, 50, 220, 40, ČRNO); tft.drawRect (200, 35, 12, 12, ČRNO); tft.drawCircle (210, 40, 14, BELO); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RDEČA); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("Nastavitve"); tft.fillRoundRect (45, 75, 75, 75, 4, BELO); tft.drawRoundRect (45, 75, 75, 75, 4, ČRNO); tft.fillRect (75, 75, 15, 30, ČRNO); tft.fillRect (75, 120, 15, 30, ČRNO); tft.fillRect (90, 105, 30, 15, ČRNO); tft.fillRect (45, 105, 30, 15, ČRNO); stanje = 7; dotik = 0; ota = 0; } if (dotaknite se == 2) {tft.fillScreen (BELO); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BELO); tft.fillRect (200, 35, 12, 12, BELO); tft.drawTriangle (210, 30, 210, 50, 220, 40, ČRNO); tft.drawRect (200, 35, 12, 12, ČRNO); tft.drawCircle (210, 40, 14, ČRNO); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ČRNO); tft.drawLine (300, 30, 270, 30, ČRNO); tft.setCursor (20, 200); tft.print ("personalizacija"); tft.setCursor (20, 170); tft.print ("odjava"); tft.setCursor (20, 140); tft.print ("zunanje naprave"); tft.setCursor (20, 110); tft.print ("O"); dotik = 1; stanje = 2; } if (dotaknite se == 10 && state == 2) {tft.fillScreen (BELO); tft.setCursor (10, 160); tft.setTextColor (ČRNO); tft.print ("Ustvarjeno in razvito"); tft.setCursor (100, 190); tft.print ("avtor:"); tft.setCursor (60, 220); tft.print ("Najstnik iz Indije"); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BELO); tft.fillRect (200, 35, 12, 12, BELO); tft.drawTriangle (210, 30, 210, 50, 220, 40, ČRNO); tft.drawRect (200, 35, 12, 12, ČRNO); tft.drawCircle (210, 40, 14, ČRNO); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ČRNO); tft.drawLine (300, 30, 270, 30, ČRNO); stanje = 6; } if (dotaknite se == 11 && state == 2) {tft.fillScreen (BELO); tft.setCursor (60, 40); tft.print ("Izberite a"); tft.setCursor (40, 60); tft.print ("barva ozadja"); tft.fillRect (60, 180, 45, 45, RDEČA); tft.fillRect (120, 180, 45, 45, RUMENO); tft.fillRect (180, 180, 45, 45, MODRA); tft.fillRect (240, 180, 45, 45, ZELENO); tft.fillRect (60, 130, 45, 45, MAGENTA); tft.fillRect (120, 130, 45, 45, NAVY); tft.fillRect (180, 130, 45, 45, LIGHTGREY); tft.fillRect (240, 130, 45, 45, CYAN); tft.fillRect (60, 80, 45, 45, BELO); tft.drawRect (60, 80, 45, 45, ČRNO); tft.fillRect (120, 80, 45, 45, ČRNO); tft.fillRect (180, 80, 45, 45, OLIVE); tft.fillRect (240, 80, 45, 45, VIJOLIČNO); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BELO); tft.fillRect (200, 35, 12, 12, BELO); tft.drawTriangle (210, 30, 210, 50, 220, 40, ČRNO); tft.drawRect (200, 35, 12, 12, ČRNO); tft.drawCircle (210, 40, 14, ČRNO); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ČRNO); tft.drawLine (300, 30, 270, 30, ČRNO); stanje = 6; if (redir == 1) {color = WHITE; } if (redir == 2) {color = BLACK; } if (redir == 3) {color = OLIVE; } if (redir == 4) {color = PURPLE; } if (redir == 5) {color = MAGENTA; } if (redir == 6) {color = NAVY; } if (redir == 7) {color = LIGHTGREY; } if (redir == 8) {color = CYAN; } if (redir == 9) {color = RED; } if (redir == 10) {color = YELLOW; } if (redir == 11) {color = BLUE; } if (redir == 12) {color = GREEN; }} če (dotaknite se == 26) {ota = 1; tft.fillScreen (BELO); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BELO); tft.fillRect (200, 35, 12, 12, BELO); tft.drawTriangle (210, 30, 210, 50, 220, 40, ČRNO); tft.drawRect (200, 35, 12, 12, ČRNO); tft.drawCircle (210, 40, 14, ČRNO); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ČRNO); tft.drawLine (300, 30, 270, 30, ČRNO); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("Vnos"); tft.setCursor (30, 150); tft.print ("Izhod"); tft.drawRect (25, 130, 90, 30, ČRNO); tft.drawRect (25, 60, 90, 30, ČRNO); if (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("Raven vode"); tft.setCursor (150, 170); tft.print ("Raven plina"); tft.setCursor (150, 120); tft.print ("Razdalja"); tft.setCursor (150, 70); tft.print ("Zvok"); dotik = 1; stanje = 2; }}} while (zvok == 1) {tft.fillScreen (BELO); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Raven zvoka ="); Serial.println (sensorVoltage); zamuda (1000); if (zvok == 0) {break; }}}}
3. korak: potrebne knjižnice:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- Zaslon na dotik.h
Github povezave za isto:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
4. korak: Povezave
Potrebujete 6 mostičnih žic. 3 samci in 3 samice. jih spajkajte neposredno na ploščo Arduino tako:
5. korak: Udarite vse skupaj
Žice privijte v arduino (glejte sliko), po potrebi uporabite pištolo za lepilo …
Nato pritrdite TFT ščit in preizkusite svoje senzorje.
Hvala, ker ste se pomaknili do konca. Glasujte zame, če menite, da je bil ta projekt edinstven in koristen
Veseli izdelovanja in se pazite prevarantov elektronike?
6. korak: Nadaljnje izboljšave:
- Več kompatibilnosti senzorjev
- Kodo servo motorja je bilo treba dokončati
- Druga aplikacija, ki se lahko poveže z moduli Bluetooth, tako da lahko z njo upravljamo robota, ki deluje na Bluetooth.
- Popravljene napake
Priporočena:
Zaslon senzorja CO2 Plug & Play z NodeMCU/ESP8266 za šole, vrtce ali vaš dom: 7 korakov
Plug & Play zaslon senzorja CO2 z NodeMCU/ESP8266 za šole, vrtce ali vaš dom: pokazal vam bom, kako hitro zgraditi plug & play senzor CO2, kjer bodo vsi elementi projekta povezani z žicami DuPont. Spajkati bo treba le 5 točk, ker pred tem projektom sploh nisem spajkal
AvoRipe - Preverjanje, ali je vaš avokado zrel: 8 korakov (s slikami)
AvoRipe - preverjanje, ali je vaš avokado zrel: zgodilo se je vsem, kupite avokado, še ni zrel. Nekaj dni mine, in ko zori, ste na to že pozabili … in čez nekaj dni bo lahko šlo! Na srečo smo vam zasnovali in izdelali AvoRipe, napravo, ki preverja vaš avokado
Ali vas lahko MakerBit spomni, da preverite vodo pod božičnim drevescem?: 7 korakov
Ali vas lahko MakerBit spomni, da preverite vodo pod božičnim drevescem?: Sveže posekano drevo je tradicionalna praznična dekoracija v mnogih domovih. Pomembno je, da je oskrbljen s svežo vodo. Ali ne bi bilo lepo imeti okras, ki bi vas spomnil, da preverite vodo pod drevesom? Ta projekt je del
Mistična kristalna krogla (dobesedno vam pove srečo!): 3 koraki (s slikami)
Mistična kristalna krogla (dobesedno vam pove srečo!): Naučite se narediti vedeževalno kristalno kroglo, ki ob dotiku razkrije vašo prihodnost! Projekt je sestavljen iz treh osnovnih delov in je lahko zgrajen v približno štirih urah. Materiali: 1. Kapacitivni senzor na dotik: 1 - mikrokrmilnik Arduino Uno 1
Samopostrežni prodajalec zgoščenk od neželenih: 8 korakov
Samopostrežni prodajalec zgoščenk od neželenih vsebin: glasbeniki: na svojih koncertih prodajte več zgoščenk s samopostrežnim prikazovalnikom CD-jev! Moj je narejen iz predmetov, namenjenih odlagališču: halogenska svetilka in žični obešalniki. Če imate pri roki 40 dolarjev, nehajte brati desno zdaj pa pojdi kupiti " prodajalca CD -jev " od Jeffa Kartaka: ht