Orodha ya maudhui:

Rocker ya Cradle ya Arduino: Hatua 19 (na Picha)
Rocker ya Cradle ya Arduino: Hatua 19 (na Picha)

Video: Rocker ya Cradle ya Arduino: Hatua 19 (na Picha)

Video: Rocker ya Cradle ya Arduino: Hatua 19 (na Picha)
Video: Automatic swing type Baby cradle using car wiper motor 2024, Julai
Anonim
Image
Image

Samahani, sikuweza kupinga muziki mkali wa kuhariri kitu changu cha kuhariri video kilichopendekezwa.

Hivi majuzi nilikuwa na mtoto wangu wa kwanza na tayari nilikuwa na utoto wa mbao ambao mjomba wangu (ambaye ni fundi kazi wa kutisha) alimtengenezea mpwa wangu. Mpwa wangu alikuwa ameizidi kwa muda mrefu, kwa hivyo nilifurahi kuichukua na kuzuia kutumia PESA ZOTE kwa chochote utoto / bassinet wanablogu wa mama walikuwa wamepumzika. Utoto ni muundo mzuri sana, kimsingi uprights mbili na bolts kupitia hizo zinazounga mkono mwili wa utoto. Kuna kigingi kinachoweza kutolewa ili kukifunga mahali pake.

Ndani ya wiki chache tuligundua kuwa mara nyingi tunaweza kuzima machafuko mepesi kwa kutikisa utoto kidogo hadi kijana wetu atulie. Usiku tuliogundua hii, nilitumia dakika 10 kunyoosha usiku na mkono wangu ukifika kutoka chini ya vifuniko, nikimtetemesha usingizi, nikifurahi kuwa nilipata njia ya kumtuliza bila kuamka kitandani mwenyewe. asubuhi niliunganisha kamba na kabati kidogo ili niweze kutikisa utoto bila kulazimika kunyoosha mkono wangu nje.

Asubuhi baada ya hapo, nilianza kujadili njia ya kuwa na mwamba wa roboti mtoto huyu kwangu. Ingiza Arduino…

Vifaa

Ok, huu ulikuwa mradi wangu wa kwanza wa Arduino, kwa hivyo nilijaribu na kujaribu makosa, na nina hakika kuna nafasi ya kuboresha muundo wangu, lakini hii ndio orodha yangu ya sehemu: Arduino Uno ($ 13) ya kudhibiti kila kitu. kit ($ 10) kwa waya za kuunganisha

Pikipiki ya kukanyaga ($ 14) Hiki ni kipande cha kufurahisha zaidi, kwa sababu ndio kitu ambacho hufanya kazi yote. Nilianza na dereva wa chini kidogo, lakini nikapata hii na inafanya kazi vizuri. Jisikie huru kupata moja yenye nguvu zaidi. Madereva wa gari la Stepper ($ 10-30) Hii inakaa kati ya Arduino na motor. Hii ni dhahiri ina uwezo wa kuendesha gari kwa utulivu zaidi kuliko wengine, kwa hivyo nilienda na hiyo kwa kuwa motor itakuwa mita chache kutoka kwa kichwa changu (na cha mwanangu) wakati tumelala. Hapo awali nilinunua dereva mmoja wa TMC2209 kwa ~ $ 10, lakini niliishia kununua kifurushi cha 4 kwa sababu nilikuwa na ugumu mwanzoni na nilitaka kuhakikisha kuwa sijakaanga bodi wakati fulani. Niliishia kuua bodi 3, ambayo inanileta kwenye kipengee changu kinachofuata… Capacitors! ($ 10) Unahitaji tu capacitor 1 47 uF 50V, kwa hivyo sanduku hili la 240 lilikuwa limezidi njia. Ugavi wa umeme wa 36V ($ 17) hapo awali nilinunua usambazaji mdogo wa 12V, kisha nikagundua kuwa hiyo ndiyo chanzo cha shida zangu zote. na kupata moja ambayo ilikuwa karibu na voltage ya juu ambayo motor yangu ya stepper inaweza kushughulikia. Ikiwa unatumia dereva tofauti wa gari au stepper, hakikisha kuwa inaweza kushughulikia voltage (V) na kwamba Amperage (A) ya usambazaji ni angalau juu kama kilele cha Amps kinachovutwa na motor. $ 8) Hivi ndivyo umeme unaziba ndani. Utahitaji kuziunganisha kwa waya zingine ili kushikamana na ubao wako wa mkate. Kifurushi kikubwa cha kuruka ($ 9) ili niweze kuweka vidhibiti popote ninapotaka kwenye chumba.

