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

Arduino Cradle Rocker: 19 քայլ (նկարներով)
Arduino Cradle Rocker: 19 քայլ (նկարներով)

Video: Arduino Cradle Rocker: 19 քայլ (նկարներով)

Video: Arduino Cradle Rocker: 19 քայլ (նկարներով)
Video: Automatic Baby Cradle | Automatic E-Baby Cradle Cry (Sound Sensor) Bed Using Arduino 2024, Նոյեմբեր
Anonim
Image
Image

Կներեք, ես չկարողացա դիմակայել այն հուզիչ լարված երաժշտությանը, որն առաջարկում էր իմ տեսահոլովակի խմբագրումը:

Վերջերս ես ունեցա իմ առաջին երեխային և արդեն ունեի փայտե օրորոց, որը հորեղբայրս (ով հիանալի փայտագործ է) պատրաստել էր եղբորորդուս համար: Իմ եղբորորդին վաղուց արդեն գերազանցել էր այն, ուստի ես ուրախ էի վերցնել այն և խուսափել ամբողջ գումարը ծախսել մայրիկի բլոգերների որևէ օրորոցի/բասետի վրա, որպեսզի իմ կինը քննար: Օրորոցը բավականին պարզ դիզայն է, հիմնականում երկու ուղղաձիգ, որոնց միջով պտուտակներ են պահում ՝ օրորոցի մարմինը պահող: Կա շարժական ամրակ ՝ այն տեղում փակելու համար:

Մի քանի շաբաթվա ընթացքում մենք գտանք, որ մենք հաճախ կարող ենք մարել թեթև խառնաշփոթը `օրորոցը մի փոքր ճոճելով, մինչև մեր տղան տեղավորվի: Գիշերը, երբ մենք պարզեցինք դա, ես մի քանի 10 րոպեանոց ձգումներ անցկացրեցի ՝ ձեռքս ծածկոցների տակից հասնելով, քնկոտորեն օրորելով նրան, ուրախ լինելով, որ գտել եմ նրան հանգստացնելու միջոց ՝ առանց ինքս անկողնուց վեր կենալու: Հաջորդը առավոտյան ես լար և մի փոքր կարաբին ամրացրի, որպեսզի կարողանամ օրորոցը օրորել ՝ առանց թևս ձգելու:

Դրանից հետո առավոտյան ես սկսեցի ուղեղային փոթորիկ մտցնել մի միջոց, որը պետք է պարզապես ռոբոտ ունենար այս երեխային ինձ համար: Մուտքագրեք Arduino…

Պարագաներ

Լավ, սա իմ առաջին Arduino նախագիծն էր, այնպես որ ես որոշ փորձեր և փորձեր և սխալներ արեցի, և ես վստահ եմ, որ իմ դիզայնի բարելավման տեղ կա, բայց ահա իմ մասերի ցուցակը. Arduino Uno ($ 13) ամեն ինչ վերահսկելու համար հավաքածու ($ 10) լարերը միացնելու համար

The stepper motor ($ 14) Սա ամենազվարճալի կտորն է, քանի որ դա այն է, ինչ կատարում է ամբողջ աշխատանքը: Ես սկսեցի մի փոքր ավելի փոքր ոլորող մոմենտ ստեղծող վարորդով, բայց հետո ստացա այս մեկը և այն բավականին լավ է աշխատում: Ազատ զգալ ձեռք բերելու նույնիսկ ավելի հզոր մեկը: Stepper motor drivers ($ 10-30) Սա տեղակայված է Arduino- ի և շարժիչի միջև: Այս կոնկրետը, ըստ երևույթին, ի վիճակի է շարժիչն ավելի հանգիստ վարել, քան մյուսները, ուստի ես դրանով գնացի, քանի որ շարժիչը շարժվելու է իմ (և որդուս) գլխից մի քանի ոտնաչափ հեռավորության վրա, մինչ մենք քնած ենք: Ես ի սկզբանե գնեցի մեկ TMC2209 վարորդ 10 ֆունտ ստեռլինգով, բայց վերջում գնեցի 4 հատ փաթեթ, քանի որ սկզբում որոշակի դժվարություններ ունեի և ուզում էի համոզվել, որ ինչ -որ պահի տախտակը չեմ տապակել: Ի վերջո, ես սպանեցի 3 տախտակ, որն ինձ բերում է իմ հաջորդ տարրին … Կոնդենսատորներ: (10 դոլար) Ձեզ իսկապես անհրաժեշտ է միայն 1 47 uF 50V կոնդենսատոր, այնպես որ 240 -ի այս տուփը չափազանց գերակշռում էր: 36 Վ էլեկտրամատակարարում (17 դոլար) Սկզբում ես գնել էի 12 Վ լարման աղբյուր, այնուհետև պարզեցի, որ դա իմ բոլոր խնդիրների աղբյուրն է և ստացա այն մեկը, որն ավելի մոտ էր առավելագույն լարման, որը կարող էր կարգավորել իմ քայլող շարժիչը: Եթե դուք օգտագործում եք այլ շարժիչի կամ սլաքի վարորդ, համոզվեք, որ այն կարող է կարգավորել լարումը (V), և որ մատակարարման հզորությունը (A) առնվազն նույնքան բարձր է, որքան շարժիչի կողմից գծված գագաթնակետային ուժեղացուցիչները: Իգական հոսանքի վարդակներ ($ 8) Սա այն է, ինչին միանում է սնուցման աղբյուրը: Դուք պետք է դրանք կպցրեք որոշ լարերի, որպեսզի կպցրեք ձեր տախտակին: Թռչկոտիչների մի մեծ փաթեթ ($ 9), որպեսզի ես կարողանամ հսկիչները տեղադրել սենյակում, որտեղ ուզում եմ:

Կոճակներ ($ 8) միացման/անջատման համար և այլն

Խոսափողի ուժեղացուցիչ ($ 11)

Որոշ փոքր ճախարակային անիվներ (8 դոլար) ես վերջացրեցի օգտագործել դրանք, բայց գուցե ավելի լավ այլընտրանքներ լինեն: Ավելի մանրամասն դրա մասին: Դուք նույնպես անպայման կպահանջեք զոդման երկաթ և այն, ինչ ցանկանում եք օգտագործել շարժիչը տեղադրելու համար: Ես անձամբ պարզապես կոպիտ տուփ պատրաստեցի 4 պտուտակված փայտի կտորներից, այնուհետև դրանք պտուտակեցի մեկ այլ փայտի վրա, որը մոտավորապես օրորոցի իմ ոտքի լայնությունն է: Առայժմ ես պարզապես սեղմել եմ այն, քանի որ չգիտեմ, արդյոք ուզում եմ վնասել հորեղբորս օրրանը:

Քայլ 1: Famանոթացեք ձեր Stepper Driver Pinout- ին

Հաղորդալար Arduino 5V/GND ձեր Breadboard- ին
Հաղորդալար Arduino 5V/GND ձեր Breadboard- ին

Իմ օգտագործած մոդելավորման ծրագրում այս ճշգրիտ վարորդական տախտակը չկար, այնպես որ դուք պետք է հղում կատարեք այս պատկերին: Ես ամեն ինչ դասավորել եմ նույն պատկերով, ինչ այս պատկերը:

Քայլ 2. Հաղորդալար Arduino 5V/GND ձեր Breadboard- ին

Arduino 5V- ից մետաղալար միացրեք ձեր տախտակի մի կողմում գտնվող «+» ռելսին: Միացրեք Arduino GND- ի մետաղալարերից մեկը հացահատիկի նույն կողմի «-» երկաթուղուն:

(անտեսել

Քայլ 3. Միացրեք +/- Rails- ը VIO/GND- ին

Միացրեք +/- Rails- ը VIO/GND- ին
Միացրեք +/- Rails- ը VIO/GND- ին

Միացնող մետաղալար «-» ռելսից GND- ին ՝ սանդղակի վարորդի տախտակի ներքևի ձախ մասում: Միացրեք մետաղալարը «+» ռելսից VIO- ին

Քայլ 4. Միացրեք DIR/STEP- ը Arduino- ի թվային կապում

Միացրեք DIR/STEP- ը Arduino- ի թվային կապում
Միացրեք DIR/STEP- ը Arduino- ի թվային կապում

Միացրեք DIR և STEP կապերը stepper վարորդի տախտակից Arduino- ի թվային երկու կապում: Ես օգտագործել եմ համապատասխանաբար 2 և 3 կապում, բայց դա նշանակություն չունի, քանի դեռ հետագայում ձեր ծածկագրում տեղադրում եք կապերը:

Քայլ 5: Եկեք առաջ գնանք և ավելացնենք այդ կոնդենսատորը…

Եկեք առաջ գնանք և ավելացնենք այդ կոնդենսատորը…
Եկեք առաջ գնանք և ավելացնենք այդ կոնդենսատորը…

Այրեցի 2 քայլ տախտակ, քանի որ կոնդենսատոր չունեի, ուստի եկեք շարունակենք և 47uF 50V կոնդենսատորը ավելացնենք վարորդի տախտակի VM/GND կապում: Համոզվեք, որ կոնդենսատորի «-» քորոցը գտնվում է տախտակի վրա տեղադրված GND կապում (կոնդենսատորի համապատասխան կողմում կլինի «-»)

Քայլ 6: Եվ առաջ գնացեք և միացրեք այդ GND- ը

Եվ առաջ գնացեք և միացրեք այդ GND- ը
Եվ առաջ գնացեք և միացրեք այդ GND- ը

GND- ի վրա, որին դուք պարզապես ավելացրել եք կոնդենսատորը, շարունակեք և միացրեք այն նույն «-» երկաթուղուն, ինչպես մյուս GND- ը:

Քայլ 7: Միացրեք շարժիչը վարորդին

Միացրեք շարժիչը վարորդին
Միացրեք շարժիչը վարորդին

Որ պինն է գնում, կախված կլինի ձեր գնած շարժիչից, բայց իմ թվարկածի վրա ամազոնի ցուցակում տեղադրված է էլեկտրագծերի դիագրամ:

Իմ շարժիչի համար -

Միացրեք Green & Black- ը M2B & M2A- ին

Կարմիրն ու կապույտը միացրեք M1A & M1B- ին: Եթե որևէ պատճառով ձեր շարժիչը չունի դիագրամ, ապա կարող եք հեշտությամբ պարզել, թե որ լարերը միացում են կազմում, եթե ունեք բազմաչափ: Մուլտիմետրը դրեք ցածր ուժեղացուցիչի վրա և անջատեք շարժիչը: Հպեք մուլտիմետրերի տողերից մեկին դեպի շարժիչի լարերից մեկը, այնուհետև փորձեք մյուս լարերից յուրաքանչյուրը մյուս կապարով: Եթե դուք ստանում եք դիմադրության ցուցանիշ, ապա այդ երկու լարերը կազմում են 1 միացում, իսկ մյուս երկուսը ՝ մյուսը:

Քայլ 8. Միացրեք EN, MS1 և MS2 «-»-ին

Միացրեք EN, MS1 և MS2- ը
Միացրեք EN, MS1 և MS2- ը

Ես լիովին համոզված չեմ, որ դա անհրաժեշտ է, բայց ես հավատում եմ, որ այն շարժիչը դնում է TMC2209 վարորդի ավելի փոքր միկրոտարածման վրա: Դուք կարող եք դրանք միացնել իրենց մոտակա երկաթուղային երկաթուղուն, քանի որ մենք այն հետագայում միացնելու ենք մյուս կողմին:

Քայլ 9. Sոդեք երկու հոսանքի լարերի կին միակցիչ

Oldոդեք երկու լարերի կանացի հոսանքի միակցիչ
Oldոդեք երկու լարերի կանացի հոսանքի միակցիչ

Ես աշխարհում ամենալավը չեմ եռակցման մեջ, ուստի դրա համար այլ տեղ պետք է փնտրել, բայց ես իմն էի այդպես անում: Ես թեքեցի լարերի ծայրերը այնպես, որ դրանք հարթ դնեին միակցիչի լարերին, այնուհետև մետաղալարը կպցրեցի կապարին: Ես լարերի նվազեցման որևէ առարկա չունեի, այնպես որ դրանք ուղղակի հսկայականորեն փաթաթեցի էլեկտրական ժապավենով:

Քայլ 10. Միացրեք ձեր նոր զոդված էգ միակցիչը

Միացրեք ձեր նոր զոդված իգական միակցիչը
Միացրեք ձեր նոր զոդված իգական միակցիչը

Խնդրում ենք դեռ միացնել ձեր իրական էներգիայի աղբյուրը: Կարմիր մետաղալարը «+»-ին, սևը «-»-ին

Քայլ 11: Միացրեք դրանք VM/GND- ին

Միացրեք դրանք VM/GND- ին
Միացրեք դրանք VM/GND- ին

Միացրեք այդ «+» և «-» ռելսերը VM- ին և դրա կողքին գտնվող GND- ին: Նրանք, որոնց վրա կա կոնդենսատոր:

Քայլ 12: Հիացեք ձեր ձեռքի աշխատանքով

Հիացեք ձեր ձեռքի աշխատանքով
Հիացեք ձեր ձեռքի աշխատանքով

Դե, այժմ դուք ամբողջովին կարգաբերել եք շարժիչն ու վարորդը: Այսուհետ մենք պարզապես վերահսկողություն ենք իրականացնելու: Ի դեպ, առաջ գնալով.

  • Եթե որևէ պատճառով անջատել եք ձեր վարորդին, մի փորձեք միացնել այն, քանի դեռ ձեր 36V հոսանքը միացված չէ: Ես սպանեցի իմ 3 -րդ վարորդի տախտակը:
  • Արդեն միացրեք 36 Վ լարման հոսանքը, նախքան Arduino հոսանքը միացնելը: Ես անձամբ չեմ տապակել Arduino- ին, բայց ճանապարհին ես շատ նախազգուշացում տեսա այս մասին:

Քայլ 13. Լրացուցիչ - Ստուգեք ձեր VREF- ը

TMC2209- ն ունի պոտենցիոմետր, որը վերահսկում է շարժիչի հոսանքը: Եթե դուք ունեք նույն վարորդը, ինչ ես, ապա դրա մասին կարող եք կարդալ այստեղ: Եթե ցանկանում եք կարգաբերել կարգավորումը.

  • Անջատեք ամբողջ հոսանքը և անջատեք շարժիչի լարերը վարորդից:
  • Անջատեք հաղորդալարը վարորդի EN (միացնելու) պինին: Սա վերին ձախ անկյունում տեղադրված քորոցն է:
  • Միացրեք ձեր շարժիչի սնուցման աղբյուրը (36 Վ)
  • Օգտագործելով 20 Վ լարման վրա տեղադրված բազմիմետր, մի կապը հպեք GND- ի աղբյուրին (ես օգտագործել եմ իմ «-» ռելսին միացված մետաղալար) և մյուս հաղորդալարը դիպչել VREF կապին: Խնդրում ենք ձեռք չբերել որևէ այլ բանի, եթե դա անեք, ԿԱՐՈ եք կարճացնել ձեր վարորդին:
  • Փոքր պտուտակահան օգտագործեք `նրբորեն կարգավորելու պոտենցիոմետրի պտուտակը: Իմ տախտակի համար ՝ ժամացույցի սլաքի հակառակ ուղղությամբ = ավելի մեծ ուժ: Իմ VREF- ն անձամբ կարդում է 6 0.6V:

Քայլ 14: Կոճակներ:

Կոճակներ
Կոճակներ

Հաջորդը, այսպես միացրեք ձեր կոճակները: Նրանք իշխանության կարիք չունեն:

  • Միացրեք ձեր կոճակով տախտակի «-» երկաթուղին Arduino- ի GND- ներից մեկին: Եթե ցանկանում եք, կարող եք այն պարզապես շղթայազերծել մյուս տախտակի «-» երկաթուղուց:
  • Յուրաքանչյուր կոճակի մեկ կապում միացրեք «-» ռելսին
  • Միացրեք յուրաքանչյուր կոճակի մեկ այլ կապում Arduino- ի թվային կապին:

Ես օգտագործել եմ 4 կոճակ ՝ շարժիչը միացված/անջատված

Շարժիչը շարունակվում է

Խոսափողը միացված է

Խոսափողն անջատված է

Այս մասին ավելի շատ, երբ մենք հասնում ենք ծածկագրին, բայց ես խոսափողի հստակ կոճակներ օգտագործեցի պարզապես այն պատճառով, որ ես չունեի լուսադիոդային լուսարձակներ, որպեսզի ինձ տեղեկացնեի, թե խոսափողը միացված է, թե անջատված, այնպես որ հստակ միացման/անջատման կոճակներ ունենալը այն դարձնում է անխելք:

Քայլ 15: Ավելացրեք խոսափողի տախտակ

Ավելացրեք խոսափողի տախտակ
Ավելացրեք խոսափողի տախտակ

Այս մեկը պարզ է, և Adafruit- ն այստեղ ունի լավ հրահանգներ (և զոդման հիմունքներ):

  • Միացրեք «-»-ը GND- ին
  • Միացրեք խոսափողի GND- ը «-»-ին (դուք կարող եք ուղղակիորեն միացնել GND- ը GND- ին և իսկապես բաց թողնել նախորդ քայլը)
  • Միացրեք VCC- ն Arduino- ի 3.3 Վ հոսանքին: Սա կարևոր է, քանի որ այս սնուցման աղբյուրը 5 «Վ» -ից պակաս «աղմկոտ» է, ինչը հանգեցնում է խոսափողի ավելի լավ ընթերցումների
  • Միացրեք OUT- ը Arduino- ի ANALOG IN քորոցին: Ես օգտագործել եմ A0:

Քայլ 16: Սա պետք է լինի վերջնական արդյունքը:

Սա պետք է լինի վերջնական արդյունքը
Սա պետք է լինի վերջնական արդյունքը
Սա պետք է լինի վերջնական արդյունքը
Սա պետք է լինի վերջնական արդյունքը

