Obsah:
- Zásoby
- Krok 1: Ako to funguje …
- Krok 2: Odovzdanie kódu
- Krok 3: Potrebné knižnice:
- Krok 4: Pripojenia
- Krok 5: Spojte to všetko dohromady
- Krok 6: Ďalšie vylepšenia:
Video: Robot, ktorý zistí, či vás predajca elektroniky podvádza alebo nie: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Minulý rok sme sa s otcom vybrali do novootvoreného obchodu s robotikou/elektronikou, veľmi blízko miesta, kde žijeme. Keď som tam vstúpil, bolo to plné elektroniky, serov, senzorov, Raspberry pis a Arduinos. Nasledujúci deň sme šli do rovnakého obchodu a kúpili sme veľa senátorov a 3 Arduino v hodnote asi 150 USD. Hneď ako som išiel domov, okrem Arduino Mega nefungoval žiadny iný výrobok. Boli sme scammed za asi 130 USD, čo je veľa.
Rozhodol som sa teda vytvoriť robota, ktorý dokáže otestovať asi 12 senzorov a 2 motory (stále pracuje na servo) a dokáže zistiť, či je produkt chybný.
Poďme priamo do toho!
Zásoby
1. Arduino UNO
2. 2,4 dotykový displej TFT
3. pár prepojovacích káblov
4. senzory a motory, aby ste ich mohli otestovať (tu som použil - pohybový senzor, plynový senzor MQ6, zvukový senzor, potenciometer a snímač hladiny vody)
Krok 1: Ako to funguje …
Naprogramoval som Arduino na vytváranie a interaktívne používateľské rozhranie s displejom TFT. Ako vieme, TFT displej má iba jeden voľný kolík, tj. Kolík A5. (ak používate UNO). Takže akýkoľvek snímač, ktorý používa analógové piny na čítanie údajov, je kompatibilný s týmto nastavením …
V používateľskom rozhraní môžete zmeniť farbu pozadia pracovnej plochy a môžete otvoriť aplikáciu, ktorú som vyvinul pre Arduino na testovanie senzorov.
Po otvorení aplikácie sa vám zobrazia 2 možnosti, VSTUP a VÝSTUP. takže ak kliknete na Vstup, zobrazí sa 4 senzory (Je kompatibilný s 12, ale ešte ho musím naprogramovať, pretože sa blížia skúšky….nie je čas:(. Ktokoľvek môže voľne upravovať kód …)
A môže tiež skontrolovať, či váš servomotor funguje, keď ho pripojíte do zásuvky.
pozrieť sa:
Krok 2: Odovzdanie kódu
Kód je 600 -riadkový program, ktorý som starostlivo nakódoval asi za 50 hodín. Má niekoľko chýb, preto ich prosím opravte a pošlite mi ich na moju poštu ([email protected]).
Nahrajte kód a pripojte štít TFT k Arduinu. Odporúčam vám hrať sa s používateľským rozhraním, aby ste sa v ňom lepšie zorientovali.
Kód:
#zahrnúť
#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 0x000F #define RED 0xF800 # #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define YP A1 #define XM A2 #define XM A2 # 160 #define TS_MAXX 160 #define TS_MAXY 970 TouchScreen ts = TouchScreen (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 sound; znakový stav = 6; int dotyk = 0; vnútorná farba = ČIERNA; 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 (BIELY); tft.setCursor (60, 160); tft.setTextColor (ČIERNA); tft.print („Potiahnutím prstom sa prihlásite“); } void loop () {float sensorVoltage; plavákový senzorHodnota; TSPoint p = ts.getPoint (); pinMode (XM, VÝSTUP); pinMode (YP, OUTPUT); if (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 && py 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 (farba); zvuk = 0; tft.fillRect (200, 180, 80, 140, BIELY); tft.drawRect (201, 181, 81, 141, ČIERNY); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, ČIERNY); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, ČIERNY); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, ČIERNY); tft.fillRect (45, 180, 30, 120, MODRÁ); tft.drawRect (46, 181, 31, 121, ČIERNY); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, ČIERNY); tft.fillRect (115, 180, 30, 120, ZELENÁ); tft.drawRect (116, 181, 31, 121, ČIERNY); tft.fillRect (150, 180, 30, 120, ŽLTÝ); tft.drawRect (151, 181, 31, 121, ČIERNY); tft.fillTriangle (210, 30, 210, 50, 220, 40, BIELY); tft.fillRect (200, 35, 12, 12, BIELY); tft.drawTriangle (210, 30, 210, 50, 220, 40, ČIERNY); tft.drawRect (200, 35, 12, 12, ČIERNY); tft.drawCircle (210, 40, 14, BIELY); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print („Nastavenia“); tft.fillRoundRect (45, 75, 75, 75, 4, BIELY); tft.drawRoundRect (45, 75, 75, 75, 4, ČIERNY); tft.fillRect (75, 75, 15, 30, ČIERNY); tft.fillRect (75, 120, 15, 30, ČIERNY); tft.fillRect (90, 105, 30, 15, ČIERNY); tft.fillRect (45, 105, 30, 15, ČIERNY); stav = 7; dotyk = 0; ota = 0; } if (touch == 2) {tft.fillScreen (WHITE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BIELY); tft.fillRect (200, 35, 12, 12, BIELY); tft.drawTriangle (210, 30, 210, 50, 220, 40, ČIERNY); tft.drawRect (200, 35, 12, 12, ČIERNY); tft.drawCircle (210, 40, 14, ČIERNY); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ČIERNY); tft.drawLine (300, 30, 270, 30, ČIERNY); tft.setCursor (20, 200); tft.print ("personalizácia"); tft.setCursor (20, 170); tft.print ("odhlásiť sa"); tft.setCursor (20, 140); tft.print („periférne zariadenia“); tft.setCursor (20, 110); tft.print („O mne“); dotyk = 1; stav = 2; } if (touch == 10 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (10, 160); tft.setTextColor (ČIERNA); tft.print ("Vytvorené a vyvinuté"); tft.setCursor (100, 190); tft.print ("od:"); tft.setCursor (60, 220); tft.print („Tínedžer z Indie“); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BIELY); tft.fillRect (200, 35, 12, 12, BIELY); tft.drawTriangle (210, 30, 210, 50, 220, 40, ČIERNY); tft.drawRect (200, 35, 12, 12, ČIERNY); tft.drawCircle (210, 40, 14, ČIERNY); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ČIERNY); tft.drawLine (300, 30, 270, 30, ČIERNY); stav = 6; } if (touch == 11 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (60, 40); tft.print („Vyberte si“); tft.setCursor (40, 60); tft.print ("farba pozadia"); tft.fillRect (60, 180, 45, 45, ČERVENÁ); tft.fillRect (120, 180, 45, 45, ŽLTÝ); tft.fillRect (180, 180, 45, 45, MODRÝ); tft.fillRect (240, 180, 45, 45, ZELENÁ); 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, BIELY); tft.drawRect (60, 80, 45, 45, ČIERNY); tft.fillRect (120, 80, 45, 45, ČIERNY); tft.fillRect (180, 80, 45, 45, OLIVE); tft.fillRect (240, 80, 45, 45, PURPLE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BIELY); tft.fillRect (200, 35, 12, 12, BIELY); tft.drawTriangle (210, 30, 210, 50, 220, 40, ČIERNY); tft.drawRect (200, 35, 12, 12, ČIERNY); tft.drawCircle (210, 40, 14, ČIERNY); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ČIERNY); tft.drawLine (300, 30, 270, 30, ČIERNY); stav = 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; }} if (touch == 26) {ota = 1; tft.fillScreen (BIELY); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BIELY); tft.fillRect (200, 35, 12, 12, BIELY); tft.drawTriangle (210, 30, 210, 50, 220, 40, ČIERNY); tft.drawRect (200, 35, 12, 12, ČIERNY); tft.drawCircle (210, 40, 14, ČIERNY); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ČIERNY); tft.drawLine (300, 30, 270, 30, ČIERNY); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("Vstup"); tft.setCursor (30, 150); tft.print ("Výstup"); tft.drawRect (25, 130, 90, 30, ČIERNY); tft.drawRect (25, 60, 90, 30, ČIERNY); if (str.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("Hladina vody"); tft.setCursor (150, 170); tft.print ("Hladina plynu"); tft.setCursor (150, 120); tft.print („vzdialenosť“); tft.setCursor (150, 70); tft.print („Zvuk“); dotyk = 1; stav = 2; }}} while (sound == 1) {tft.fillScreen (WHITE); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Hladina zvuku ="); Serial.println (sensorVoltage); oneskorenie (1000); if (zvuk == 0) {prestávka; }}}}
Krok 3: Potrebné knižnice:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- TouchScreen.h
Odkazy na Github pre to isté:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
Krok 4: Pripojenia
Potrebujete 6 prepojovacích káblov. 3 muži a 3 ženy. spájkujte ich priamo na dosku Arduino takto:
Krok 5: Spojte to všetko dohromady
Zastrčte drôty do arduina (pozri obrázok), v prípade potreby použite lepiacu pištoľ …
Potom pripevnite štít TFT a potom otestujte svoje senzory.
Ďakujem, že ste sa posúvali úplne dole. Ak máte pocit, že tento projekt je jedinečný a nápomocný, hlasujte za mňa
Radosť z tvorby a dajte si pozor na podvodníkov s elektronikou?
Krok 6: Ďalšie vylepšenia:
- Väčšia kompatibilita senzorov
- Kód servomotora bolo potrebné dokončiť
- Ďalšia aplikácia, ktorá môže pracovať s modulmi Bluetooth, aby sme pomocou nej mohli ovládať robota poháňaného technológiou Bluetooth.
- Opravy chýb
Odporúča:
Zamračený mrak vás uzdraví (robot, ktorý sa vyhýba prekážkam so zbernou funkciou): 8 krokov
Zamračený mrak vás uzdraví (robot, ktorý sa vyhýba prekážkam so zbernou funkciou): Zbytočný stroj - robot Arduino
Zhovorčivý predajca kariet Lego: 20 krokov (s obrázkami)
Zhovorčivý predajca kariet Lego: Väčšina ľudí hrá kartové hry pre zábavu, ale poskytujú aj niekoľko výhod pre naše emocionálne a duševné zdravie. Je to jedna z najobľúbenejších indoorových aktivít. Väčšina kartových hier ako Rummy a Poker potrebuje dílera. Tak sme tu
Vodotesnosť elektroniky alebo PCB: 4 kroky
Ako izolovať elektroniku alebo PCB: V tomto návode budeme diskutovať o metódach ochrany obvodu pred životným prostredím, a to platí všeobecne pre dosky s plošnými spojmi, ale tieto tipy a triky si môžete vziať a použiť ich aj v iných aplikáciách. . Toto bude najviac
Ako jailbreaknúť váš 1.1.4 alebo nižší iPhone alebo iPod touch: 4 kroky
Ako útek z väzenia váš 1.1.4 alebo nižší iPhone alebo iPod Touch: Ako útek z väzenia pre váš iPhone alebo iPod Touch 1.1.4 alebo nižší a inštaláciu aplikácií tretích strán. UPOZORNENIE: Nezodpovedám za škody spôsobené na vašom iPhone, iPod Touch alebo počítači. ZiPhone však nikdy nepoškodil iPhone alebo iPod, aby
Samoobslužný predajca diskov CD od nevyžiadanej pošty: 8 krokov
Samoobslužný predajca diskov CD od nevyžiadanej pošty: Hudobníci: Predajte na svojich koncertoch viac diskov CD so samoobslužným displejom CD! Moje sú vyrobené z predmetov určených na skládku: halogénová žiarovka a drôtené vešiaky. Ak máte poruke 40 dolárov, prestaňte čítať správne teraz a choďte si kúpiť " predajcu diskov CD " od Jeffa Kartaka: ht