Բովանդակություն:
- Պարագաներ
- Քայլ 1: Ինչպես է այն աշխատում…
- Քայլ 2: Կոդի վերբեռնում
- Քայլ 3. Պահանջվող գրադարաններ
- Քայլ 4: Կապեր
- Քայլ 5: Ապտակեք ամեն ինչ միասին
- Քայլ 6: Լրացուցիչ բարելավումներ
Video: Ռոբոտ, որը կասի ՝ էլեկտրոնիկայի վաճառողը խաբում է ձեզ, թե ոչ. 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Անցյալ տարի ես և հայրս գնացինք նորաբաց ռոբոտաշինության/էլեկտրոնիկայի խանութ, որտեղ մեր բնակավայրը շատ մոտ է: Երբ ես մտա այնտեղ, այն լի էր էլեկտրոնիկայով, սերով, սենսորներով, ազնվամորու պիսով և Արդուինոսով: Հաջորդ օրը մենք գնացինք նույն խանութը և գնեցինք բազմաթիվ սենատորներ և 3 Արդուինո ՝ մոտ 150 ԱՄՆ դոլար արժողությամբ: Տուն գնալուն պես, ոչ մի այլ ապրանք չաշխատեց, բացի Arduino Mega- ից: Մեզ խաբեցին մոտ 130 ԱՄՆ դոլարով, ինչը շատ է:
Այսպիսով, ես որոշեցի ստեղծել ռոբոտ, որը կարող է փորձարկել մոտ 12 տվիչ և 2 շարժիչ (դեռ աշխատում է սերվոյի վրա) և կարող է որոշել, թե արդյոք ապրանքը թերի է:
Եկեք անմիջապես մտնենք դրա մեջ:
Պարագաներ
1. Arduino UNO
2. 2.4 TFT սենսորային էկրան
3. մի քանի jumper լարեր
4. սենսորներ և շարժիչներ, որպեսզի կարողանաք դրանք ստուգել (այստեղ ես օգտագործել եմ ՝ Շարժման ցուցիչ, MQ6 գազի տվիչ, Ձայնի տվիչ, պոտենցիոմետր և ջրի մակարդակի տվիչ)
Քայլ 1: Ինչպես է այն աշխատում…
Ես ծրագրավորել եմ Arduino- ն ՝ TFT էկրանով ինտերակտիվ միջերես ստեղծելու համար: Ինչպես գիտենք, TFT էկրանն ունի միայն մեկ անվճար քորոց, այսինքն ՝ A5 փին: (եթե օգտագործում եք ՄԱԿ -ը): Այսպիսով, ցանկացած սենսոր, որն օգտագործում է անալոգային կապում տվյալները կարդալու համար, համատեղելի է այս կարգավորման հետ…
UI- ում կարող եք փոխել աշխատասեղանի ֆոնի գույնը և կարող եք բացել ծրագիրը, որն իմ կողմից մշակվել է Arduino- ի համար ՝ սենսորներ փորձարկելու համար:
Հավելվածը բացելիս կարող եք տեսնել 2 տարբերակ ՝ Մուտք և ելք: եթե սեղմեք Մուտքագրման վրա, այն ցույց է տալիս 4 սենսոր (Այն համատեղելի է 12 -ի հետ, բայց ես դեռ չեմ ծրագրավորի այն, քանի որ մոտենում են քննությունները…. ոչ մի ժամանակ:(. oneանկացած մարդ ազատ է խմբագրել կոդը …)
Եվ այն կարող է նաև ստուգել, թե արդյոք ձեր կողմից աշխատող servo շարժիչը միացնում է այն անցքին:
պետք է նայել:
Քայլ 2: Կոդի վերբեռնում
Կոդը 600 տողանոց ծրագիր է, որը մանրակրկիտ կոդավորել եմ մոտ 50 ժամվա ընթացքում: Այն ունի մի քանի սխալ, այնպես որ խնդրում եմ շտկեք այն և ուղարկեք ինձ իմ փոստով ([email protected]):
Վերբեռնեք ծածկագիրը և միացրեք TFT վահանը Arduino- ին: Ես խորհուրդ եմ տալիս խաղալ UI- ի հետ, որպեսզի ավելի լավ ծանոթանաք դրան:
Կոդը:
#ներառում
#ներառել #ներառել #ներառել #սահմանել LCD_CS A3 #սահմանել LCD_CD A2 #սահմանել LCD_WR A1 #սահմանել LCD_RD A0 #սահմանել LCD_RESET A4 #սահմանել ՍԵՎ 0x0000 #սահմանել ԿԱՊՈ 0ՅԹ 0x001F #սահմանել 0 0x7FF 0F000F #0 #սահմանել ՄԱԳԵՆՏԱ 0xF81F #սահմանել ԴԵELLԻՆ 0xFFE0 #սահմանել ՍՊԻՏԱԿ 0xFFFF #սահմանել ԼԱՅԹԳՐԵՅ 0xC618 #սահմանել ՄԱՄՈURՅՍ 0x780F #սահմանել ՔԱԼԻՎ 0x7BE0 #define Selection #define Yine_SineFine 160 #սահմանել TS_MAXX 160 #սահմանել TS_MAXY 970 TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); #սահմանել BOXSIZE 40 #սահմանել PENRADIUS 3 #սահմանել MINPRESSURE 10 #սահմանել MAXPRESSURE 1000 int ձայն; char պետություն = 6; int touch = 0; int գույն = ՍԵՎ; 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; 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 (գույն); ձայն = 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, PURPLE); 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, ԴԵELLԻՆ); tft.drawRect (151, 181, 31, 121, ՍԵՎ); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); 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; օտա = 0; } if (touch == 2) {tft.fillScreen (WHITE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); 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 (touch == 10 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (10, 160); tft.setTextColor (ՍԵՎ); tft.print («Ստեղծված և զարգացած»); tft.setCursor (100, 190); tft.print ("by:"); tft.setCursor (60, 220); tft.print («Պատանի Հնդկաստանից»); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); 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 (touch == 11 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (60, 40); tft.print («Ընտրել»); tft.setCursor (40, 60); tft.print («ֆոնի գույն»); tft.fillRect (60, 180, 45, 45, ԿԱՐՄԻՐ); tft.fillRect (120, 180, 45, 45, ԴԵELLԻՆ); tft.fillRect (180, 180, 45, 45, Կապույտ); tft.fillRect (240, 180, 45, 45, Կանաչ); tft.fillRect (60, 130, 45, 45, ՄԱԳԵՆՏԱ); 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, ՁԱՅՆԱՎՈՐ); tft.fillRect (240, 80, 45, 45, PURPLE); 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 = YELLOW; } if (redir == 11) {color = BLUE; } if (redir == 12) {color = GREEN; }} if (touch == 26) {ota = 1; tft.fillScreen (ՍՊԻՏԱԿ); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); 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 («levelրի մակարդակ»); tft.setCursor (150, 170); tft.print («Գազի մակարդակ»); tft.setCursor (150, 120); tft.print («Հեռավորություն»); tft.setCursor (150, 70); tft.print («Ձայն»); հպում = 1; վիճակ = 2; }}} while (sound == 1) {tft.fillScreen (WHITE); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Ձայնի մակարդակ ="); Serial.println (sensorVoltage); ուշացում (1000); եթե (ձայն == 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: Ապտակեք ամեն ինչ միասին
Լարերը կպցրեք arduino- ին (հղեք նկարը), անհրաժեշտության դեպքում օգտագործեք սոսինձ ատրճանակ…
Այնուհետև ամրացրեք TFT վահանը, ապա փորձարկեք ձեր տվիչները:
Շնորհակալություն, որ ոլորել եք մինչև վերջ: Համոզվեք, որ քվեարկեք իմ օգտին, եթե կարծում եք, որ այս նախագիծը յուրահատուկ էր և օգտակար
Երջանի՞կ եք պատրաստվել և զգուշանալ Էլեկտրոնիկայի խաբեբաներից:
Քայլ 6: Լրացուցիչ բարելավումներ
- Ավելի շատ սենսորների համատեղելիություն
- Servo շարժիչի ծածկագիրը պետք է ավարտվեր
- Մեկ այլ ծրագիր, որը կարող է ինտերֆեյս ունենալ Bluetooth մոդուլների հետ, որպեսզի մենք կարողանանք դրանով կառավարել Bluetooth- ով աշխատող ռոբոտը:
- Սխալների շտկում
Խորհուրդ ենք տալիս:
MyPetBot (Բոտ, որը հետևում է ձեզ). 10 քայլ (նկարներով)
MyPetBot (Բոտ, որը հետևում է ձեզ). Ai- ը մաթեմատիկայի ամենագեղեցիկ կիրառումներից մեկն է: Հիմնականում դա մի շարք մատրիցային գործողություններ են, որոնք օպտիմիզացված են `ձեր փնտրած արդյունքին համապատասխանելու համար: Բարեբախտաբար, կան բազմաթիվ բաց կոդով գործիքներ, որոնք թույլ են տալիս մեզ օգտագործել այն: Ես ի սկզբանե ունեի
Covid-19 դիմակ, որը գոռում է ձեզ վրա, եթե դիպչեք ձեր դեմքին ՝ 4 քայլ
Covid-19 դիմակ, որը գոռում է ձեզ վրա, եթե դիպչեք ձեր դեմքին. Չե՞ք կարող դադարել դիպչել ձեր դեմքին: Կպչեք այս էլեկտրոնիկան ձեր ունեցած դիմակի վրա և ձեզ անընդհատ կհիշեցնեն դա չանել
Hydrator - սարք, որը դրդում է ձեզ խմել ջուր. 8 քայլ (նկարներով)
Հիդրատոր - սարք, որը դրդում է ձեզ խմել ջուր. Բավականաչափ ջուր խմելը շատ կարևոր է բոլորի համար: Բայց ամեն օր ես ավելի քիչ ջուր եմ խմում, քան պետք է: Ես գիտեմ, որ ինձ նման մարդիկ կան, որոնց պետք է հիշեցնել ջուր խմելու մասին: Եթե դուք մեզանից մեկն եք, ապա այս նախագիծը կփոխի ձեր
Հավասարակշռող ռոբոտ / 3 անիվի ռոբոտ / STEM ռոբոտ ՝ 8 քայլ
Հավասարակշռող ռոբոտ / 3 անիվի ռոբոտ / STEM ռոբոտ. Մենք կառուցել ենք համակցված հավասարակշռող և եռանիվ ռոբոտ `կրթական օգտագործման համար դպրոցներում և դպրոցից հետո կրթական ծրագրերում: Ռոբոտը հիմնված է Arduino Uno- ի, սովորական վահանի վրա (շինարարության բոլոր մանրամասները տրամադրված են), Li Ion մարտկոցի տուփով (բոլորը կառուցված են
Keyminder! այն սարքը, որը ստիպում է ձեզ չկորցնել ձեր բանալիները: 3 քայլ (նկարներով)
Keyminder! այն սարքը, որը ստիպում է ձեզ չկորցնել ձեր բանալիները. այս սարքը օգնում է ձեզ չկորցնել ձեր բանալիները: Եթե դու ինձ նման ես, երբ աշխատանքից տուն ես վերադառնում, դուռը բացելուց հետո անմիջապես կորցնում ես քո բանալիները և սպասում ես մինչև հաջորդ օրը, մինչև որ ստիպված լինես հեռանալ դրանք փնտրելու համար: Այո, դուք կարող եք ունենալ