Հիմա ամեն ինչ պետք է պատրաստ լինի: Ահա վերջնական դիագրամի նկարը և իմ լարերի խառնաշփոթը իրականում: Եկեք մի քանի կոդ նայենք:

Քայլ 17: Կոդ

Լավ, եկեք նայենք ծածկագրին: Սա իմ ամենամաքուր աշխատանքը չէ, բայց աշխատանքն ավարտվում է: Ես ավելացրել եմ մեկնաբանություններ ՝ ամեն ինչ բացատրելու համար այստեղ, բայց համբերիր ինձ: Այս ամենի համար ես օգտագործեցի Arduino IDE- ն (անվճար Windows- ում և Mac- ում): Խնդիրն այս է. Սահմանեք շարժիչի արագությունը և շրջվելու հեռավորությունը:

Սահմանեք մի շարք ժայռեր (ճոճանակներ) անելու համար:

Պտտեք սահմանված հեռավորությունը 1 ճոճանակի համար: Մի շարք անգամ պտտեք:

Այդ ամենի արանքում դիտեք կոճակների սեղմումները կամ լսեք խոսափողը `տեսնելու համար, թե արդյոք շարժիչը պետք է միացվի: Դուք պետք է կարգավորեք արագությունը, հեռավորությունը և խոսափողի զգայունության արժեքները: Շարժիչի արագությունը կազդի ձայնի և ոլորող մոմենտի վրա: Որքան արագ է շարժիչը շարժվում, այնքան ավելի բարձր է այն և ավելի քիչ ոլորող մոմենտ է ստեղծվում: Իմը ներկայումս գրեթե լռում է, ուստի հնարավոր է, որ այն աշխատի առանց շատ ձայնի:

#ներառել // «ստանդարտ» տափաստանային շարժադարան

//#define DEBUG 1 // չմեկնաբանեք սա, երբ ցանկանում եք կարգավորել խոսափողի մակարդակը // Button setup - դրանք համապատասխանում են այն վայրերին, որտեղ դուք միացված եք թվային կապում կոճակներին const int motorEnablePin = 10; const int continuePin = 11; const int micDisablePin = 12; const int micEnablePin = 13; // Խոսափողի կարգավորում - A0- ն այստեղ է խոսափողի անալոգը: Նմուշի պատուհանը գտնվում է millis const int micPin = A0- ում; const int sampleWindow = 1000; անստորագիր int նմուշ; bool micEnabled = կեղծ; կրկնակի միկրոզգայունություն = 0.53; // Դուք հավանաբար պետք է փոխեք սա // Ինձ համար, մոտ.5 -ը բավական լավ էր, որպեսզի չլռեր փոքր գռգռոցների ժամանակ // բայց կրակեր փոքր բացականչությունների համար int stepPerRevolution = 3200; // փոխեք սա ՝ ձեր շարժիչի համար մեկ պտույտի քայլերի քանակին համապատասխան // Իմ շարժիչը 200 քայլ է/պտույտ // Բայց ես վարորդին դրել եմ 1/16 միկրոտոր // այնպես որ 200*16 = 3200… անկեղծ ասած գաղափար չկա, եթե սա դա պատշաճ միջոց է // դա անել Stepper myStepper- ը (stepsPerRevolution, 2, 3); // 2 & 3 -ը DIR & STEP կապում են int stepCount = 0; int motorSpeed = 95; // դուք պետք է կարգավորեք սա ըստ ձեր օրորոցի և երեխայի քաշի int numSteps = 90; // Հեռավորությունը, որը շարժելու է շարժիչը: // Դուք պետք է դա կարգավորեք ՝ ձեր անիվի շառավիղից ելնելով // ձեր շարժիչին: Սա և արագությունը, ամենայն հավանականությամբ, կլինեն փորձություն և սխալ: // Նշում - ավելի բարձր արագություն տատանվող շարժիչների վրա = ավելի ցածր արդյունավետ պտտող մոմենտ // Եթե դուք չունեք բավարար ոլորող մոմենտ, ձեր շարժիչը բաց կթողնի քայլերը (չի շարժվի) int oldmotorButtonValue = HIGH; bool enabled = false; // շարժիչը միացված է int loopStartValue = 0; int maxRocks = 100; // քանի անգամ եք ուզում, որ այն թրթռա, նախքան int rockCount = 0 անջատելը; void setup () {#ifdef DEBUG Serial.begin (9600); // վրիպազերծման համար #endif pinMode (motorEnablePin, INPUT_PULLUP); // Սա կարգավորում է, որպեսզի կոճակները աշխատեն առանց հոսանքի pinMode (շարունակել Pin, INPUT_PULLUP); pinMode (micEnablePin, INPUT_PULLUP); pinMode (micDisablePin, INPUT_PULLUP); myStepper.setSpeed (motorSpeed); // շարժիչի արագությունը սահմանում է այն, ինչ ավելի վաղ նշել եք} void loop () {int motorButtonValue = digitalRead (motorEnablePin); // digitalRead- ը պարզապես կարդում է կոճակի արժեքները int continueValue = digitalRead (continuePin); // Սա հայտնաբերում է շարժիչի կոճակի սեղմումը և կանխում այն մեկից ավելի կրակել մեկ սեղմումով, եթե (motorButtonValue == HIGH && oldmotorButtonValue == LOW) {enabled =! Միացված է; } micCheck (); // Եթե շարժիչը անջատված է, և խոսափողը միացված է, լսեք երեխայի լացը, եթե (! Միացված է && micEnabled) {if (getMicReading ()> = micSensitivity) միացված է = ճշմարիտ; } եթե (միացված է) {stepsPerRevolution = stepsPerRevolution * -1; // հակառակ ուղղություն // Իմ կարգավորմամբ ավելի արդյունավետ է շրջվել // առաջին ճոճանակի վրա: Դուք կարող եք սա տեղադրել հանգույցից հետո // եթե դա ձեր դեպքում չէ /պտտել շարժիչը վերը նշված հեռավորությունը (int i = loopStartValue; i <numSteps; i ++) {// ստուգեք int tempmotorButtonValue = digitalRead- ի անջատման համար (motorEnablePin); եթե (tempmotorButtonValue! = motorButtonValue) {rockCount = 0; // Այս հաջորդ երկու տողերը «փրկում են» շարժիչի դիրքը, որպեսզի հաջորդ անգամ այն միացնելիս // այն կշարունակի ճանապարհորդել այնպես, ասես դու այն անջատած չլինես: Սա կանխում է նետումը // ձեր շարժման հեռավորությունները loopStartValue = i; // պահպանել դիրքերը stepsPerRevolution = stepsPerRevolution * -1; // պահպանել ուղղությունը oldmotorButtonValue = tempmotorButtonValue; ընդմիջում; } checkContinue (շարունակել արժեքը); // ստուգեք, արդյոք շարունակության կոճակը սեղմված է micCheck (); myStepper.step (stepsPerRevolution / 50); // քանի՞ քայլ կատարել մեկ հանգույցի համար, // գուցե անհրաժեշտ լինի դա կարգավորել // համոզվեք, որ մենք շարունակում ենք ամբողջ հանգույցի հեռավորությունը, եթե օղակն ավարտվի // սա ուժի մեջ կմտնի, եթե ինքներդ անջատեք շարժիչը, և այն «փրկեց» դիրքը եթե (i == numSteps - 1) {loopStartValue = 0; }}} ուշացում (100); // դադարեցնել 100 միլիոնը ՝ հաջորդ ռոքը կատարելուց առաջ: Դուք պետք է կարգավորեք սա: եթե (միացված է) checkComplete (); oldmotorButtonValue = motorButtonValue; // սա օգտագործվում է կրկնակի սեղմումներ թույլ չտալու համար} // Այս կոդը անմիջապես Adafruit- ից է: կրկնակի getMicReading () {unsigned long startMillis = millis (); անստորագիր int peakToPeak = 0; // գագաթնակետից մինչև գագաթնակետ անստորագիր int signalMax = 0; անստորագիր int signalMin = 1024; while (millis () - startMillis <sampleWindow) {micCheck (); եթե (digitalRead (motorEnablePin) == LOW) միացված է = ճշմարիտ; նմուշ = analogRead (micPin); եթե (նմուշ signalMax) {signalMax = նմուշ; // պահպանել միայն առավելագույն մակարդակները} else if (օրինակ = maxRocks) {միացված է = կեղծ; rockCount = 0; // վերադառնալ միջին դիրքի

for (int i = loopStartValue; i <numSteps/2; i ++) {

myStepper.step (stepsPerRevolution * -1 / 50); // հեղափոխության 1/100 քայլ.

}

} }

Քայլ 18: Մոնտաժ և անիվի կարգավորում

Մոնտաժ և անիվի կարգավորում
Մոնտաժ և անիվի կարգավորում

Սա ինձ համար դեռ WIP է, քանի որ ինչպես ասացի, վստահ չեմ, որ դեռ ուզում եմ պտուտակներ դնել օրորոցի մեջ: Իմը կեղծելու եղանակը հետևյալն է.

  • Տեղադրեք մի սեղմիչ, որը հանդես կգա որպես օրորոցից դուրս եկող թև, որպեսզի իմ անիվը կարողանա քաշել ուղիղ գծով
  • Պտուտակեց անմշակ տուփը ՝ շարժիչը տեղադրելու համար, և պտուտակեց այն բազայի ափսեի վրա, որը ես սեղմեցի օրորոցի ոտքին
  • Պատրաստեց փայտե ճախարակի անիվ ՝ անցքով, որը տեղավորվում էր փոքր սուզվող ճախարակի անիվի ներսում: Ես կենտրոնական անցքը դարձրեցի շատ ամուր և պարզապես խոցված էի քայլքի ճախարակ անիվի մեջ: Ես անիվի միջով անցք եմ բացել դեպի մեջտեղ, որպեսզի կարողանամ մուտք գործել մետաղական ճախարակով պտուտակին `այն սեղմող շարժիչի վրա ամրացնելու համար:
  • Օրորոցի «թևից» մինչև անիվ մի տող վազեք: Ես ամրացրեցի պարանը ՝ այն անցնելով անցքիս անցքով և պարզապես ամրացնելով այն տեղում:

3 -րդ քայլի ավելի լավ լուծումն առաջին հերթին պարզապես ավելի մեծ տրամագծով ճախարակ անիվ գնելն է: Իմն ակոսից մի փոքր փոքր է 3 տրամագծով և իսկապես լավ է աշխատում իմ օրորոցի համար:

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

Քայլ 19: Վերջնական կարգավորում

Վերջնական կարգավորում
Վերջնական կարգավորում

Տեղադրեք խոսափողը ձեր երեխայի մոտ, բայց մի վայրում, որտեղ նրանք չեն պատրաստվում հարվածել լարերին: Տեղադրեք կոճակները որտեղ ուզում եք, քանի դեռ ունեք բավականաչափ լարեր `վերջնական նպատակակետ վազելու համար: Կարող եք նաև պարզապես փոխարինել կոճակները wifi կարգավորմամբ arduino- ում, բայց ես դեռ այդքան չեմ խորացել: Հաջողություն այնտեղ:

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