Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Sådan fungerer det …
- Trin 2: Upload af koden
- Trin 3: Påkrævet biblioteker:
- Trin 4: Forbindelserne
- Trin 5: Slap det hele sammen
- Trin 6: Yderligere forbedringer:
Video: En robot, der fortæller, om en elektronikleverandør snyder dig eller ej: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
Sidste år gik jeg og min far til en nyåbnet robot/elektronikbutik meget tæt på, hvor vi bor. Da jeg kom ind der, var den fuld af elektronik, serovs, sensorer, hindbærpis og Arduinos. Den næste dag gik vi til den samme butik og købte mange senorer og 3 Arduinos til en værdi af omkring 150 USD. Så snart jeg gik hjem, virkede ingen andre produkter undtagen Arduino Mega. Vi blev snydt for omkring 130 USD, hvilket er meget.
Så jeg besluttede at oprette en robot, der kan teste omkring 12 sensorer og 2 motorer (stadig arbejder på servoen) og kan afgøre, om produktet er defekt.
Lad os komme direkte ind i det!
Forbrugsvarer
1. Arduino UNO
2. 2,4 TFT touchscreen display
3. par springtråde
4. sensorer og motorer, så du kan teste dem (her brugte jeg - Bevægelsessensor, MQ6 gassensor, Lydsensor, potentiometer og vandstandssensor)
Trin 1: Sådan fungerer det …
Jeg har programmeret en Arduino til at oprette og interaktiv UI med et TFT -display. Som vi ved, har TFT -skærmen kun en ledig pin, det vil sige A5 -stiften. (hvis du bruger UNO). Så enhver sensor, der bruger analoge ben til at læse data, er kompatibel med denne opsætning …
I brugergrænsefladen kan du ændre skrivebordsbaggrundsfarven, og du kan åbne den app, der blev udviklet til Arduino af mig for at teste sensorer.
Ved åbning af appen kan du se 2 muligheder, INPUT og OUTPUT. Så hvis du klikker på Input, viser den 4 sensorer (Den er kompatibel med 12, men jeg skal endnu ikke programmere den, da jeg har eksamener, der nærmer sig.. ingen tid:(. Alle kan redigere koden …)
Og den kan også kontrollere, om servomotoren fungerer, når du tilslutter den til slottet.
kig:
Trin 2: Upload af koden
Koden er et program med 600 linjer, som jeg omhyggeligt har kodet på cirka 50 timer. Det har et par fejl, så plz ændrer det og send det til mig i min mail ([email protected]).
Upload koden, og tilslut TFT -skjoldet til Arduino. Jeg anbefaler dig at lege med brugergrænsefladen, så du får et bedre kendskab til det.
Koden:
#omfatte
#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 0xF0de #define RED 0xF800 #define RED 0xF800 #define RED 0xF06 #800 #define MAGENTA 0xF81F #define GUL 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define YP A1 #define XM A2 #define XM A2 #define XM A2 #define XM A2 #define XM A2 #define XM A2 #define XM A2 #define XM A2 #define XM A2 #define XM A2 #define XM A2 #define XM A2 #define 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 lyd; char tilstand = 6; int touch = 0; int farve = SORT; int redir = 0; int ota; ugyldig opsætning () {Serial.begin (9600); tft.reset (); tft.setFont (& FreeMonoBoldOblique12pt7b); tft.begin (0x9325); tft.setRotation (45); tft.setTextSize (0,5); tft.fillScreen (HVID); tft.setCursor (60, 160); tft.setTextColor (SORT); tft.print ("Stryg for at logge ind"); } void loop () {float sensorVoltage; float sensorVærdi; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); hvis (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 (farve); lyd = 0; tft.fillRect (200, 180, 80, 140, HVID); tft.drawRect (201, 181, 81, 141, SORT); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, SORT); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, SORT); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, SORT); tft.fillRect (45, 180, 30, 120, BLÅ); tft.drawRect (46, 181, 31, 121, SORT); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, SORT); tft.fillRect (115, 180, 30, 120, GRØN); tft.drawRect (116, 181, 31, 121, SORT); tft.fillRect (150, 180, 30, 120, GUL); tft.drawRect (151, 181, 31, 121, SORT); tft.fillTriangle (210, 30, 210, 50, 220, 40, HVID); tft.fillRect (200, 35, 12, 12, HVID); tft.drawTriangle (210, 30, 210, 50, 220, 40, SORT); tft.drawRect (200, 35, 12, 12, SORT); tft.drawCircle (210, 40, 14, HVID); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("Indstillinger"); tft.fillRoundRect (45, 75, 75, 75, 4, WHITE); tft.drawRoundRect (45, 75, 75, 75, 4, SORT); tft.fillRect (75, 75, 15, 30, SORT); tft.fillRect (75, 120, 15, 30, SORT); tft.fillRect (90, 105, 30, 15, SORT); tft.fillRect (45, 105, 30, 15, SORT); tilstand = 7; berøring = 0; ota = 0; } hvis (tryk == 2) {tft.fillScreen (WHITE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, HVID); tft.fillRect (200, 35, 12, 12, HVID); tft.drawTriangle (210, 30, 210, 50, 220, 40, SORT); tft.drawRect (200, 35, 12, 12, SORT); tft.drawCircle (210, 40, 14, SORT); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SORT); tft.drawLine (300, 30, 270, 30, SORT); tft.setCursor (20, 200); tft.print ("personalisering"); tft.setCursor (20, 170); tft.print ("log ud"); tft.setCursor (20, 140); tft.print ("periferiudstyr"); tft.setCursor (20, 110); tft.print ("Om"); berøring = 1; tilstand = 2; } hvis (touch == 10 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (10, 160); tft.setTextColor (SORT); tft.print ("Oprettet og udviklet"); tft.setCursor (100, 190); tft.print ("af:"); tft.setCursor (60, 220); tft.print ("En teenager fra Indien"); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, HVID); tft.fillRect (200, 35, 12, 12, HVID); tft.drawTriangle (210, 30, 210, 50, 220, 40, SORT); tft.drawRect (200, 35, 12, 12, SORT); tft.drawCircle (210, 40, 14, SORT); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SORT); tft.drawLine (300, 30, 270, 30, SORT); tilstand = 6; } hvis (touch == 11 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (60, 40); tft.print ("Vælg en"); tft.setCursor (40, 60); tft.print ("baggrundsfarve"); 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, HVID); tft.drawRect (60, 80, 45, 45, SORT); tft.fillRect (120, 80, 45, 45, SORT); 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, HVID); tft.fillRect (200, 35, 12, 12, HVID); tft.drawTriangle (210, 30, 210, 50, 220, 40, SORT); tft.drawRect (200, 35, 12, 12, SORT); tft.drawCircle (210, 40, 14, SORT); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SORT); tft.drawLine (300, 30, 270, 30, SORT); tilstand = 6; hvis (redir == 1) {color = WHITE; } hvis (redir == 2) {color = SORT; } hvis (redir == 3) {color = OLIVE; } hvis (redir == 4) {color = PURPLE; } hvis (redir == 5) {color = MAGENTA; } hvis (redir == 6) {color = NAVY; } hvis (redir == 7) {color = LIGHTGREY; } hvis (redir == 8) {color = CYAN; } hvis (redir == 9) {color = RØD; } hvis (redir == 10) {color = GUL; } hvis (redir == 11) {color = BLUE; } hvis (redir == 12) {color = GRØN; }} hvis (tryk == 26) {ota = 1; tft.fillScreen (HVID); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, HVID); tft.fillRect (200, 35, 12, 12, HVID); tft.drawTriangle (210, 30, 210, 50, 220, 40, SORT); tft.drawRect (200, 35, 12, 12, SORT); tft.drawCircle (210, 40, 14, SORT); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SORT); tft.drawLine (300, 30, 270, 30, SORT); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("Input"); tft.setCursor (30, 150); tft.print ("Output"); tft.drawRect (25, 130, 90, 30, SORT); tft.drawRect (25, 60, 90, 30, SORT); hvis (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("Vandstand"); tft.setCursor (150, 170); tft.print ("Gasniveau"); tft.setCursor (150, 120); tft.print ("Distance"); tft.setCursor (150, 70); tft.print ("lyd"); berøring = 1; tilstand = 2; }}} mens (lyd == 1) {tft.fillScreen (WHITE); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Lydniveau ="); Serial.println (sensorVoltage); forsinkelse (1000); hvis (lyd == 0) {pause; }}}}
Trin 3: Påkrævet biblioteker:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- TouchScreen. H
Github linker til det samme:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
Trin 4: Forbindelserne
Du skal bruge 6 jumperwires. 3 hanner og 3 hunner. lod dem direkte til Arduino -kortet sådan:
Trin 5: Slap det hele sammen
Træk ledningerne ind i arduinoen (se billede), Brug lidt limpistol om nødvendigt …
Sæt derefter TFT -skjoldet på, og test derefter dine sensorer.
Tak fordi du rullede helt ned. Sørg for at stemme på mig, hvis du syntes, at dette projekt var unikt og nyttigt
Glad for at lave og pas på med elektroniske svindlere?
Trin 6: Yderligere forbedringer:
- Mere sensorkompatibilitet
- Servomotorkoden skulle være færdig
- En anden app, der kan interface med Bluetooth -moduler, så vi kan styre en Bluetooth -drevet robot med den.
- Fejlrettelser
Anbefalede:
Talos, der holder dig sikker under din pendling: 5 trin
Talos, der holder dig sikker under din pendling: At være offer for chikane, mens du pendler, er en ret almindelig ting for mange mennesker, især kvinder. Uanset hvilket land, er offentlig transport ofte lig med at vide, at du kan blive seksuelt chikaneret eller endda fulgt efter, mens du går hjem. I disse
Robot, der giver dig et job: 6 trin
Robot, der får dig et job: Er du nyuddannet? Er du en studerende på udkig efter et sommersyl? Har du, jeg ved det ikke, bare lyst til et job? Nå, kig ikke længere, denne robot hjælper dig med at få en !! Resume Robot er et praktisk robotdistributionshjælpemiddel, der giver dig mulighed for at
Mystic Crystal Ball (det fortæller dig bogstaveligt talt din formue!): 3 trin (med billeder)
Mystic Crystal Ball (det fortæller dig bogstaveligt talt din formue!): Lær, hvordan du laver en spåkone, der viser din fremtid, når den røres! Projektet består af tre grundlæggende dele og kan bygges på cirka fire timer. Materialer: 1. Kapacitiv berøringssensor: 1 - Arduino Uno Microcontroller 1
Sådan hostes en instruktionsvisning og fortæller: 8 trin
Sådan hostes et Instructables Show and Tell: Dette er en vejledning til at køre et Instructables Show and Tell. Det er primært baseret på en begivenhed, der blev afholdt på Instructables fredag den 9. marts 2007, men også på den tidligere inkarnation af denne begivenhed, Squid Labs Light Salons. Målet med et Show og Tel
Sådan snyder du ved skak ved hjælp af en Iphone eller Ipod Touch: 4 trin
Sådan snyder du ved skak Brug af en Iphone eller Ipod Touch: Dette er en instruktion om, hvordan man snyder ved skak ved hjælp af en iphone eller ipod touchit vil tage cirka en minuite for at komme i gang Ingen jailbreaking nødvendig Det er utroligt enkelt og får dig til at vinde i skak mod de fleste mennesker