Innehållsförteckning:

En robot som säger om en elektronikleverantör lurar dig eller inte: 6 steg
En robot som säger om en elektronikleverantör lurar dig eller inte: 6 steg

Video: En robot som säger om en elektronikleverantör lurar dig eller inte: 6 steg

Video: En robot som säger om en elektronikleverantör lurar dig eller inte: 6 steg
Video: АСМР 🔧🐭 Гаечка [ Починю тебя ] [ Механик ] 🔎🛠️ ASMR Repair Robot [ Gadget Hackwrench ]⚙️ 2024, Juli
Anonim
En robot som säger om en elektronikleverantör lurar dig eller inte
En robot som säger om en elektronikleverantör lurar dig eller inte

Förra året gick jag och min pappa till en nyöppnad robot/elektronikbutik mycket nära där vi bor. När jag kom dit var det fullt av elektronik, serov, sensorer, hallonpis och Arduinos. Nästa dag gick vi till samma butik och köpte många senorer och 3 Arduinoer värda cirka 150 USD. Så snart jag gick hem fungerade inga andra produkter förutom Arduino Mega. Vi blev lurade för cirka 130 USD vilket är mycket.

Så jag bestämde mig för att skapa en robot som kan testa cirka 12 sensorer och 2 motorer (arbetar fortfarande på servon) och kan avgöra om produkten är defekt.

Låt oss gå direkt in i det!

Tillbehör

1. Arduino UNO

2. 2,4 TFT -pekskärm

3. några bygeltrådar

4. sensorer och motorer så att du kan testa dem (här använde jag - rörelsesensor, MQ6 -gassensor, ljudsensor, potentiometer och vattennivåsensor)

Steg 1: Hur det fungerar …

Image
Image

Jag har programmerat en Arduino för att skapa och interaktiv UI med en TFT -display. Som vi vet har TFT -skärmen bara en ledig stift, det vill säga A5 -stiftet. (om du använder UNO). Så alla sensorer som använder analoga stift för att läsa data är kompatibla med den här inställningen …

I UI kan du ändra bakgrundsfärgen på skrivbordet och du kan öppna appen som utvecklades för Arduino av mig för att testa sensorer.

