Turinys:
- Prekės
- 1 žingsnis: kaip tai veikia …
- 2 veiksmas: įkelkite kodą
- 3 veiksmas: reikalingos bibliotekos:
- 4 žingsnis: jungtys
- 5 žingsnis: sudėkite viską kartu
- 6 veiksmas: tolesni patobulinimai:
Video: Robotas, nurodantis, ar elektronikos pardavėjas jus apgaudinėja, ar ne: 6 veiksmai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Praėjusiais metais aš ir mano tėtis nuėjome į naujai atidarytą robotikos/elektronikos parduotuvę visai netoli mūsų gyvenamosios vietos. Kai aš ten įėjau, ten buvo pilna elektronikos, serovų, jutiklių, „Raspberry pis“ir „Arduinos“. Kitą dieną mes nuėjome į tą pačią parduotuvę ir nusipirkome daug senatorių ir 3 „Arduinos“, kurių vertė apie 150 USD. Kai tik grįžau namo, jokie kiti produktai neveikė, išskyrus „Arduino Mega“. Mus apgavo už maždaug 130 USD, o tai yra daug.
Taigi, aš nusprendžiau sukurti robotą, kuris galėtų išbandyti apie 12 jutiklių ir 2 variklius (vis dar veikia su servo sistema) ir galėtų nustatyti, ar produktas yra sugedęs.
Eikime tiesiai į tai!
Prekės
1. Arduino UNO
2. 2,4 colio TFT jutiklinis ekranas
3. pora trumpiklių
4. jutikliai ir varikliai, kad galėtumėte juos išbandyti (čia aš naudojau - judesio jutiklį, MQ6 dujų jutiklį, garso jutiklį, potenciometrą ir vandens lygio jutiklį)
1 žingsnis: kaip tai veikia …
Aš užprogramavau „Arduino“sukurti interaktyvią vartotojo sąsają su TFT ekranu. Kaip žinome, TFT ekranas turi tik vieną laisvą kaištį, ty A5 kaištį. (jei naudojate UNO). Taigi bet kuris jutiklis, kuris naudoja analoginius kaiščius duomenims skaityti, yra suderinamas su šia sąranka …
Naudotojo sąsajoje galite pakeisti darbalaukio fono spalvą ir atidaryti programą, kurią aš sukūriau „Arduino“, kad išbandytumėte jutiklius.
Atidarę programą galite pamatyti 2 parinktis: Įvestis ir Išvestis. taigi, jei spustelėsite Įvestis, bus rodomi 4 jutikliai (jis suderinamas su 12, bet aš dar jo neužprogramuoju, nes artėja egzaminai….nieko laiko:(. Kiekvienas gali laisvai redaguoti kodą …)
Jis taip pat gali patikrinti, ar veikia jūsų servo variklis, prijunkite jį prie lizdo.
Pažvelk:
2 veiksmas: įkelkite kodą
Kodas yra 600 eilučių programa, kurią kruopščiai užkodavau maždaug per 50 valandų. Jame yra keletas klaidų, todėl plz ją pataisykite ir atsiųskite man el. Paštu ([email protected]).
Įkelkite kodą ir prijunkite TFT skydą prie „Arduino“. Rekomenduoju pažaisti su vartotojo sąsaja, kad geriau suprastumėte.
Kodas:
#įtraukti
#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 Navi #define MAGENTA 0xF81F #define GELTONA 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define YP A1 #define XP # # # # # # 160 #define TS_MAXX 160 #define TS_MAXY 970 Jutiklinis ekranas ts = jutiklinis ekranas (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; char būsena = 6; int touch = 0; int spalva = JUODA; 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 (BALTAS); tft.setCursor (60, 160); tft.setTextColor (JUODA); tft.print („Perbraukite, kad prisijungtumėte“); } void loop () {float sensorVoltage; float sensorValue; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); jei (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 && 150 py <100) {lietimas = 26; }} if (touch == 1 && state == 6) {tft.setRotation (0); tft.fillScreen (spalva); garsas = 0; tft.fillRect (200, 180, 80, 140, BALTA); tft.drawRect (201, 181, 81, 141, JUODAS); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, JUODA); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, JUODA); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, JUODA); tft.fillRect (45, 180, 30, 120, MĖLYNA); tft.drawRect (46, 181, 31, 121, JUODA); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, JUODAS); tft.fillRect (115, 180, 30, 120, GREEN); tft.drawRect (116, 181, 31, 121, JUODAS); tft.fillRect (150, 180, 30, 120, GELTONA); tft.drawRect (151, 181, 31, 121, JUODAS); tft.fillTriangle (210, 30, 210, 50, 220, 40, BALTAS); tft.fillRect (200, 35, 12, 12, BALTA); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, JUODA); tft.drawCircle (210, 40, 14, BALTA); //tft.fillTriange (a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print („Nustatymai“); tft.fillRoundRect (45, 75, 75, 75, 4, BALTAS); tft.drawRoundRect (45, 75, 75, 75, 4, BLACK); tft.fillRect (75, 75, 15, 30, JUODA); tft.fillRect (75, 120, 15, 30, JUODA); tft.fillRect (90, 105, 30, 15, JUODA); tft.fillRect (45, 105, 30, 15, JUODA); būsena = 7; prisilietimas = 0; ota = 0; } if (touch == 2) {tft.fillScreen (BALTA); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BALTAS); tft.fillRect (200, 35, 12, 12, BALTA); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, JUODA); tft.drawCircle (210, 40, 14, JUODA); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, JUODA); tft.setCursor (20, 200); tft.print („personalizavimas“); tft.setCursor (20, 170); tft.print („atsijungti“); tft.setCursor (20, 140); tft.print („periferiniai įrenginiai“); tft.setCursor (20, 110); tft.print („Apie“); prisilietimas = 1; būsena = 2; } if (touch == 10 && state == 2) {tft.fillScreen (BALTA); tft.setCursor (10, 160); tft.setTextColor (JUODA); tft.print („Sukurta ir sukurta“); tft.setCursor (100, 190); tft.print ("pagal:"); tft.setCursor (60, 220); tft.print („Paauglys iš Indijos“); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BALTAS); tft.fillRect (200, 35, 12, 12, BALTA); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, JUODA); tft.drawCircle (210, 40, 14, JUODA); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, JUODA); būsena = 6; } if (touch == 11 && state == 2) {tft.fillScreen (BALTA); tft.setCursor (60, 40); tft.print („Pasirinkite a“); tft.setCursor (40, 60); tft.print ("fono spalva"); tft.fillRect (60, 180, 45, 45, RED); tft.fillRect (120, 180, 45, 45, GELTONA); tft.fillRect (180, 180, 45, 45, MĖLYNA); tft.fillRect (240, 180, 45, 45, GREEN); 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, BALTA); tft.drawRect (60, 80, 45, 45, JUODA); tft.fillRect (120, 80, 45, 45, JUODA); 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, BALTAS); tft.fillRect (200, 35, 12, 12, BALTA); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, JUODA); tft.drawCircle (210, 40, 14, JUODA); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, JUODA); tft.drawLine (300, 30, 270, 30, JUODA); būsena = 6; if (redir == 1) {spalva = BALTA; } jei (redir == 2) {spalva = JUODA; } if (redir == 3) {color = OLIVE; } if (redir == 4) {color = PURPLE; } jei (redir == 5) {spalva = MAGENTA; } jei (redir == 6) {spalva = NAVY; } jei (redir == 7) {spalva = LIGHTGREY; } jei (redir == 8) {spalva = CYAN; } jei (redir == 9) {spalva = RAUDONA; } jei (redir == 10) {spalva = GELTONA; } jei (redir == 11) {spalva = MĖLYNA; } jei (redir == 12) {spalva = ŽALIA; }} if (touch == 26) {ota = 1; tft.fillScreen (BALTAS); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BALTAS); tft.fillRect (200, 35, 12, 12, BALTA); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, JUODA); tft.drawCircle (210, 40, 14, JUODA); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, JUODA); tft.setRotation (1); tft.setCursor (30, 80); tft.print („Įvestis“); tft.setCursor (30, 150); tft.print („Išvestis“); tft.drawRect (25, 130, 90, 30, JUODA); tft.drawRect (25, 60, 90, 30, JUODA); if (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print („Vandens lygis“); tft.setCursor (150, 170); tft.print („Dujų lygis“); tft.setCursor (150, 120); tft.print („Atstumas“); tft.setCursor (150, 70); tft.print („Garsas“); prisilietimas = 1; būsena = 2; }}} while (garsas == 1) {tft.fillScreen (BALTAS); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Garso lygis ="); Serial.println (sensorVoltage); vėlavimas (1000); if (garsas == 0) {break; }}}}
3 veiksmas: reikalingos bibliotekos:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- Jutiklinis ekranas.h
„Github“nuorodos į tą patį:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
4 žingsnis: jungtys
Jums reikia 6 jungiamųjų laidų. 3 patinai ir 3 patelės. lituokite juos tiesiai prie „Arduino“plokštės taip:
5 žingsnis: sudėkite viską kartu
Prijunkite laidus prie arduino (žr. Paveikslėlį), jei reikia, naudokite klijų pistoletą …
Tada pritvirtinkite TFT skydą, tada patikrinkite jutiklius.
Dėkojame, kad slinkote iki galo. Būtinai balsuokite už mane, jei manėte, kad šis projektas yra unikalus ir naudingas
Laimingai kuriate ir saugokitės elektronikos sukčių?
6 veiksmas: tolesni patobulinimai:
- Daugiau jutiklių suderinamumo
- Servo variklio kodas turėjo būti baigtas
- Kita programa, kuri gali sąveikauti su „Bluetooth“moduliais, kad galėtume su juo valdyti „Bluetooth“maitinamą robotą.
- Riktų pataisymai
Rekomenduojamas:
Arduino - Labirinto sprendimo robotas („MicroMouse“) Sieninis robotas: 6 žingsniai (su paveikslėliais)
Arduino | Labirinto sprendimų robotas („MicroMouse“) Sienų sekimo robotas: Sveiki, aš esu Izaokas ir tai yra mano pirmasis robotas „Striker v1.0“. Šis robotas buvo sukurtas paprastam labirintui išspręsti. Konkurse turėjome du labirintus ir robotą sugebėjo juos identifikuoti. Dėl bet kokių kitų labirinto pakeitimų gali prireikti pakeisti
„MyPetBot“(robotas, kuris seka jus): 10 žingsnių (su paveikslėliais)
MyPetBot (robotas, kuris seka jus): Ai yra vienas gražiausių matematikos taikymų. Iš esmės tai yra daugybė matricų operacijų, optimizuotų, kad atitiktų jūsų ieškomą rezultatą. Laimei, yra daugybė atvirojo kodo įrankių, kurie leidžia mums ja naudotis. Iš pradžių aš
Kalbantis „Lego“kortelių pardavėjas: 20 žingsnių (su nuotraukomis)
Kalbantis „Lego“kortelių pardavėjas: Dauguma žmonių žaidžia kortų žaidimus dėl pramogų vertės, tačiau jie taip pat suteikia daug naudos mūsų emocinei ir psichinei sveikatai. Tai vienas iš populiariausių užsiėmimų patalpose. Daugumai kortų žaidimų, tokių kaip „Rummy“ir „Poker“, reikia prekiautojo. Taigi čia mes
RC valdomas robotas XLR8! Švietimo robotas: 5 žingsniai
RC valdomas robotas XLR8! Švietimo robotas: Sveiki, šiame straipsnyje bus parodyta, kaip sukurti pagrindinį robotą. Žodis „robotas“pažodžiui reiškia „vergas“arba „darbininkas“. Dėl dirbtinio intelekto pažangos robotai nebėra tik Issac Asimov mokslinės fantastikos dalis
Balansavimo robotas / 3 ratų robotas / STEM robotas: 8 žingsniai
Balansavimo robotas / 3 ratų robotas / STEM robotas: Mes sukūrėme kombinuotą balansavimo ir 3 ratų robotą, skirtą naudoti mokyklose ir po pamokų. Robotas sukurtas naudojant „Arduino Uno“, pasirinktinį skydą (pateikiama visa konstrukcijos informacija), „Li Ion“akumuliatorių paketą (visa tai atitinka