Vifungo ($ 8) kwa kuzima / kuzima, nk

Sauti ya kipaza sauti ($ 11) Oh, yall hakujua hii ilikuwa imeamilishwa kwa sauti, pia?

Baadhi ya magurudumu ya pulley ($ 8) niliishia kutumia hizi, lakini kunaweza kuwa na njia mbadala bora. Zaidi juu ya hiyo baadaye. Utahitaji pia chuma cha kutengeneza na chochote unachotaka kutumia kuweka gari. Mimi mwenyewe nilitengeneza sanduku mbaya kutoka kwa vipande 4 vya kuni vilivyounganishwa, na kisha nikazipiga kwa kipande kingine cha kuni ambacho ni karibu upana wa mguu wangu wa utoto. Kwa sasa nimeibana tu kwa sababu sijui ikiwa ninataka kuharibu utoto wa mjomba wangu.

Hatua ya 1: Jitambulishe na Pinout yako ya Dereva wa Stepper

Waya Arduino 5V / GND kwa Ubao wako wa Mkate
Waya Arduino 5V / GND kwa Ubao wako wa Mkate

Programu ya modeli niliyotumia haikuwa na bodi halisi ya dereva, kwa hivyo itabidi urejelee picha hii. Nimepanga kila kitu katika mwelekeo sawa na picha hii.

Hatua ya 2: Waya Arduino 5V / GND kwa Ubao wako wa Mkate

Unganisha waya kutoka Arduino 5V hadi reli ya + + "upande mmoja wa ubao wako wa mkate Unganisha waya kutoka kwa moja ya Arduino GND hadi" - "reli upande huo huo wa ubao wa mkate

