Мазмұны:
- Жабдықтар
- 1 -қадам: Бұл қалай жұмыс істейді …
- 2 -қадам: кодты жүктеу
- 3 -қадам: міндетті кітапханалар:
- 4 -қадам: Қосылымдар
- 5 -қадам: Барлығын бірге ұрыңыз
- 6 -қадам: қосымша жақсартулар:
Бейне: Электроника сатушысы сізді алдап жүргенін немесе алмайтынын айтатын робот: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Өткен жылы мен әкем екеуміз өзіміз тұратын жерге жақын орналасқан жаңадан ашылған робототехника/электроника дүкеніне бардық. Мен сол жерге кіргенде, ол электроникаға, серовтарға, сенсорларға, таңқурай писке және ардуиносқа толы болды. Келесі күні біз сол дүкенге барып, бағасы 150 АҚШ доллары болатын көптеген сенаторлар мен 3 Ардуино сатып алдық. Мен үйге барған соң, Arduino Mega -дан басқа ешбір өнім жұмыс істемеді. Бізді 130 долларға алдап кетті, бұл өте көп.
Сонымен, мен шамамен 12 сенсор мен 2 қозғалтқышты тексере алатын (әлі де сервода жұмыс істейді) және өнімнің ақаулы екенін анықтай алатын робот жасауды шештім.
Оған тікелей кірісейік!
Жабдықтар
1. Arduino UNO
2. 2,4 дюймдік TFT сенсорлық дисплей
3. қос секіргіш сымдар
4. сенсорлар мен қозғалтқыштар, сіз оларды тексере аласыз (мұнда мен қолдандым - қозғалыс сенсоры, MQ6 газ сенсоры, дыбыс сенсоры, потенциометр мен су деңгейінің сенсоры)
1 -қадам: Бұл қалай жұмыс істейді …
Мен Arduino -ны TFT дисплейі бар интерактивті интерфейс жасауға бағдарламаладым. Біз білетіндей, TFT дисплейінде тек бір бос түйреуіш бар, яғни A5 түйреуіші. (егер сіз БҰҰ қолдансаңыз). Деректерді оқу үшін аналогты түйреуіштерді қолданатын кез келген сенсор осы қондырғымен үйлесімді …
Пайдаланушы интерфейсінде сіз жұмыс үстелінің өңін өзгерте аласыз және сенсорларды тексеру үшін Arduino үшін мен жасаған бағдарламаны ашуға болады.
Бағдарламаны ашқан кезде сіз INPUT және OUTPUT 2 опцияны көре аласыз. егер сіз «Енгізу» түймесін бассаңыз, онда ол 4 сенсорды көрсетеді (ол 12 -мен үйлесімді, бірақ мен оны әлі бағдарламалай алмаймын, себебі емтихандар жақындап қалды …
Сондай -ақ, ол сіздің сервоприводтың жұмыс жасайтынын ұяға қосатынын тексере алады.
қарау:
2 -қадам: кодты жүктеу
Код - бұл шамамен 50 сағат ішінде мұқият кодталған 600 жолдық бағдарлама. Оның бірнеше қателері бар, сондықтан оны түзетіп, маған поштама жіберіңіз ([email protected]).
Кодты жүктеп, TFT қалқанын Arduino -ға қосыңыз. Мен сізге жақсы интерфейспен ойнауды ұсынамын, сонда сіз оны жақсы білесіз.
Код:
#қосу
#қосу #қосу #қосу #анықтау LCD_CS A3 #анықтау LCD_CD A2 #LCD анықтау #define MAGENTA 0xF81F #deinefine YELLOW 0xFFE0 #define WHITE 0xFFFF #deineve LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define TineSpein APE2 Adexine. 160 #define TS_MAXX 160 #define TS_MAXY 970 сенсорлы экран ts = сенсорлы экран (XP, YP, XM, YM, 300); Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); #dexine BOXSIZE 40 #depinePENRADIUS 3 #MINPRESSURE 10 анықтау #MAXPRESSURE 1000 int дыбысын анықтау; char күйі = 6; int touch = 0; int color = ҚАРА; 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 (АҚ); tft.setCursor (60, 160); tft.setTextColor (ҚАРА); tft.print («Кіру үшін сырғытыңыз»); } void loop () {float sensorVoltage; өзгермелі сенсордың мәні; 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 (түрту == 1 && күйі == 6) {tft.setRotation (0); tft.fillScreen (түс); дыбыс = 0; tft.fillRect (200, 180, 80, 140, АҚ); tft.drawRect (201, 181, 81, 141, ҚАРА); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, ҚАРА); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, ҚАРА); tft.fillRect (10, 180, 30, 120, ҚЫЗЫЛ); tft.drawRect (11, 181, 31, 121, ҚАРА); tft.fillRect (45, 180, 30, 120, КӨК); tft.drawRect (46, 181, 31, 121, ҚАРА); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, ҚАРА); tft.fillRect (115, 180, 30, 120, ЖАСЫЛ); tft.drawRect (116, 181, 31, 121, ҚАРА); tft.fillRect (150, 180, 30, 120, САРЫ); tft.drawRect (151, 181, 31, 121, ҚАРА); tft.fillTriangle (210, 30, 210, 50, 220, 40, АҚ); tft.fillRect (200, 35, 12, 12, АҚ); tft.drawTriangle (210, 30, 210, 50, 220, 40, ҚАРА); tft.drawRect (200, 35, 12, 12, ҚАРА); tft.drawCircle (210, 40, 14, АҚ); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print («Параметрлер»); tft.fillRoundRect (45, 75, 75, 75, 4, АҚ); tft.drawRoundRect (45, 75, 75, 75, 4, ҚАРА); tft.fillRect (75, 75, 15, 30, ҚАРА); tft.fillRect (75, 120, 15, 30, ҚАРА); tft.fillRect (90, 105, 30, 15, ҚАРА); tft.fillRect (45, 105, 30, 15, ҚАРА); күй = 7; түрту = 0; ota = 0; } if (түрту == 2) {tft.fillScreen (АҚ); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, АҚ); tft.fillRect (200, 35, 12, 12, АҚ); tft.drawTriangle (210, 30, 210, 50, 220, 40, ҚАРА); tft.drawRect (200, 35, 12, 12, ҚАРА); tft.drawCircle (210, 40, 14, ҚАРА); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ҚАРА); tft.drawLine (300, 30, 270, 30, ҚАРА); tft.setCursor (20, 200); tft.print («жекелендіру»); tft.setCursor (20, 170); tft.print («шығу»); tft.setCursor (20, 140); tft.print («қосымша құрылғылар»); tft.setCursor (20, 110); tft.print («туралы»); түрту = 1; күй = 2; } if (түрту == 10 && күй == 2) {tft.fillScreen (АҚ); tft.setCursor (10, 160); tft.setTextColor (ҚАРА); tft.print («Жасалды және дамыды»); tft.setCursor (100, 190); tft.print («авторы:»); tft.setCursor (60, 220); tft.print («Үндістаннан келген жасөспірім»); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, АҚ); tft.fillRect (200, 35, 12, 12, АҚ); tft.drawTriangle (210, 30, 210, 50, 220, 40, ҚАРА); tft.drawRect (200, 35, 12, 12, ҚАРА); tft.drawCircle (210, 40, 14, ҚАРА); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ҚАРА); tft.drawLine (300, 30, 270, 30, ҚАРА); күй = 6; } if (түрту == 11 && күйі == 2) {tft.fillScreen (АҚ); tft.setCursor (60, 40); tft.print («Таңдау»); tft.setCursor (40, 60); tft.print («фондық түс»); tft.fillRect (60, 180, 45, 45, ҚЫЗЫЛ); tft.fillRect (120, 180, 45, 45, САРЫ); tft.fillRect (180, 180, 45, 45, КӨК); 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, АҚ); tft.drawRect (60, 80, 45, 45, ҚАРА); tft.fillRect (120, 80, 45, 45, ҚАРА); tft.fillRect (180, 80, 45, 45, OLIVE); tft.fillRect (240, 80, 45, 45, ҚЫЗЫЛ); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, АҚ); tft.fillRect (200, 35, 12, 12, АҚ); tft.drawTriangle (210, 30, 210, 50, 220, 40, ҚАРА); tft.drawRect (200, 35, 12, 12, ҚАРА); tft.drawCircle (210, 40, 14, ҚАРА); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ҚАРА); tft.drawLine (300, 30, 270, 30, ҚАРА); күй = 6; if (redir == 1) {color = WHITE; } if (redir == 2) {color = BLACK; } 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 = RED; } if (redir == 10) {color = САРЫ; } if (redir == 11) {color = КӨК; } if (redir == 12) {color = GREEN; }} if (түрту == 26) {ota = 1; tft.fillScreen (АҚ); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, АҚ); tft.fillRect (200, 35, 12, 12, АҚ); tft.drawTriangle (210, 30, 210, 50, 220, 40, ҚАРА); tft.drawRect (200, 35, 12, 12, ҚАРА); tft.drawCircle (210, 40, 14, ҚАРА); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, ҚАРА); tft.drawLine (300, 30, 270, 30, ҚАРА); tft.setRotation (1); tft.setCursor (30, 80); tft.print («Енгізу»); tft.setCursor (30, 150); tft.print («Шығу»); tft.drawRect (25, 130, 90, 30, ҚАРА); tft.drawRect (25, 60, 90, 30, ҚАРА); if (p.x> 190 && p.x 30 && p <y <90) {tft.setCursor (150, 220); tft.print («Су деңгейі»); tft.setCursor (150, 170); tft.print («Газ деңгейі»); tft.setCursor (150, 120); tft.print («Қашықтық»); tft.setCursor (150, 70); tft.print («Дыбыс»); түрту = 1; күй = 2; }}} while (дыбыс == 1) {tft.fillScreen (АҚ); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (сенсорлық кернеу); Serial.println («Дыбыс деңгейі =»); Serial.println (sensorVoltage); кешіктіру (1000); if (дыбыс == 0) {үзіліс; }}}}
3 -қадам: міндетті кітапханалар:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- TouchScreen.h
Github сілтемелері сол үшін:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
4 -қадам: Қосылымдар
Сізге 6 секіргіш сым қажет. 3 еркек және 3 әйел. оларды тікелей Arduino тақтасына дәнекерлеңіз:
5 -қадам: Барлығын бірге ұрыңыз
Ардуиноға сымдарды салыңыз (суретті қараңыз), қажет болған жағдайда желім пистолетін қолданыңыз …
Содан кейін TFT қалқанын бекітіңіз, содан кейін сенсорларды тексеріңіз.
Соңына дейін айналдырғаныңыз үшін рахмет. Егер бұл жоба бірегей және пайдалы болды деп ойласаңыз, маған дауыс беріңіз
Бақытты болыңыз және Electronics алаяқтарынан сақ болыңыз ба?
6 -қадам: қосымша жақсартулар:
- Сенсордың қосымша үйлесімділігі
- Серво моторының кодын аяқтау керек болды
- Bluetooth модульдерімен интерфейс жасай алатын тағы бір қосымша, біз онымен Bluetooth арқылы жұмыс істейтін роботты басқара аламыз.
- Қателерді түзету
Ұсынылған:
S.H.I.E.L.D - Біреу сізді қарап тұр ма ?: 4 қадам (суреттермен)
S.H.I.E.L.D - Біреу сізді қарап тұр ма?: Мен микрофон мен камера қосылғанын байқамай, ұялған адамдардың көптеген видеоларын көрдім, бұл маған осы жобаның идеясын берді. Мен C# -де қарапайым қосымшаны жаздым, ол камераны немесе микрофонды қолдануды анықтайды
Ардуино: Ән айтатын туған күн қорапшасы: 14 қадам
Arduino: Сыйлықтар үшін туған күн қорабы: Бұл әнші туған күн қорапшасы Ардуиноның арнайы функцияларды, соның ішінде жарықдиодты шамды қосуды қамтамасыз ету үшін туған күн сыйлықтарын жинау үшін жасалған. Туған күніңмен ән айтуға және жарықдиодты жарықтандыруға мүмкіндіктері бар
Бұлтты бұлт сізді емдейді (жинау функциясы бар кедергілерді болдырмайтын робот): 8 қадам
Бұлтты бұлт сізді емдейді (жинау функциясы бар кедергілерді болдырмайтын робот): пайдасыз машина - Arduino робот
Talko Lego карта сатушысы: 20 қадам (суреттермен)
Talko Lego карта сатушысы: Көптеген адамдар ойын -сауық үшін карта ойындарын ойнайды, бірақ олар біздің эмоционалды және психикалық денсаулығымызға бірнеше артықшылықтар береді. Бұл үй ішіндегі ең танымал әрекеттердің бірі.Рамми мен Покер сияқты карта ойындарының көпшілігіне дилер қажет. Сонымен біз міне
Өзіндік қызмет көрсететін ықшам дискі сатушысы: 8 қадам
Өзіндік қызмет көрсететін ықшам дискі сатушысы: Музыканттар: CD-дисплейі бар өз концерттеріңізде көбірек CD сатыңыз! Менікі полигонға арналған заттардан жасалған: галогендік шам мен сым ілгіштер. Егер сізде 40 доллар болса, дұрыс оқуды тоқтатыңыз. қазір «CD сатушысы» сатып алыңыз. Джефф Картактан: ht