När du öppnar appen kan du se två alternativ, INPUT och OUTPUT. så om du klickar på Inmatning, det visar 4 sensorer (Den är kompatibel med 12, men jag har ännu inte programmerat den när jag har tentor som närmar sig …. ingen tid:

Och det kan också kontrollera om servomotorn fungerar när du ansluter den till platsen.

ta en titt:

Steg 2: Ladda upp koden

Koden är ett 600 -radars program som jag noggrant kodade på cirka 50 timmar. Den har några buggar så plz ändra den och skicka den till mig i mitt mail ([email protected]).

Ladda upp koden och anslut TFT -skölden till Arduino. Jag rekommenderar dig att leka med UI så att du får en bättre koll på det.

Koden:

#omfatta

#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 0xF0 #define RED 0xF800 #define RED 0xF800 #define RED 0xF800 #define RED 0xF06 #800 #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define VIT 0xFFFF #define ljusgrå 0xC618 #define PURPLE 0x780F #define OLIVOLJA 0x7BE0 #define Selection #define YP A1 #define XM A2 #define YM 7 #define XP 6 #define TS_MINX 940 #define TS_MINY 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 ljud; char status = 6; int touch = 0; int färg = SVART; 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 (VIT); tft.setCursor (60, 160); tft.setTextColor (SVART); tft.print ("Svep för att logga in"); } void loop () {float sensorVoltage; float sensorValue; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); 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 (färg); ljud = 0; tft.fillRect (200, 180, 80, 140, VIT); tft.drawRect (201, 181, 81, 141, SVART); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, SVART); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, SVART); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, SVART); tft.fillRect (45, 180, 30, 120, BLÅ); tft.drawRect (46, 181, 31, 121, SVART); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, SVART); tft.fillRect (115, 180, 30, 120, GRÖN); tft.drawRect (116, 181, 31, 121, SVART); tft.fillRect (150, 180, 30, 120, GUL); tft.drawRect (151, 181, 31, 121, SVART); tft.fillTriangle (210, 30, 210, 50, 220, 40, VIT); tft.fillRect (200, 35, 12, 12, VIT); tft.drawTriangle (210, 30, 210, 50, 220, 40, SVART); tft.drawRect (200, 35, 12, 12, SVART); tft.drawCircle (210, 40, 14, VIT); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("Inställningar"); tft.fillRoundRect (45, 75, 75, 75, 4, WHITE); tft.drawRoundRect (45, 75, 75, 75, 4, SVART); tft.fillRect (75, 75, 15, 30, SVART); tft.fillRect (75, 120, 15, 30, SVART); tft.fillRect (90, 105, 30, 15, SVART); tft.fillRect (45, 105, 30, 15, SVART); tillstånd = 7; touch = 0; ota = 0; } if (touch == 2) {tft.fillScreen (WHITE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, VIT); tft.fillRect (200, 35, 12, 12, VIT); tft.drawTriangle (210, 30, 210, 50, 220, 40, SVART); tft.drawRect (200, 35, 12, 12, SVART); tft.drawCircle (210, 40, 14, SVART); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SVART); tft.drawLine (300, 30, 270, 30, SVART); tft.setCursor (20, 200); tft.print ("anpassning"); tft.setCursor (20, 170); tft.print ("logga ut"); tft.setCursor (20, 140); tft.print ("kringutrustning"); tft.setCursor (20, 110); tft.print ("Om"); touch = 1; tillstånd = 2; } if (touch == 10 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (10, 160); tft.setTextColor (SVART); tft.print ("Skapat och utvecklat"); tft.setCursor (100, 190); tft.print ("av:"); tft.setCursor (60, 220); tft.print ("En tonåring från Indien"); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, VIT); tft.fillRect (200, 35, 12, 12, VIT); tft.drawTriangle (210, 30, 210, 50, 220, 40, SVART); tft.drawRect (200, 35, 12, 12, SVART); tft.drawCircle (210, 40, 14, SVART); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SVART); tft.drawLine (300, 30, 270, 30, SVART); tillstånd = 6; } if (touch == 11 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (60, 40); tft.print ("Välj en"); tft.setCursor (40, 60); tft.print ("bakgrundsfärg"); tft.fillRect (60, 180, 45, 45, RÖD); tft.fillRect (120, 180, 45, 45, GUL); tft.fillRect (180, 180, 45, 45, BLÅ); tft.fillRect (240, 180, 45, 45, GRÖN); 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, VIT); tft.drawRect (60, 80, 45, 45, SVART); tft.fillRect (120, 80, 45, 45, SVART); 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, VIT); tft.fillRect (200, 35, 12, 12, VIT); tft.drawTriangle (210, 30, 210, 50, 220, 40, SVART); tft.drawRect (200, 35, 12, 12, SVART); tft.drawCircle (210, 40, 14, SVART); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SVART); tft.drawLine (300, 30, 270, 30, SVART); tillstånd = 6; om (redir == 1) {color = WHITE; } if (redir == 2) {color = SVART; } 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 = RÖD; } if (redir == 10) {color = GUL; } if (redir == 11) {color = BLÅ; } if (redir == 12) {color = GRÖN; }} if (touch == 26) {ota = 1; tft.fillScreen (VIT); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, VIT); tft.fillRect (200, 35, 12, 12, VIT); tft.drawTriangle (210, 30, 210, 50, 220, 40, SVART); tft.drawRect (200, 35, 12, 12, SVART); tft.drawCircle (210, 40, 14, SVART); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SVART); tft.drawLine (300, 30, 270, 30, SVART); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("Inmatning"); tft.setCursor (30, 150); tft.print ("Output"); tft.drawRect (25, 130, 90, 30, SVART); tft.drawRect (25, 60, 90, 30, SVART); if (s.x> 190 && s. x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("Vattennivå"); tft.setCursor (150, 170); tft.print ("Gasnivå"); tft.setCursor (150, 120); tft.print ("Avstånd"); tft.setCursor (150, 70); tft.print ("Ljud"); touch = 1; tillstånd = 2; }}} while (sound == 1) {tft.fillScreen (WHITE); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Ljudnivå ="); Serial.println (sensorVoltage); fördröjning (1000); om (ljud == 0) {break; }}}}

Steg 3: Bibliotek krävs:

  • Adafruit_GFX.h
  • Adafruit_TFTLCD.h
  • Pekskärm. H

Github -länkar för samma:

github.com/adafruit/Adafruit-GFX-Library

github.com/adafruit/TFTLCD-Library

github.com/adafruit/Adafruit_TouchScreen

Steg 4: Anslutningarna

Slap It All Together
Slap It All Together

Du behöver 6 bygelkablar. 3 hanar och 3 honor. löd dem direkt till Arduino -kortet så här:

Steg 5: Smäll allt tillsammans

Stick in ledningarna i arduino (se bild), använd lite limpistol om det behövs …

Fäst sedan TFT -skölden och testa sedan dina sensorer.

Tack för att du rullar hela vägen ner. Var noga med att rösta på mig om du tyckte att det här projektet var unikt och hjälpsamt

Glad att göra och se upp för elektronik bedragare?

Steg 6: Ytterligare förbättringar:

  • Mer sensorkompatibilitet
  • Servomotorkoden måste slutföras
  • En annan app som kan gränssnitt med Bluetooth -moduler så att vi kan styra en Bluetooth -driven robot med den.
  • Bug fixar

Rekommenderad: