Sisukord:
- Tarvikud
- Samm: kuidas see toimib…
- Samm: koodi üleslaadimine
- Samm: vajalikud raamatukogud:
- Samm: ühendused
- 5. samm: lööge see kõik kokku
- 6. samm: täiendavad parandused:
Video: Robot, mis ütleb teile, kas elektroonikatarnija petab teid või mitte: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Eelmisel aastal läksime mina ja mu isa äsja avatud robootika-/elektroonikapoodi meie elukoha lähedale. Kui ma sinna sisenesin, oli see täis elektroonikat, serovisid, andureid, vaarika pisit ja arduinosid. Järgmisel päeval läksime samasse poodi ja ostsime palju sensoore ja 3 Arduinot umbes 150 USD väärtuses. Niipea kui koju läksin, ei töötanud ükski teine toode peale Arduino Mega. Meid peteti umbes 130 USD eest, mis on palju.
Niisiis, otsustasin luua roboti, mis suudab testida umbes 12 andurit ja 2 mootorit (töötab endiselt servoga) ja saab kindlaks teha, kas toode on vigane.
Läheme otse asja juurde!
Tarvikud
1. Arduino UNO
2. 2,4 -tolline puutetundlik TFT -ekraan
3. paar hüppaja juhet
4. andurid ja mootorid, et saaksite neid testida (siin kasutasin - liikumisandurit, gaasiandurit MQ6, heliandurit, potentsiomeetrit ja veetaseme andurit)
Samm: kuidas see toimib…
Olen programmeerinud Arduino TFT -ekraaniga interaktiivse kasutajaliidese loomiseks. Nagu me teame, on TFT -ekraanil ainult üks vaba tihvt, st A5 -tihvt. (kui kasutate UNO -d). Nii et kõik andurid, mis kasutavad andmete lugemiseks analoognõelu, ühilduvad selle seadistusega …
Kasutajaliideses saate muuta töölaua taustavärvi ja avada andurite testimiseks minu poolt Arduino jaoks välja töötatud rakenduse.
Rakenduse avamisel näete kahte valikut: INPUT ja OUTPUT. nii et kui klõpsate nuppu Sisend, kuvatakse see 4 andurit (see ühildub 12 -ga, kuid ma ei pea seda veel programmeerima, kuna eksamid lähenevad…. pole aega:(. Igaüks võib koodi muuta …)
Samuti saab see kontrollida, kas teie servomootor töötab, ühendades selle pesasse.
Vaata:
Samm: koodi üleslaadimine
Kood on 600 -realine programm, mille kodeerisin hoolikalt umbes 50 tunni jooksul. Sellel on mõned vead, nii et plz parandage seda ja saatke see mulle minu e -posti aadressile ([email protected]).
Laadige kood üles ja ühendage TFT -kilp Arduinoga. Soovitan teil kasutajaliidesega ringi mängida, et sellest paremini aru saada.
Kood:
#kaasake
#sisalda #sisalda #sisalda #defineeri LCD_CS A3 #define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4 #define Black #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define YP A1 #define XP ##defineer 160 #define TS_MAXX 160 #define TS_MAXY 970 Puuteekraan ts = Puuteekraan (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 olek = 6; int touch = 0; int värv = MUST; int redir = 0; int ota; void setup () {Serial.begin (9600); tft.reset (); tft.setFont (& FreeMonoBoldOblique12pt7b); tft.binin (0x9325); tft.setRotation (45); tft.setTextSize (0,5); tft.fillScreen (VALGE); tft.setCursor (60, 160); tft.setTextColor (MUST); tft.print ("Pühkige sisse logimiseks"); } void loop () {float sensorVoltage; float sensorValue; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); kui (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) {puudutus = 26; }} if (touch == 1 && state == 6) {tft.setRotation (0); tft.fillScreen (värv); heli = 0; tft.fillRect (200, 180, 80, 140, VALGE); tft.drawRect (201, 181, 81, 141, MUST); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, MUST); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, MUST); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, MUST); tft.fillRect (45, 180, 30, 120, SININE); tft.drawRect (46, 181, 31, 121, MUST); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, MUST); tft.fillRect (115, 180, 30, 120, GREEN); tft.drawRect (116, 181, 31, 121, MUST); tft.fillRect (150, 180, 30, 120, KOLLANE); tft.drawRect (151, 181, 31, 121, MUST); tft.fillTriangle (210, 30, 210, 50, 220, 40, VALGE); tft.fillRect (200, 35, 12, 12, VALGE); tft.drawTriangle (210, 30, 210, 50, 220, 40, MUST); tft.drawRect (200, 35, 12, 12, MUST); tft.drawCircle (210, 40, 14, VALGE); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("Seaded"); tft.fillRoundRect (45, 75, 75, 75, 4, VALGE); tft.drawRoundRect (45, 75, 75, 75, 4, MUST); tft.fillRect (75, 75, 15, 30, MUST); tft.fillRect (75, 120, 15, 30, MUST); tft.fillRect (90, 105, 30, 15, MUST); tft.fillRect (45, 105, 30, 15, MUST); olek = 7; puudutus = 0; ota = 0; } if (touch == 2) {tft.fillScreen (VALGE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, VALGE); tft.fillRect (200, 35, 12, 12, VALGE); tft.drawTriangle (210, 30, 210, 50, 220, 40, MUST); tft.drawRect (200, 35, 12, 12, MUST); tft.drawCircle (210, 40, 14, MUST); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, MUST); tft.drawLine (300, 30, 270, 30, MUST); tft.setCursor (20, 200); tft.print ("isikupärastamine"); tft.setCursor (20, 170); tft.print ("logi välja"); tft.setCursor (20, 140); tft.print ("välisseadmed"); tft.setCursor (20, 110); tft.print ("Teave"); puudutus = 1; olek = 2; } if (touch == 10 && state == 2) {tft.fillScreen (VALGE); tft.setCursor (10, 160); tft.setTextColor (MUST); tft.print ("Loodud ja arendatud"); tft.setCursor (100, 190); tft.print ("poolt:"); tft.setCursor (60, 220); tft.print ("Teismeline Indiast"); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, VALGE); tft.fillRect (200, 35, 12, 12, VALGE); tft.drawTriangle (210, 30, 210, 50, 220, 40, MUST); tft.drawRect (200, 35, 12, 12, MUST); tft.drawCircle (210, 40, 14, MUST); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, MUST); tft.drawLine (300, 30, 270, 30, MUST); olek = 6; } if (touch == 11 && state == 2) {tft.fillScreen (VALGE); tft.setCursor (60, 40); tft.print ("Vali a"); tft.setCursor (40, 60); tft.print ("taustavärv"); tft.fillRect (60, 180, 45, 45, PUNANE); tft.fillRect (120, 180, 45, 45, KOLLANE); tft.fillRect (180, 180, 45, 45, SININE); 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, VALGE); tft.drawRect (60, 80, 45, 45, MUST); tft.fillRect (120, 80, 45, 45, MUST); 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, VALGE); tft.fillRect (200, 35, 12, 12, VALGE); tft.drawTriangle (210, 30, 210, 50, 220, 40, MUST); tft.drawRect (200, 35, 12, 12, MUST); tft.drawCircle (210, 40, 14, MUST); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, MUST); tft.drawLine (300, 30, 270, 30, MUST); olek = 6; kui (redir == 1) {värv = VALGE; } kui (redir == 2) {värv = MUST; } kui (redir == 3) {color = OLIVE; } kui (redir == 4) {värv = PURPLE; } kui (redir == 5) {värv = MAGENTA; } kui (redir == 6) {color = NAVY; } kui (redir == 7) {värv = LIGHTGREY; } kui (redir == 8) {värv = CYAN; } kui (redir == 9) {värv = PUNANE; } kui (redir == 10) {värv = KOLLANE; } kui (redir == 11) {värv = SININE; } kui (redir == 12) {värv = GREEN; }} kui (puudutus == 26) {ota = 1; tft.fillScreen (VALGE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, VALGE); tft.fillRect (200, 35, 12, 12, VALGE); tft.drawTriangle (210, 30, 210, 50, 220, 40, MUST); tft.drawRect (200, 35, 12, 12, MUST); tft.drawCircle (210, 40, 14, MUST); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, MUST); tft.drawLine (300, 30, 270, 30, MUST); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("Sisend"); tft.setCursor (30, 150); tft.print ("Väljund"); tft.drawRect (25, 130, 90, 30, MUST); tft.drawRect (25, 60, 90, 30, MUST); if (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("Veetase"); tft.setCursor (150, 170); tft.print ("Gaasi tase"); tft.setCursor (150, 120); tft.print ("Kaugus"); tft.setCursor (150, 70); tft.print ("Heli"); puudutus = 1; olek = 2; }}} while (heli == 1) {tft.fillScreen (VALGE); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Helitase ="); Serial.println (sensorVoltage); viivitus (1000); if (heli == 0) {break; }}}}
Samm: vajalikud raamatukogud:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- Puuteekraan.h
Githubi lingid:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
Samm: ühendused
Teil on vaja 6 hüppajatraati. 3 isast ja 3 emast. jootke need otse Arduino tahvlile järgmiselt:
5. samm: lööge see kõik kokku
Tõmmake juhtmed arduino külge (vt pilti), vajadusel kasutage mõnda liimipüstolit …
Seejärel kinnitage TFT -kaitsekilp ja katsetage andureid.
Täname, et kerisite lõpuni alla. Hääletage kindlasti minu poolt, kui tundsite, et see projekt on ainulaadne ja kasulik
Õnnelik tegemine ja hoiduge elektroonikapetturite eest?
6. samm: täiendavad parandused:
- Suurem andurite ühilduvus
- Servomootori kood tuli lõpetada
- Teine rakendus, mis saab liidestada Bluetooth -moodulitega, et saaksime sellega Bluetooth -toega robotit juhtida.
- Veaparandused
Soovitan:
Hüdraator - seade, mis motiveerib teid vett jooma: 8 sammu (piltidega)
Hüdraator - seade, mis motiveerib teid vett jooma: Piisav vee joomine on kõigile väga oluline. Kuid ma joon lõpuks iga päev vähem vett, kui peaksin. Ma tean, et minusuguseid on, kellele tuleb vee joomist meelde tuletada. Kui olete üks meist, muudab see projekt teie
Robot, mis annab teile tööd: 6 sammu
Robot, mis annab teile tööd: kas olete hiljuti lõpetanud? Kas olete tudeng, kes otsib suvist saginat? Kas teie, ma ei tea, tahate lihtsalt tööd? Ärge otsige enam, see robot aitab teil seda saada! Jätkamisrobot on mugav robotite levitamise abivahend, mis võimaldab teil
Kas vaktsineerida või mitte? projekt karja immuunsuse jälgimiseks haiguste simulatsiooni kaudu: 15 sammu
Kas vaktsineerida või mitte? a projekt karja immuunsuse jälgimiseks haiguste simulatsiooni kaudu: projekti ülevaade: Meie projekt uurib karja immuunsust ja loodab julgustada inimesi vaktsineerima, et vähendada meie kogukondade nakatumissagedust. Meie programm simuleerib seda, kuidas haigus nakatab elanikkonna erinevaid vaktsineerimisprotsente
Laste köök, mis ütleb BEEP: 7 sammu (piltidega)
Laste köök, mis ütleb BEEP: Minu kaheaastasel tütrel oli kolmanda sünnipäeva puhul „väike” soov. Ta tahtis väikest kööki, mis ütleb piiks. "Mida sa tahad?" oli minu vastus. "Köök, mis ütleb piiksu, täpselt nagu emme köök!", Ütles ta … Niisiis, see oli inspiratsioon (ma
Müstiline kristallkuul (see sõna otseses mõttes ütleb teile teie õnne!): 3 sammu (koos piltidega)
Müstiline kristallkuul (see sõna otseses mõttes ütleb teile teie varanduse!): Õppige valmistama ennustavat kristallkuuli, mis puudutades paljastab teie tuleviku! Projekt koosneb kolmest põhiosast ja selle saab ehitada umbes nelja tunniga. Materjalid: 1. Mahtuvuslik puuteandur: 1 - Arduino Uno mikrokontroller 1