Satura rādītājs:
- Piegādes
- 1. darbība: kā tas darbojas…
- 2. darbība: koda augšupielāde
- 3. darbība. Nepieciešamās bibliotēkas:
- 4. solis: Savienojumi
- 5. solis: iepļaukājiet to visu kopā
- 6. darbība. Turpmākie uzlabojumi:
Video: Robots, kas norāda, vai elektronikas pārdevējs jūs krāpj vai nē: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Pagājušajā gadā es un mans tētis devāmies uz nesen atvērtu robotikas/elektronikas veikalu pavisam netālu no mūsu dzīvesvietas. Kad es tur ienācu, tas bija pilns ar elektroniku, seroviem, sensoriem, aveņu pis un Arduinos. Nākamajā dienā mēs devāmies uz to pašu veikalu un nopirkām daudzus senorus un 3 Arduinos aptuveni 150 USD vērtībā. Tiklīdz es devos mājās, neviens cits produkts nedarbojās, izņemot Arduino Mega. Mūs apmānīja par aptuveni 130 USD, kas ir daudz.
Tātad, es nolēmu izveidot robotu, kas var pārbaudīt aptuveni 12 sensorus un 2 motorus (joprojām strādā pie servo) un var noteikt, vai produkts ir bojāts.
Iesim tieši tajā!
Piegādes
1. Arduino UNO
2. 2,4 collu TFT skārienekrāna displejs
3. pāris džemperu vadi
4. sensori un motori, lai tos varētu pārbaudīt (šeit es izmantoju - kustības sensoru, MQ6 gāzes sensoru, skaņas sensoru, potenciometru un ūdens līmeņa sensoru)
1. darbība: kā tas darbojas…
Esmu ieprogrammējis Arduino, lai izveidotu interaktīvu lietotāja saskarni ar TFT displeju. Kā mēs zinām, TFT displejam ir tikai viena brīva tapa, ti, A5 tapa. (ja izmantojat UNO). Tātad jebkurš sensors, kas datu lasīšanai izmanto analogās tapas, ir saderīgs ar šo iestatījumu …
Lietotāja saskarnē varat mainīt darbvirsmas fona krāsu, un jūs varat atvērt lietotni, kuru es izstrādāju Arduino, lai pārbaudītu sensorus.
Atverot lietotni, jūs varat redzēt 2 iespējas: IEEJA un IZEJA. Tātad, ja jūs noklikšķināt uz Ievadīt, tas parāda 4 sensorus (tas ir saderīgs ar 12, bet es vēl to ieprogrammēju, jo man tuvojas eksāmeni …. nav laika:(. Ikviens var brīvi rediģēt kodu …)
Un tas var arī pārbaudīt, vai servomotors darbojas, ja pievienojat to slotā.
Paskaties:
2. darbība: koda augšupielāde
Kods ir 600 līniju programma, kuru es rūpīgi kodēju apmēram 50 stundu laikā. Tam ir dažas kļūdas, tāpēc, lūdzu, labojiet to un nosūtiet to man pa pastu ([email protected]).
Augšupielādējiet kodu un pievienojiet TFT vairogu Arduino. Es iesaku jums spēlēt ar lietotāja saskarni, lai jūs labāk saprastu.
Kods:
#iekļaut
#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 REN 0FF 0XXXX #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define YP A1 #define XX ##define XF 160 #define TS_MAXX 160 #define TS_MAXY 970 Skārienekrāns ts = Skārienekrāns (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; ogļu stāvoklis = 6; int touch = 0; int krāsa = MELNA; 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 (BALTS); tft.setCursor (60, 160); tft.setTextColor (BLACK); tft.print ("Velciet, lai pieteiktos"); } void loop () {float sensorVoltage; pludiņa sensorsValue; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); ja (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) {pieskāriens = 26; }} if (touch == 1 && state == 6) {tft.setRotation (0); tft.fillScreen (krāsaina); skaņa = 0; tft.fillRect (200, 180, 80, 140, BALTS); tft.drawRect (201, 181, 81, 141, MELNA); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, MELNA); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, BLACK); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, BLACK); tft.fillRect (45, 180, 30, 120, ZILS); tft.drawRect (46, 181, 31, 121, BLACK); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, MELNS); tft.fillRect (115, 180, 30, 120, GREEN); tft.drawRect (116, 181, 31, 121, BLACK); tft.fillRect (150, 180, 30, 120, DZELTENS); tft.drawRect (151, 181, 31, 121, BLACK); tft.fillTriangle (210, 30, 210, 50, 220, 40, BALTS); tft.fillRect (200, 35, 12, 12, BALTS); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, BLACK); tft.drawCircle (210, 40, 14, BALTS); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("Iestatījumi"); tft.fillRoundRect (45, 75, 75, 75, 4, BALTS); tft.drawRoundRect (45, 75, 75, 75, 4, BLACK); tft.fillRect (75, 75, 15, 30, BLACK); tft.fillRect (75, 120, 15, 30, BLACK); tft.fillRect (90, 105, 30, 15, BLACK); tft.fillRect (45, 105, 30, 15, BLACK); stāvoklis = 7; pieskarties = 0; ota = 0; } ja (pieskarieties == 2) {tft.fillScreen (BALTS); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BALTS); tft.fillRect (200, 35, 12, 12, BALTS); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, BLACK); tft.drawCircle (210, 40, 14, BLACK); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, BLACK); tft.setCursor (20, 200); tft.print ("personalizācija"); tft.setCursor (20, 170); tft.print ("izrakstīties"); tft.setCursor (20, 140); tft.print ("perifērijas ierīces"); tft.setCursor (20, 110); tft.print ("Par"); pieskāriens = 1; stāvoklis = 2; } if (touch == 10 && state == 2) {tft.fillScreen (BALTS); tft.setCursor (10, 160); tft.setTextColor (BLACK); tft.print ("Izveidots un izstrādāts"); tft.setCursor (100, 190); tft.print ("ar:"); tft.setCursor (60, 220); tft.print ("Pusaudzis no Indijas"); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BALTS); tft.fillRect (200, 35, 12, 12, BALTS); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, BLACK); tft.drawCircle (210, 40, 14, BLACK); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, BLACK); stāvoklis = 6; } if (touch == 11 && state == 2) {tft.fillScreen (BALTS); tft.setCursor (60, 40); tft.print ("Izvēlieties a"); tft.setCursor (40, 60); tft.print ("fona krāsa"); tft.fillRect (60, 180, 45, 45, RED); tft.fillRect (120, 180, 45, 45, DZELTENS); tft.fillRect (180, 180, 45, 45, ZILS); 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, BALTS); tft.drawRect (60, 80, 45, 45, BLACK); tft.fillRect (120, 80, 45, 45, BLACK); tft.fillRect (180, 80, 45, 45, OLĪVA); tft.fillRect (240, 80, 45, 45, PURPLE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BALTS); tft.fillRect (200, 35, 12, 12, BALTS); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, BLACK); tft.drawCircle (210, 40, 14, BLACK); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, BLACK); stāvoklis = 6; ja (redir == 1) {krāsa = BALTA; } ja (redir == 2) {color = BLACK; } ja (redir == 3) {krāsa = OLĪVA; } ja (redir == 4) {color = PURPLE; } ja (redir == 5) {color = MAGENTA; } ja (redir == 6) {color = NAVY; } ja (redir == 7) {color = LIGHTGREY; } ja (redir == 8) {color = CYAN; } ja (redir == 9) {krāsa = RED; } ja (redir == 10) {krāsa = DZELTENA; } ja (redir == 11) {krāsa = ZILA; } ja (redir == 12) {color = GREEN; }} ja (pieskarieties == 26) {ota = 1; tft.fillScreen (BALTS); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BALTS); tft.fillRect (200, 35, 12, 12, BALTS); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, BLACK); tft.drawCircle (210, 40, 14, BLACK); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, BLACK); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("Ievadi"); tft.setCursor (30, 150); tft.print ("Izeja"); tft.drawRect (25, 130, 90, 30, BLACK); tft.drawRect (25, 60, 90, 30, BLACK); ja (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("Ūdens līmenis"); tft.setCursor (150, 170); tft.print ("Gāzes līmenis"); tft.setCursor (150, 120); tft.print ("Attālums"); tft.setCursor (150, 70); tft.print ("Skaņa"); pieskāriens = 1; stāvoklis = 2; }}} while (skaņa == 1) {tft.fillScreen (BALTS); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Skaņas līmenis ="); Serial.println (sensorVoltage); kavēšanās (1000); ja (skaņa == 0) {pārtraukums; }}}}
3. darbība. Nepieciešamās bibliotēkas:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- Skārienekrāns.h
Github saites uz to pašu:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
4. solis: Savienojumi
Jums nepieciešami 6 džemperu vadi. 3 tēviņi un 3 mātītes. lodējiet tos tieši pie Arduino tāfeles šādi:
5. solis: iepļaukājiet to visu kopā
Ievietojiet vadus arduino (skatiet attēlu), ja nepieciešams, izmantojiet kādu līmes pistoli …
Pēc tam pievienojiet TFT vairogu un pārbaudiet sensorus.
Paldies, ka ritinājāt līdz galam. Noteikti balsojiet par mani, ja uzskatāt, ka šis projekts ir unikāls un noderīgs
Laimīgu izgatavošanu un piesargāties no elektronikas krāpniekiem?
6. darbība. Turpmākie uzlabojumi:
- Vairāk sensoru saderības
- Servomotora kods bija jāpabeidz
- Vēl viena lietotne, kas var saskarties ar Bluetooth moduļiem, lai mēs varētu ar to vadīt Bluetooth darbināmu robotu.
- Kļūdu labojumi
Ieteicams:
E josla - māksla, kas izgatavota no elektronikas lūžņu daļām: 5 soļi
E josla - māksla, kas izgatavota no elektronikas lūžņu daļām: Nu … man bija daži papildu rezistori (daudz!) Un citas detaļas. Tātad … es izveidoju mākslas darbu, izmantojot šīs shēmas atgriezumus
Līdzsvarojošais robots / 3 riteņu robots / STEM robots: 8 soļi
Līdzsvarojošais robots / trīs riteņu robots / STEM robots: mēs esam izveidojuši kombinētu balansēšanas un trīsriteņu robotu, kas paredzēts lietošanai skolās un pēc skolas izglītības programmās. Robota pamatā ir Arduino Uno, pielāgots vairogs (visas konstrukcijas detaļas ir iekļautas), litija jonu akumulators (viss atbilst
ESP32: Vai jūs zināt, kas ir DAC?: 7 soļi
ESP32: Vai jūs zināt, kas ir DAC?: Šodien mēs runāsim par diviem jautājumiem. Pirmais ir DAC (Digital-to-Analog Converter). Es uzskatu to par svarīgu, jo caur to, piemēram, mēs veicam audio izvadi ESP32. Otrs jautājums, kuru mēs šodien risināsim, ir svārstības
Top 7 elektronikas padomi un triki, kas ražotājam jāzina: 8 soļi (ar attēliem)
Top 7 elektronikas padomi un triki, kas būtu jāzina veidotājam: Esmu nodarbojies ar elektroniku jau ilgu laiku, un šajā laikā esmu veicis daudzus projektus. Katrā projektā es vienmēr uzzināju kaut ko jaunu, kas man palīdzēja nākotnē. Es uzskatu, ka elektronika ir gluži kā matemātika. Kad esat
Kā iegūt mūziku no gandrīz jebkuras (Haha) vietnes (ja vien jūs to varat dzirdēt, jūs to varat iegūt Labi, ja tā ir iegulta zibspuldzē, jūs, iespējams, nevarēsit to rediģēt) !!!!! Pievienotā informācija: 4 soļi
Kā iegūt mūziku no gandrīz jebkuras (Haha) vietnes (ja vien jūs to varat dzirdēt, jūs to varat iegūt … Labi, ja tā ir iegulta zibspuldzē, jūs, iespējams, to nevarēsit rediģēt !!!!! Pievienota informācija: ja jūs kādreiz dodaties uz vietni un tajā tiek atskaņota dziesma, kas jums patīk un vēlaties, tad šeit ir pamācība, ka jūs neesat mana vaina, ja kaut ko izjaucat (vienīgais veids, kā tas notiks, ir tas, ja jūs sākat dzēst saturu bez iemesla) ) es varēju iegūt mūziku