(kupuuza

Hatua ya 3: Unganisha +/- Reli kwa VIO / GND

Unganisha +/- Reli kwa VIO / GND
Unganisha +/- Reli kwa VIO / GND

Unganisha waya kutoka reli ya "-" hadi GND upande wa kushoto chini ya bodi ya dereva wa stepper. Unganisha waya kutoka reli ya "+" hadi VIO

Hatua ya 4: Unganisha DIR / HATUA kwa Pini za Dijiti kwenye Arduino

Unganisha DIR / HATUA kwa Pini za Dijiti kwenye Arduino
Unganisha DIR / HATUA kwa Pini za Dijiti kwenye Arduino

Unganisha pini za DIR na STEP kutoka kwa bodi ya dereva ya stepper hadi pini mbili za dijiti kwenye Arduino. Nilitumia pini 2 na 3, mtawaliwa, lakini haijalishi maadamu utaweka pini kwenye nambari yako baadaye.

Hatua ya 5: Wacha Uende Mbele na Uongeze Kiongozi huyo…

Lets Go Award na Kuongeza Hiyo Capacitor…
Lets Go Award na Kuongeza Hiyo Capacitor…

Niliteketeza bodi 2 za dereva za stepper kwa sababu sikuwa na capacitor mahali, kwa hivyo acha kwenda mbele na kuongeza 47uF 50V capacitor kwenye pini za VM / GND kwenye bodi ya dereva. Hakikisha "-" pini kwenye capacitor iko kwenye pini ya GND kwenye ubao wa mkate (kutakuwa na "-" kwa upande unaolingana wa capacitor)

Hatua ya 6: Na Nenda Mbele na Unganisha Hiyo GND

Na Nenda Mbele na Unganisha Hiyo GND
Na Nenda Mbele na Unganisha Hiyo GND

Kwenye GND ambayo umeongeza tu capacitor, nenda mbele na unganisha hiyo kwa reli ile ile "-" kama GND nyingine.

Hatua ya 7: Unganisha Pikipiki na Dereva

Unganisha Pikipiki na Dereva
Unganisha Pikipiki na Dereva

Je! Ni pini ipi huenda wapi itategemea motor uliyonunua, lakini ile niliyoorodhesha ina mchoro wa wiring kwenye orodha ya amazon.

Kwa motor yangu -

Unganisha Kijani na Nyeusi kwa M2B & M2A

Unganisha Nyekundu na Bluu kwa M1A & M1BNote: Ikiwa kwa sababu yoyote motor yako haina mchoro, unaweza kugundua kwa urahisi ni waya gani huunda mzunguko ikiwa una multimeter. Weka multimeter yako kwa mpangilio mdogo wa amp na uondoe motor yako. Gusa moja ya multimeter inaongoza kwa moja ya waya za gari, na kisha ujaribu kila waya zingine na risasi nyingine. Ikiwa unapata usomaji wa upinzani, basi waya hizo mbili huunda mzunguko 1, na hizo mbili zinaunda nyingine.

Hatua ya 8: Unganisha EN, MS1, na MS2 kwa "-"

Unganisha EN, MS1, na MS2 kwa
Unganisha EN, MS1, na MS2 kwa

Sina hakika kabisa kwamba hii ni muhimu, lakini ninaamini kwamba inaweka motor kwa mipangilio ndogo ya microstep kwenye dereva wa TMC2209. Unaweza kuziunganisha na reli "-" reli iliyo karibu zaidi nao, kwani tutaiunganisha kwa upande mwingine baadaye.

Hatua ya 9: Gundua kiunganishi cha Nguvu cha Kike kwa waya mbili

Solder Kiunganishi cha Nguvu cha Kike kwa waya mbili
Solder Kiunganishi cha Nguvu cha Kike kwa waya mbili

Mimi sio bora ulimwenguni kwa kuuza, kwa hivyo utahitaji kutafuta mahali pengine kwa hiyo, lakini nilifanya yangu kama hivyo. Niliinama ncha za waya ili waweze kuweka gorofa dhidi ya viunganisho vya kiunganishi, kisha nikauzia waya kwa risasi. Sikuwa na kitu chochote cha kupunguza joto kwa kamba kwa hivyo niliwafunga tu kwa mkanda wa umeme.

Hatua ya 10: Unganisha Kiunganishi chako cha Kike kipya kinachouzwa

Unganisha Kiunganishi chako cha Kike kipya
Unganisha Kiunganishi chako cha Kike kipya

Tafadhali usizie umeme wako bado. Waya mwekundu kwa "+", nyeusi hadi "-"

Hatua ya 11: Unganisha hizo kwa VM / GND

Unganisha hizo kwa VM / GND
Unganisha hizo kwa VM / GND

Unganisha reli "+" na "-" kwa VM na GND karibu nayo. Wale walio na capacitor juu yake.

Hatua ya 12: Pendeza kazi yako ya mikono

Pendeza Kazi yako ya Kazi
Pendeza Kazi yako ya Kazi

Sawa, sasa unayo motor na dereva umewekwa kabisa! Kuanzia hapa kwenda nje tutafanya tu udhibiti. Kwa njia, kwenda mbele:

  • Ikiwa umetenganisha dereva wako kwa sababu yoyote, usijaribu kuiunganisha wakati nguvu yako ya 36V imechomekwa. Niliua bodi yangu ya tatu ya dereva kama hiyo.
  • Funga umeme wa 36V kabla ya kuziba nguvu ya Arduino. Sikuweza kukaanga Arduino, lakini njiani niliona onyo nyingi juu ya hii.

Hatua ya 13: Hiari - Angalia VREF yako

TMC2209 ina potentiometer inayodhibiti sasa kwa motor. Ikiwa umepata dereva sawa na niliyenaye, unaweza kusoma juu ya hiyo hapa. Ikiwa unataka kurekebisha mipangilio:

  • Tenganisha nguvu zote na ukate waya za gari kutoka kwa dereva.
  • Tenganisha waya kwenye pini ya EN (wezesha) kwenye dereva. Hii ni pini kwenye kona ya juu kushoto.
  • Chomeka usambazaji wa umeme wako (ile 36V moja)
  • Kutumia seti ya multimeter kwenye 20V, gusa risasi moja kwa chanzo cha GND (nilitumia waya kuungana na reli yangu ya "-") na gusa risasi nyingine kwenye pini ya VREF. Tafadhali usiguse mwongozo kwa kitu kingine chochote, UNAWEZA kufupisha dereva wako ikiwa utafanya.
  • Tumia bisibisi ndogo kurekebisha upole screw ya potentiometer. Kwa bodi yangu, saa moja kwa moja = nguvu zaidi. VREF yangu inasoma kibinafsi ~ 0.6V.

Hatua ya 14: Vifungo

Vifungo!
Vifungo!

Ifuatayo, unganisha vifungo vyako kama hivyo. Hawahitaji nguvu.

  • Unganisha reli ya "-" ya kitufe chako cha kitufe kwa moja ya GND ya Arduino. Unaweza pia kuifunga kutoka kwa reli nyingine ya "-" ikiwa unataka.
  • Unganisha pini moja ya kila kifungo kwenye reli "-"
  • Unganisha pini nyingine ya kila kifungo kwa pini ya dijiti kwenye Arduino.

Nilitumia vifungo 4: Motor on / off

Motor kuendelea

Kipaza sauti imewashwa

Kipaza sauti imezimwa

Zaidi juu ya hizi tunapofika kwa nambari, lakini nilitumia vifungo vya kipaza sauti tofauti kwa sababu tu sikuwa na LED kunijulisha ikiwa mic ilikuwa imewashwa au imezimwa, kwa hivyo kuwa na vifungo tofauti juu ya / kuzima kulifanya iwe ujinga.

Hatua ya 15: Ongeza Bodi ya Maikrofoni

Ongeza Bodi ya Maikrofoni
Ongeza Bodi ya Maikrofoni

Hii ni rahisi, na Adafruit ina maagizo mazuri (na misingi ya kuuza!) Hapa.

  • Unganisha "-" kwa GND
  • Unganisha GND kwenye ubao wa mic kwa "-" (unaweza kuunganisha GND moja kwa moja na GND na uruke hatua ya awali, kweli)
  • Unganisha VCC kwa nguvu ya 3.3V kwenye Arduino. Hii ni muhimu kwani usambazaji huu wa umeme hauna "kelele" kidogo kuliko 5V, na kusababisha usomaji bora wa kipaza sauti
  • Unganisha OUT kwa pini ya ANALOG IN kwenye Arduino. Nilitumia A0.

Hatua ya 16: Hii inapaswa kuwa Matokeo ya Mwisho

Hii inapaswa kuwa Matokeo ya Mwisho!
Hii inapaswa kuwa Matokeo ya Mwisho!
Hii inapaswa kuwa Matokeo ya Mwisho!
Hii inapaswa kuwa Matokeo ya Mwisho!

Kila kitu kinapaswa kuwa tayari sasa. Hapa kuna picha ya mchoro wa mwisho na sauti yangu ya waya kwa kweli. Hebu tuangalie nambari fulani!

Hatua ya 17: Kanuni

Ok hebu angalia nambari! Hii sio kazi yangu safi zaidi, lakini inafanya kazi ifanyike. Nimeongeza maoni kuelezea kila kitu hapa, lakini nivumilie. Nilitumia Arduino IDE kwa haya yote (inapatikana kwenye Windows na Mac bure) Jist ni hii: Weka kasi ya gari na umbali wa kugeuza.

Weka miamba kadhaa (swings) ya kufanya.

Badili umbali uliowekwa wa 1 swing. Pindisha mara kadhaa.

Katikati ya yote hayo, angalia mashinikizo ya kitufe au usikilize maikrofoni ili uone ikiwa motor inapaswa kuwasha. Utahitaji kurekebisha kasi, umbali, na maadili ya unyeti wa mic. Kasi ya mota itaathiri sauti na wakati. Kadri motor inavyokwenda kasi, ndivyo inavyokuwa kubwa na wakati kidogo unapata. Yangu kwa sasa iko karibu kimya, kwa hivyo inawezekana kuiendesha bila kutoa sauti nyingi.

# pamoja na // "standard" stepper motor maktaba

// # fafanua DEBUG 1 // uncomment hii wakati unataka kurekebisha viwango vya maikrofoni // Usanidi wa vifungo - hizi zinahusiana na mahali pini za dijiti ulizoziunganisha kwenye vifungo const int motorEnablePin = 10; const int kuendeleaPin = 11; const int micDisablePin = 12; const int micEnablePin = 13; // Usanidi wa Mic - A0 hapa ni analog katika mic. Sampuli ya dirisha iko katika millis const int micPin = A0; sampuli ya sampuliWindow = 1000; sampuli isiyosajiliwa ya int; bool micEnabled = uwongo; unyeti mara mbili = 0.53; // itabidi ubadilishe hii // Kwangu, karibu.5 ilitosha kutosha kuwasha juu ya kulia kidogo // lakini itawaka kwa vilio vidogo ndani ya hatuaPerRevolution = 3200; // badilisha hii kutoshea idadi ya hatua kwa kila mapinduzi kwa motor yako // Pikipiki yangu ni hatua 200 / mapinduzi // Lakini niliweka dereva kwa 1/16 microsteps // hivyo 200 * 16 = 3200… kwa uaminifu sijui ikiwa hii ni njia sahihi // ya kufanya hii Stepper myStepper (stepPerRevolution, 2, 3); // 2 & 3 ni pini za DIR & STEP int stepCount = 0; int motorSpeed = 95; // utahitaji kurekebisha hii kulingana na utoto wako & uzito wa mtoto int numSteps = 90; // Umbali ambao motor itasonga. // Utahitaji kurekebisha hii kulingana na eneo la gurudumu unaloambatisha // kwa motor yako. Hii na kasi itakuwa uwezekano wa kujaribu na makosa. // Kumbuka - kasi kubwa juu ya motors stepper = chini torque inayofaa // Ikiwa hauna torque ya kutosha, motor yako itaruka hatua (sio hoja) int oldmotorButtonValue = HIGH; bool imewezeshwa = uwongo; // motor imewezeshwa? int loopStartValue = 0; max max = 100; // ni mara ngapi unataka itike kabla ya kuzima int rockCount = 0; kuanzisha batili () {#ifdef DEBUG Serial.begin (9600); // kwa ukataji wa utatuzi # endif pinMode (motorEnPinPIN, INPUT_PULLUP); // Hii ni mipangilio ya vifungo kufanya kazi bila pini ya nguvu (endeleaPin, INPUT_PULLUP); pinMode (micEnablePin, INPUT_PULLUP); pinMode (micDisablePin, INPUT_PULLUP); MyStepper.setSpeed (motorSpeed); // huweka kasi ya gari kwa kile ulichotaja mapema} kitanzi batili () {int motorButtonValue = digitalRead (motorEnablePin); // digitalRead inasoma tu maadili ya kitufe int continueValue = digitalRead (continuePin); // Hii hugundua kitufe cha kitufe cha motor na inazuia kupiga risasi zaidi ya mara moja kwa kubofya ikiwa (motorButtonValue == HIGH && oldmotorButtonValue == LOW) {kuwezeshwa =! Kuwezeshwa; } micCheck (); // Ikiwa motor imezimwa, na maikrofoni imewashwa, sikiliza kilio cha mtoto ikiwa (! Imewezeshwa && micEnabled) {if (getMicReading ()> = micSensitivity) imewezeshwa = kweli; } ikiwa (imewezeshwa) {stepsPerRevolution = stepsPerRevolution * -1; // mwelekeo wa kurudi nyuma // Pamoja na usanidi wangu ni bora zaidi kugeuza // swing ya kwanza. Unaweza kuweka hii baada ya kitanzi // ikiwa sivyo ilivyo kwa yako // spin motor umbali uliowekwa hapo juu kwa (int i = loopStartValue; i <numSteps; i ++) {// angalia kuzima int tempmotorButtonValue = digitalRead (motorEnablePin); ikiwa (tempmotorButtonValue! = motorButtonValue) {rockCount = 0; // Hii mistari miwili ijayo "weka" nafasi ya gari, ili wakati mwingine ukiiwasha // itaendelea kusafiri kana kwamba haukuizima. Hii inazuia kutupa // umbali wako wa harakati loopStartValue = i; // kuokoa nafasi za nafasiPeRevolution = hatuaPerRevolution * -1; // kudumisha mwelekeo oldmotorButtonValue = tempmotorButtonValue; kuvunja; } angalia Endelea (endelea Thamani); // angalia ikiwa kitufe cha kuendelea kilibonyezwa micCheck (); myStepper.step (hatuaPerRevolution / 50); // ni hatua ngapi za kuchukua kwa kitanzi, // unaweza kuhitaji kurekebisha hii // hakikisha tunaendelea umbali kamili wa kitanzi ikiwa kitanzi kimekamilika // hii itaanza kucheza ikiwa ulijizuia mwenyewe na "ikaokoa" nafasi ikiwa (i == numSteps - 1) {loopStartValue = 0; }}} kuchelewa (100); // pumzika milisiti 100 kabla ya kufanya mwamba unaofuata. Utahitaji kurekebisha hii. ikiwa (imewezeshwa) angalia kukamilika (); oldmotorButtonValue = motorButtonValue; // hii hutumiwa kwa kuzuia kubofya mara mbili} // Nambari hii ni moja kwa moja kutoka kwa Adafruit. getMicReading mara mbili () {unsigned long startMillis = millis (); unsigned int peakToPeak = 0; // kiwango cha juu-kwa-kilele kisicho sainiwa ishara ya ndaniMax = 0; ishara isiyosajiliwa intMin = 1024; wakati (millis () - startMillis <sampleWindow) {micCheck (); ikiwa (digitalRead (motorEnablePin) == LOW) imewezeshwa = kweli; sampuli = AnalogSoma (micPin); ikiwa (sampuli signalMax) {signalMax = sampuli; // kuokoa viwango vya juu tu} mwingine ikiwa (sampuli = maxRocks) {kuwezeshwa = uwongo; rockCount = 0; // kurudi katikati positio

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

myStepper.step (hatuaPerRevolution * -1 / 50); // hatua 1/100 ya mapinduzi:

}

} }

Hatua ya 18: Kuweka na Kuweka Gurudumu

Kuweka & Usanidi wa Gurudumu
Kuweka & Usanidi wa Gurudumu

Bado hii ni WIP kwangu, kwa sababu kama nilivyosema sina hakika nataka kuweka visu ndani ya utoto wangu bado. Njia niliyochimba yangu ni kama ifuatavyo:

  • Weka kamba ili uifanye kama mkono unaotoka kwenye utoto ili gurudumu langu liweze kuvuta kwa mstari ulionyooka
  • Nilikusanya pamoja sanduku ghafi ili kuweka motor ndani, na kuikata hiyo kwa bamba la msingi, ambalo nililibana kwenye mguu wa utoto
  • Alitengeneza gurudumu la pulley la mbao na shimo kutoshea gurudumu ndogo ya kukanyaga ndani. Nilifanya shimo la katikati kuwa lenye kubana sana na kuweka tu mallet kwenye gurudumu la kukanyaga. Nilichimba shimo kupitia gurudumu hadi katikati ili niweze kupata screw kwenye gurudumu la chuma la kukokota ili kukaza kwenye motor stepper.
  • Tembeza kamba kutoka kwa "mkono" wa utoto hadi kwenye gurudumu. Nilihakikisha kamba kwa kuitembeza kupitia shimo ambalo ningepiga na kuigonga tu mahali.

Suluhisho bora kwa hatua ya 3 ni kununua tu gurudumu kubwa la pulley mahali pa kwanza. Yangu ni chini ya kipenyo cha 3 ndani ya gombo na inafanya kazi vizuri kwa utoto wangu.

Toleo langu la kwanza lilitumia mkono badala ya gurudumu. Haikufanya kazi karibu vile vile kwa sababu nguvu haikutumika kwa mwelekeo thabiti, na pia ilikuwa ikihusika kupata kutupwa ikiwa nafasi ya kuanza haikuwa sahihi. Kutumia gurudumu hutatua maswala hayo. Niliburudisha pia kutumia mfumo mdogo wa kapi, lakini niliishia kutohitaji kwa sababu gurudumu langu lilinipa nguvu ya kutosha.

Hatua ya 19: Usanidi wa Mwisho

Usanidi wa Mwisho
Usanidi wa Mwisho

Weka kipaza sauti karibu na mtoto wako, lakini mahali ambapo hawatapiga waya yoyote. Weka vifungo popote unapotaka, maadamu una waya za kutosha kukimbia hadi mwisho. Unaweza pia kubadilisha tu vifungo na usanidi wa wifi kwenye arduino, lakini bado sijaenda kwa kina. Bahati nzuri huko nje!

Ilipendekeza: