INHOUDSOPGAWE:
- Voorrade
- Stap 1: Hoe dit werk …
- Stap 2: Laai die kode op
- Stap 3: biblioteke benodig:
- Stap 4: Die verbindings
- Stap 5: Klap alles saam
- Stap 6: Verdere verbeterings:
Video: N Robot wat vertel of 'n elektroniese verskaffer u bedrieg of nie: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Verlede jaar het ek en my pa na 'n nuut geopende robotika-/elektronika -winkel gegaan, baie naby aan ons woonplek. Toe ek daar inkom, was dit vol elektronika, serovs, sensors, framboospis en Arduinos. Die volgende dag gaan ons na dieselfde winkel en koop baie senors en 3 Arduino's ter waarde van ongeveer 150 dollar. Toe ek huis toe gaan, werk geen ander produkte behalwe die Arduino Mega nie. Ons is bedrieg vir ongeveer 130 dollar, wat baie is.
Daarom het ek besluit om 'n robot te skep wat ongeveer 12 sensors en 2 motors kan toets (wat steeds aan die servo werk) en kan bepaal of die produk foutief is.
Kom ons gaan reguit daarin!
Voorrade
1. Arduino UNO
2. 2,4 TFT -raakskerm
3. paar springdrade
4. sensors en motors sodat u dit kan toets (hier het ek gebruik - Bewegingsensor, MQ6 gassensor, Klanksensor, potensiometer en watervlak sensor)
Stap 1: Hoe dit werk …
Ek het 'n Arduino geprogrammeer vir die skep en interaktiewe UI met 'n TFT -skerm. Soos ons weet, het die TFT -skerm slegs een gratis pen, naamlik die A5 -pen. (as u die UNO gebruik). Elke sensor wat analoog penne gebruik om data te lees, is dus verenigbaar met hierdie opstelling …
In die UI kan u die agtergrondkleur van die tafelblad verander, en u kan die app oopmaak wat deur my vir Arduino ontwikkel is om sensors te toets.
By die opening van die app kan u twee opsies sien: INGANG en UITGANG. so as u op Invoer klik, wys dit 4 sensors (dit is verenigbaar met 12, maar ek moet dit nog programmeer namate ek eksamens nader … geen tyd nie: (. Dit staan enigiemand vry om die kode te wysig …)
En dit kan ook kyk of die servomotor werk of u dit in die gleuf koppel.
Kyk:
Stap 2: Laai die kode op
Die kode is 'n program van 600 reëls wat ek binne ongeveer 50 uur noukeurig gekodeer het. Dit bevat 'n paar foute, so verander dit asseblief en stuur dit vir my in my pos ([email protected]).
Laai die kode op en koppel die TFT -skild aan die Arduino. Ek beveel u aan om met die UI te speel sodat u dit beter kan verstaan.
Die kode:
#insluit
#include #include #include #define LCD_CS A3 #define LCD_CD A2 #define LCD_WR A1 #definieer LCD_RD A0 #definieer LCD_RESET A4 #define SWART 0x0000 #define BLUE 0x001F #define NAVY 0x000F #define RED 0xF800 #define RED 0xF800 #define RED 0xF800 #define RED 0xF800 # define MAGENTA 0xF81F # define GEEL 0xFFE0 # define WHITE 0xFFFF # define Light 0xC618 # define PURPLE 0x780F # define OLIVE 0x7BE0 # define Seleksie # 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 sound; char toestand = 6; int raak = 0; int kleur = SWART; int redir = 0; int ota; ongeldige opstelling () {Serial.begin (9600); tft.reset (); tft.setFont (& FreeMonoBoldOblique12pt7b); tft.begin (0x9325); tft.setRotation (45); tft.setTextSize (0.5); tft.fillScreen (WIT); tft.setCursor (60, 160); tft.setTextColor (SWART); tft.print ("Veeg om aan te meld"); } leemte lus () {float sensorVoltage; float sensorValue; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); as (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 (raak == 1 && staat == 6) {tft.setRotation (0); tft.fillScreen (kleur); klank = 0; tft.fillRect (200, 180, 80, 140, WIT); tft.drawRect (201, 181, 81, 141, SWART); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, SWART); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, SWART); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, SWART); tft.fillRect (45, 180, 30, 120, BLOU); tft.drawRect (46, 181, 31, 121, SWART); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, SWART); tft.fillRect (115, 180, 30, 120, GROEN); tft.drawRect (116, 181, 31, 121, SWART); tft.fillRect (150, 180, 30, 120, GEEL); tft.drawRect (151, 181, 31, 121, SWART); tft.fillTriangle (210, 30, 210, 50, 220, 40, WIT); tft.fillRect (200, 35, 12, 12, WIT); tft.drawTriangle (210, 30, 210, 50, 220, 40, SWART); tft.drawRect (200, 35, 12, 12, SWART); tft.drawCircle (210, 40, 14, WIT); //tft.fillTriange(a1, b1, a2, b2, c1, c2, ROOI); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("Instellings"); tft.fillRoundRect (45, 75, 75, 75, 4, WIT); tft.drawRoundRect (45, 75, 75, 75, 4, SWART); tft.fillRect (75, 75, 15, 30, SWART); tft.fillRect (75, 120, 15, 30, SWART); tft.fillRect (90, 105, 30, 15, SWART); tft.fillRect (45, 105, 30, 15, SWART); staat = 7; raak = 0; ota = 0; } as (raak == 2) {tft.fillScreen (WIT); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WIT); tft.fillRect (200, 35, 12, 12, WIT); tft.drawTriangle (210, 30, 210, 50, 220, 40, SWART); tft.drawRect (200, 35, 12, 12, SWART); tft.drawCircle (210, 40, 14, SWART); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SWART); tft.drawLine (300, 30, 270, 30, SWART); tft.setCursor (20, 200); tft.print ("personalisering"); tft.setCursor (20, 170); tft.print ("afmeld"); tft.setCursor (20, 140); tft.print ("randapparatuur"); tft.setCursor (20, 110); tft.print ("About"); raak = 1; toestand = 2; } as (raak == 10 && staat == 2) {tft.fillScreen (WIT); tft.setCursor (10, 160); tft.setTextColor (SWART); tft.print ("Geskep en ontwikkel"); tft.setCursor (100, 190); tft.print ("deur:"); tft.setCursor (60, 220); tft.print ("'n Tiener uit Indië"); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WIT); tft.fillRect (200, 35, 12, 12, WIT); tft.drawTriangle (210, 30, 210, 50, 220, 40, SWART); tft.drawRect (200, 35, 12, 12, SWART); tft.drawCircle (210, 40, 14, SWART); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SWART); tft.drawLine (300, 30, 270, 30, SWART); staat = 6; } as (raak == 11 && staat == 2) {tft.fillScreen (WIT); tft.setCursor (60, 40); tft.print ("Kies 'n"); tft.setCursor (40, 60); tft.print ("agtergrondkleur"); tft.fillRect (60, 180, 45, 45, ROOI); tft.fillRect (120, 180, 45, 45, GEEL); tft.fillRect (180, 180, 45, 45, BLOU); tft.fillRect (240, 180, 45, 45, GROEN); 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, WIT); tft.drawRect (60, 80, 45, 45, SWART); tft.fillRect (120, 80, 45, 45, SWART); 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, WIT); tft.fillRect (200, 35, 12, 12, WIT); tft.drawTriangle (210, 30, 210, 50, 220, 40, SWART); tft.drawRect (200, 35, 12, 12, SWART); tft.drawCircle (210, 40, 14, SWART); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SWART); tft.drawLine (300, 30, 270, 30, SWART); staat = 6; as (redir == 1) {color = WHITE; } as (redir == 2) {color = SWART; } as (redir == 3) {color = OLIVE; } as (redir == 4) {color = PURPLE; } if (redir == 5) {color = MAGENTA; } as (redir == 6) {color = NAVY; } if (redir == 7) {color = LIGHTGREY; } as (redir == 8) {color = CYAN; } as (redir == 9) {color = ROOI; } as (redir == 10) {color = GEEL; } as (redir == 11) {color = BLUE; } as (redir == 12) {color = GROEN; }} as (raak == 26) {ota = 1; tft.fillScreen (WIT); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WIT); tft.fillRect (200, 35, 12, 12, WIT); tft.drawTriangle (210, 30, 210, 50, 220, 40, SWART); tft.drawRect (200, 35, 12, 12, SWART); tft.drawCircle (210, 40, 14, SWART); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, SWART); tft.drawLine (300, 30, 270, 30, SWART); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("Invoer"); tft.setCursor (30, 150); tft.print ("Uitset"); tft.drawRect (25, 130, 90, 30, SWART); tft.draWRect (25, 60, 90, 30, SWART); as (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("Watervlak"); tft.setCursor (150, 170); tft.print ("Gaspeil"); tft.setCursor (150, 120); tft.print ("Afstand"); tft.setCursor (150, 70); tft.print ("Klank"); raak = 1; toestand = 2; }}} terwyl (klank == 1) {tft.fillScreen (WHITE); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Klankvlak ="); Serial.println (sensorVoltage); vertraging (1000); as (klank == 0) {breek; }}}}
Stap 3: biblioteke benodig:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- Raakskerm.h
Github skakel vir dieselfde:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
Stap 4: Die verbindings
U benodig 6 springdrade. 3 reuntjies en 3 wyfies. soldeer hulle direk aan die Arduino -bord soos volg:
Stap 5: Klap alles saam
Steek die drade in die arduino (verwys na die prent), gebruik indien nodig 'n bietjie lijmpistool …
Heg dan die TFT -skild aan en toets dan u sensors.
Dankie dat u heeltemal afgeskakel het. Maak seker dat u vir my stem as u van mening was dat hierdie projek uniek en nuttig was
Gelukkig om te wees en pasop vir elektroniese swendelaars?
Stap 6: Verdere verbeterings:
- Meer sensorversoenbaarheid
- Servomotorkode moes voltooi word
- Nog 'n app wat met Bluetooth -modules gekoppel kan word, sodat ons 'n Bluetooth -aangedrewe robot daarmee kan beheer.
- Foutoplossings
Aanbeveel:
Die herstel van 'n Lenovo IdeaPad -skootrekenaar wat nie laai nie: 3 stappe
Die herstel van 'n Lenovo IdeaPad -skootrekenaar wat nie laai nie: laaiers is soms suiwer, maar soms is dit nie die laaier nie. Maar nou is dit tyd om te leer hoe u 'n skootrekenaar moet opereer om dit te herstel !!! U HET NODIG: 'n Phillips -skroewedraaier met 'n punt van 5 mm oor 'n kragaansluiting - in Amazon soek na (u model)
Hoed nie hoed nie - 'n hoed vir mense wat nie regtig hoede dra nie, maar 'n hoedervaring wil hê: 8 stappe
Hat Not Hat - 'n hoed vir mense wat nie regtig hoede dra nie, maar graag 'n hoedervaring wil hê: ek het altyd gewens ek kon 'n hoedpersoon wees, maar het nog nooit 'n hoed gevind wat vir my werk nie. Hierdie " Hat Not Hat, " of fascinator soos dit genoem word, is 'n boonste oplossing vir my hoedprobleem waarin ek die Kentucky Derby, vakuum, kan bywoon
Wat u nie van die asblik geweet het nie !!: 6 stappe
Wat u nie van die asblik geweet het nie
NIE Hek wat transistor gebruik nie: 3 stappe
NOT Gate met behulp van transistor: NIE gate logika kring is belangrik vir enige sensor gebaseerde stelsel. Ons bou dit basies met behulp van 'n mikrobeheerder. maar hier gebruik ek 'n transistor en 'n skakelaar. Dus, laat ons hierdie stappe volg en hierdie tegniek toepas om 'n omgekeerde uitvoer te kry. Dit sal wees
Hoe om 'n TV op te los wat nie aanskakel nie: 23 stappe
Hoe om 'n TV op te los wat nie aanskakel nie: Moderne platskerm -TV's het 'n bekende probleem dat kondensators sleg gaan. As u LCD- of LED -TV nie aanskakel nie, of herhaaldelike klikgeluide maak, is die kans groot dat u honderde dollars kan bespaar deur hierdie eenvoudige herstelwerk self te doen