Բովանդակություն:

Խելացի աղբաման Magicbit- ից. 5 քայլ
Խելացի աղբաման Magicbit- ից. 5 քայլ

Video: Խելացի աղբաման Magicbit- ից. 5 քայլ

Video: Խելացի աղբաման Magicbit- ից. 5 քայլ
Video: Արմաթ Բալահովիտ....Խելացի աղբաման 2024, Նոյեմբեր
Anonim
Image
Image

Այս ձեռնարկում մենք կսովորենք, թե ինչպես կարելի է խելացի աղբարկղ պատրաստել Magicbit dev- ի միջոցով: տախտակ Arduino IDE- ի հետ: Եկեք սկսենք:

Պարագաներ

  • Magicbit
  • USB-A- ից մինչև Micro-USB մալուխ
  • Ուլտրաձայնային տվիչ - HC -SR04 (ընդհանուր)
  • SG90 միկրո servo շարժիչ

Քայլ 1: Պատմություն

Սարքաշարի տեղադրում
Սարքաշարի տեղադրում

Նախքան նախագծին անցնելը, եկեք նայենք, թե ինչ է Smart աղբամանը: Յուրաքանչյուր տանը կա մեկ կամ ավելի աղբամաններ: Շատ անգամներ դու ծածկեցիր այն: Որովհետև դա հոտ կբերի ձեր տանը: Այսպիսով, երբ ուզում եք աղբը աղբարկղ դնել, պետք է բացեք այն: Բայց եթե աղբամանը մոտենալիս աղբը դնես և ինքնաբերաբար ծածկը բացվի, ապա ինչ տեսք ունի: Խենթ աաա… ուրեմն դա խելացի աղբամանն է:

Քայլ 2. Տեսություն և մեթոդաբանություն

Տեսությունը շատ պարզ է: Երբ մոտենաք աղբարկղին, դա ձեզ կբացահայտի: Եթե ձեր և աղբարկղի միջև հեռավորությունը փոքր է որոշված տարածությունից, ապա աղբարկղի ծածկը ինքնաբերաբար կբացվի: Այս երկու օբյեկտներն ավարտելու համար մենք օգտագործում ենք HC-SRO4 ուլտրաձայնային տվիչ և փոքր սերվո շարժիչներ: Դուք կարող եք ձեռք բերել ցանկացած տեսակի թվային servo շարժիչ:

Քայլ 3: Սարքավորման կարգավորում

Սարքաշարի տեղադրում
Սարքաշարի տեղադրում
Սարքաշարի տեղադրում
Սարքաշարի տեղադրում

Այս նախագծի համար մենք հիմնականում օգտագործեցինք ապարատային երեք բաղադրիչ: Դրանք են Magicbit, servo motor և ուլտրաձայնային տվիչ: Այս բոլոր մասերի միջև կապը ներկայացված է վերևում նկարում:

Ուլտրաձայնային տվիչն օգտագործում էր 3.3 վ հզորության համար: Այսպիսով, մենք օգտագործեցինք Magicbit տախտակի աջ ստորին նավահանգիստը `ուլտրաձայնային տվիչը Magicbit- ին միացնելու համար: Բայց servo շարժիչը օգտագործվում է 5V պատշաճ աշխատանքի համար, ուստի մենք ձախ ստորին նավահանգստից օգտվել ենք servo շարժիչը Magicbit- ի հետ միացնելու համար: Այս դեպքում մենք օգտագործում ենք Magic bit servo միակցիչ մոդուլ: Բայց եթե դուք չունեք այդ մոդուլը, կարող եք օգտագործել երեք ցատկող լար `5V- ին 5V- ին, Gnd- ին Gnd- ին և ազդանշանի կապին` 26bit- ին magicbit- ում:

Հիմա եկեք նայենք մեր նախագծի մեխանիկական կողմին: Կափարիչը բացելու համար մենք օգտագործում ենք շատ պարզ լծակի մեխանիզմ: Մենք մի կողմի servo ձեռքի սեղմիչը միացրեցինք servo- ին: Հետո մենք ամրացրեցինք ամրակի անկյունային անցքը և աղբամանի ծածկը `օգտագործելով ամուր մետաղյա մետաղալար: Մետաղական մետաղալարը կարող է պտտվել սերվոյի ամրակի և աղբարկղի ծածկույթի նկատմամբ: Ուսումնասիրելով լավագույն պատկերն ու տեսանյութը, դուք կարող եք դա կառուցել շատ հեշտությամբ:

Քայլ 4: Softwareրագրաշարի տեղադրում

Softwareրագրաշարի տեղադրում
Softwareրագրաշարի տեղադրում

Softwareրագրային ապահովման մասը նույնպես շատ հեշտ է: Եկեք նայենք Arduino IDE կոդին և ինչպես է աշխատում այդ կոդը:

Սերվո վարելու համար մենք օգտագործում ենք ESP32 servo գրադարանը: Այս գրադարանը գրեթե ներառում է Arduino IDE- ի կախարդական բիթի տախտակի կառավարիչ: Ուլտրաձայնային տվիչով զբաղվելու համար մենք օգտագործում ենք newPing գրադարանը: Սա կարելի է ներբեռնել հետևյալ հղումից:

bitbucket.org/teckel12/arduino-new-ping/d…

Ներբեռնեք zip ֆայլը և գնացեք գործիքներ> ներառեք գրադարան> ավելացրեք Zip գրադարան Arduino- ում: այժմ ընտրեք ձեր նոր ներբեռնված zip ֆայլը ՝ նոր գրադարանի: ծածկագրում մենք նախ հայտարարում ենք servo և ուլտրաձայնային տվիչների գրադարաններ: Օղակի գործառույթում մենք միշտ ստուգում ենք աղբարկղից մինչև մոտակա առջևի օբյեկտի հեռավորությունը: Եթե այդ քերիչը 200 -ից բարձր է, ապա գրադարանի հեռավորությունը 0. է, երբ հեռավորությունը 60 սմ -ից ցածր է, ապա այն պտտվող սերվոյի միջոցով կափարիչը բացելու համար կատարում է հանգույց: Եթե հեռավորությունը 60 սմ -ից ավելի է, ապա ծածկը կիջնի: Բուլո փոփոխականի օգտագործմամբ մենք միշտ ստուգում ենք ծածկույթի վիճակը: Եթե ծածկը ներքև է, ապա միայն այն կբացվի: Նաև հակառակը: Այժմ ընտրեք COM- ի ճիշտ նավահանգիստը և տախտակը որպես magcibit, այնուհետև վերբեռնեք ծածկագիրը: Այժմ ձեր խելացի աղբամանը պատրաստ է օգտագործման համար:

Քայլ 5: Arduino կոդ

#ներառում

#սահմանել TRIGGER_PIN 21 #սահմանել ECHO_PIN 22 #սահմանել MAX_DISTANCE 200 NewPing սոնար (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #ներառել // ներառել servo գրադարան int distance; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Սահմանում է, թե որ քորոցի վրա է տեղադրված սերվո շարժիչի հետաձգումը (3000); } void loop () {// պտտեց servo շարժիչը 15 -ից 165 աստիճանով (int i = 0; i <= 180; i ++) {RadarServo.write (i); ուշացում (50); distance = sonar.ping_cm (); // sանգահարում է գործառույթ `յուրաքանչյուր աստիճանի համար ուլտրաձայնային տվիչով չափվող հեռավորությունը հաշվարկելու համար (int j = 0; j0) {ընդմիջում; } Serial.print (i); // Ուղարկում է ընթացիկ աստիճանը Serial. Port Serial.print (","); // Ուղարկում է լրացուցիչ նիշ անմիջապես հաջորդ արժեքի կողքին, որը անհրաժեշտ է մշակման IDE- ում `Serial.print (j) ինդեքսավորման համար; // Ուղարկում է ընթացիկ աստիճանը Serial Port Serial.print ("*"); Serial.print (1); // Ուղարկում է հեռավորության արժեքը Սերիական նավահանգստի Serial.print ("/"); // Ուղարկում է հավելյալ նիշ անմիջապես հաջորդ արժեքի կողքին, որն անհրաժեշտ է հետագայում Processing IDE- ում Serial.print (հեռավորություն) ինդեքսավորման համար; // Հեռավորության արժեքն ուղարկում է Սերիական նավահանգստի Serial.print ("."); // Ուղարկում է հավելյալ նիշ անմիջապես ինդեքսավորման համար մշակման IDE- ում անհրաժեշտ նախկին արժեքի կողքին}} // Կրկնում է նախորդ տողերը 165-ից մինչև 15 աստիճան (int i = 180; i> = 0; i-) {RadarServo.գրեք (i); ուշացում (50); հեռավորություն = sonar.ping_cm (); համար (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {շարունակել; } Serial.print (i); // Ուղարկում է ընթացիկ աստիճանը Serial. Port Serial.print (","); // Ուղարկում է լրացուցիչ նիշ անմիջապես հաջորդ արժեքի կողքին, որը անհրաժեշտ է մշակման IDE- ում `Serial.print (j) ինդեքսավորման համար; // Ուղարկում է ընթացիկ աստիճանը Serial Port Serial.print ("*"); Serial.print (-1); // Ուղարկում է հեռավորության արժեքը Սերիական նավահանգստի Serial.print ("/"); // Ուղարկում է հավելյալ նիշ անմիջապես հաջորդ արժեքի կողքին, որն անհրաժեշտ է հետագայում Processing IDE- ում Serial.print (հեռավորություն) ինդեքսավորման համար; // Հեռավորության արժեքն ուղարկում է Սերիական նավահանգստի Serial.print ("."); // Ուղարկում է հավելյալ նիշ անմիջապես ինդեքսավորման համար Processing IDE- ում հետագայում անհրաժեշտ նախորդ արժեքի կողքին}}}

Խորհուրդ ենք տալիս: