Satura rādītājs:

Robots, kas norāda, vai elektronikas pārdevējs jūs krāpj vai nē: 6 soļi
Robots, kas norāda, vai elektronikas pārdevējs jūs krāpj vai nē: 6 soļi

Video: Robots, kas norāda, vai elektronikas pārdevējs jūs krāpj vai nē: 6 soļi

Video: Robots, kas norāda, vai elektronikas pārdevējs jūs krāpj vai nē: 6 soļi
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Jūlijs
Anonim
Robots, kas norāda, vai elektronikas pārdevējs jūs krāpj vai nē
Robots, kas norāda, vai elektronikas pārdevējs jūs krāpj vai nē

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…

Image
Image

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

Slauciet to visu kopā
Slauciet to visu kopā

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: