Innehållsförteckning:
- Tillbehör
- Steg 1: Hur det fungerar …
- Steg 2: Ladda upp koden
- Steg 3: Bibliotek krävs:
- Steg 4: Anslutningarna
- Steg 5: Smäll allt tillsammans
- Steg 6: Ytterligare förbättringar:
Video: En robot som säger om en elektronikleverantör lurar dig eller inte: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
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 …
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
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:
SCARA Robot: Lär dig mer om Foward och Inverse Kinematics !!! (Plot Twist Lär dig hur du gör ett realtidsgränssnitt i ARDUINO med hjälp av BEHANDLING !!!!): 5 steg (med bilder)
SCARA Robot: Lär dig mer om Foward och Inverse Kinematics !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using Processing !!!!): En SCARA -robot är en mycket populär maskin i branschvärlden. Namnet står för både Selective Compliant Assembly Robot Arm eller Selective Compliant Articulated Robot Arm. Det är i grunden en tre graders frihetsrobot, som är de två första
Hur man döljer filer som man inte vill att andra ska se eller läsa: 7 steg
Hur man döljer filer som man inte vill att andra ska se eller läsa: Denna instruktion visar hur du ändrar formatet på en fil för att göra den värdelös om du inte vet vilken filtyp det ursprungligen var. Till exempel byter du en mpeg (filmfil) till en txt/doc (text/dokument) så att du inte kan spela den än mindre se informationen
Hur man lurar ett fingeravtryckssäkerhetssystem lika enkelt som ABC: 12 steg (med bilder)
Hur man lurar ett fingeravtryckssäkerhetssystem lika enkelt som ABC: Denna instruktion visar dig hur du lurar ett fingeravtryckssäkerhetssystem lika enkelt som ABC. IBM vill aldrig att du ska veta om. det fungerar för de flesta av fingeravtryckssäkerhetssystemet också. Till exempel: t.ex. dörr, mobiltelefon …. Denna instruktion kommer med v
Flera hårddiskar eller optiska enheter i en dator som verkligen inte kan: 8 steg
Flera hårddiskar eller optiska enheter i en dator som verkligen inte kan: FÖRSTA EVARSå jag gjorde detta instruerbart efter år av trolling och läsning runt, jag hade äntligen modet att göra mitt eget. I ett nötskal visar jag dig hur du installerar hårdvara (i detta fall två IDE -hårddiskar och två optiska IDE -enheter) i en IDE -m
Internetradio med en Evo T20 tunn klient som inte behöver tangentbord eller mus att köra !: 7 steg
Internetradio med en Evo T20 tunn klient som inte behöver något monitortangentbord eller mus för att köra !: Så här använder du en Evo T20 tunn klient som en fristående Internetradiomottagare: Varför gör jag det bra Jag gjorde det av 3 skäl 1] eftersom det var en utmaning 2] Att ha en ljudlös lågförbrukningsenhet bara 20 watt på topp snarare än att köra en bullrig