INHOUDSOPGAWE:

Arduino Cradle Rocker: 19 stappe (met foto's)
Arduino Cradle Rocker: 19 stappe (met foto's)

Video: Arduino Cradle Rocker: 19 stappe (met foto's)

Video: Arduino Cradle Rocker: 19 stappe (met foto's)
Video: Automatic Baby Cradle | Automatic E-Baby Cradle Cry (Sound Sensor) Bed Using Arduino 2024, Julie
Anonim
Image
Image

Jammer, ek kon nie die harde, intense musiek wat my videobewerking voorgestel het, weerstaan nie.

Ek het onlangs my eerste kind gehad en het reeds 'n houthouer wat my oom (wat 'n wonderlike houtwerker is) vir my nefie gemaak het. My neef het dit al lank uitgegroei, so ek was bly om dit op te neem en vermy om al die geld te bestee aan watter wieg/wieg die ma -bloggers my vrou laat oorweldig het. Die wieg is 'n redelik eenvoudige ontwerp, basies twee staanders met boute daardeur wat die bakliggaam ondersteun. Daar is 'n verwyderbare pen om dit vas te maak.

Binne 'n paar weke het ons agtergekom dat ons dikwels ligte onstuimigheid kan onderdruk deur 'n bietjie wieg te hou totdat ons seuntjie gaan lê het. Die aand toe ons dit agterkom, het ek 'n paar minute stukkies laat in die nag deurgebring terwyl my arm onder die deksels uitgestrek het, hom slaperig wieg, gelukkig dat ek 'n manier gevind het om hom te kalmeer sonder om self uit die bed te kom. Ek het die oggend 'n tou en 'n karabyn vasgemaak sodat ek die wieg kon wieg sonder om my arm uit te strek.

Die oggend daarna het ek 'n dinkskrum begin kry om 'n robot vir hierdie kind vir my te laat rock. Voer die Arduino in …

Voorrade

Ok, dit was my eerste Arduino -projek ooit, so ek het bietjie eksperimenteer en probeer en fouteer, en ek is seker daar is ruimte vir verbetering in my ontwerp, maar hier is my onderdeellys: Arduino Uno ($ 13) om alles te beheer. kit ($ 10) vir die aansluiting van drade

Die stepper motor ($ 14) Dit is die lekkerste stuk, want dit is die ding wat al die werk doen. Ek het begin met 'n effens laer wringkragbestuurder, maar ek het hierdie een gekry en dit werk redelik goed. Kry gerus 'n nog kragtiger motor. Stapmotorbestuurders ($ 10-30) Dit sit tussen die Arduino en die motor. Hierdie spesifieke een kan blykbaar die motor stiller bestuur as ander, so ek het daarmee gegaan, aangesien die motor 'n paar meter van my (en my seun) se kop af sal wees terwyl ons slaap. Ek het oorspronklik net 'n TMC2209 -bestuurder vir ~ $ 10 gekoop, maar uiteindelik 'n pak van 4 gekoop omdat ek eers probleme ondervind het en wou seker maak dat ek nie die bord op 'n stadium gebraai het nie. Ek het uiteindelik 3 borde vermoor, wat my by my volgende item bring … Kondensators! ($ 10) U benodig eintlik slegs 1 47 uF 50V -kondensator, dus hierdie boks met 240 was te veel. 'N 36V -kragtoevoer ($ 17) Ek het oorspronklik 'n swak 12V -toevoer gekoop, en toe agterkom dat dit die bron was van al my probleme en ek kry een wat nader was aan die maksimum spanning wat my stappermotor kon hanteer. As u 'n ander motor of stepper -aandrywer gebruik, moet u seker maak dat dit die spanning (V) kan hanteer en dat die stroom (A) van die toevoer minstens so hoog is as die piekversterkers wat deur die motor getrek word. $ 8) Hiermee sluit die kragtoevoer in. U moet dit aan 'n paar drade soldeer om in u broodbord te steek. 'N Groot pak springers ($ 9) sodat ek die bedieningselemente in die kamer kan plaas waar ek wil.

Knoppies ($ 8) vir aan/af, ens

'N Mikrofoonversterker ($ 11) O, weet u nie dat dit ook klank geaktiveer is nie?

'N Paar klein katrolwiele ($ 8) het ek uiteindelik gebruik, maar daar is moontlik beter alternatiewe. Meer hieroor later. U benodig beslis ook 'n soldeerbout en alles wat u wil gebruik om die motor te monteer. Ek het persoonlik net 'n ruwe boks gemaak van 4 stukke hout wat aanmekaar geskroef is, en dit dan vasgemaak aan 'n ander stuk hout wat ongeveer die breedte van my wiegpoot is. Ek het dit nou net vasgeklem, want ek weet nie of ek my oom se wieg wil bederf nie.

Stap 1: Raak vertroud met u pinout -bestuurder se pinout

Dra Arduino 5V/GND na u broodbord
Dra Arduino 5V/GND na u broodbord

Die modelprogram wat ek gebruik het, het nie die presiese bestuurdersbord gehad nie, dus moet u na hierdie prent verwys. Ek het alles in dieselfde oriëntasie as hierdie prent gerangskik.

Stap 2: Dra Arduino 5V/GND na u broodbord

Koppel 'n draad van die Arduino 5V aan die "+" -rail aan die een kant van u broodbord Koppel 'n draad van een van die Arduino GND's aan die "-" -rail aan dieselfde kant van die broodbord

(ignoreer die

Stap 3: Koppel die +/- Rails aan VIO/GND

Koppel die +/- Rails aan VIO/GND
Koppel die +/- Rails aan VIO/GND

Sluit 'n draad van die "-" -rail aan op GND links onder op die stepper-bestuurbord. Koppel 'n draad van die "+" -rail aan VIO

Stap 4: Koppel DIR/STEP aan op Digital Pins op die Arduino

Koppel DIR/STEP aan op Digital Pins op die Arduino
Koppel DIR/STEP aan op Digital Pins op die Arduino

Koppel die DIR- en STEP -penne van die stepper driver board aan twee van die digitale penne op die Arduino. Ek het onderskeidelik penne 2 en 3 gebruik, maar dit maak nie saak solank u die penne later in u kode sit nie.

Stap 5: Laat ons vorentoe gaan en voeg die kondensator by …

Laat ons vorentoe gaan en die kondensator byvoeg …
Laat ons vorentoe gaan en die kondensator byvoeg …

Ek het 2 stepper -bestuurdersborde uitgebrand omdat ek nie 'n kapasitor gehad het nie, dus laat ons die 47uF 50V -kondensator by die VM/GND -penne op die bestuurbord voeg. Maak seker dat die "-" pen op die kapasitor in die GND-pen op die broodbord is (daar sal 'n "-" aan die ooreenstemmende kant van die kapasitor wees)

Stap 6: Gaan vorentoe en verbind die GND

En gaan vooruit en verbind die GND
En gaan vooruit en verbind die GND

Op die GND waaraan u die kapasitor pas gevoeg het, moet u dit aan dieselfde "-" spoor koppel as die ander GND.

Stap 7: Koppel die motor aan die bestuurder

Koppel die motor aan die bestuurder
Koppel die motor aan die bestuurder

Watter pen gaan, hang af van die motor wat u gekoop het, maar die een wat ek gelys het, het die bedradingsdiagram op die Amazon -lys.

Vir my motor -

Koppel Green & Black aan M2B & M2A

Koppel Rooi en Blou aan M1A & M1B Let wel: As u motor om watter rede ook al nie 'n diagram het nie, kan u maklik agterkom watter drade 'n stroombaan vorm as u 'n multimeter het. Stel u multimeter op 'n lae amp -instelling en laat u motor ontkoppel. Raak een van die multimeterdrade na een van die motordrade, en probeer dan die ander drade met die ander draad. As u 'n weerstandslesing kry, vorm die twee drade 1 kring, en die ander twee vorm die ander.

Stap 8: Koppel EN, MS1 en MS2 aan "-"

Koppel EN, MS1 en MS2 aan
Koppel EN, MS1 en MS2 aan

Ek is nie heeltemal seker of dit nodig is nie, maar ek glo dat dit die motor op 'n kleiner mikrostap -instelling van die TMC2209 -bestuurder stel. U kan hulle verbind met die spoor "-" wat die naaste aan hulle is, aangesien ons dit later aan die ander kant sal koppel.

Stap 9: Soldeer 'n vroulike kragaansluiting aan twee drade

Soldeer 'n vroulike kragaansluiting aan twee drade
Soldeer 'n vroulike kragaansluiting aan twee drade

Ek is nie die beste in die wêreld om te soldeer nie, so jy sal elders daarvoor moet soek, maar ek het myne so gedoen. Ek buig die punte van die drade sodat hulle plat teen die aansluitkabels lê, en soldeer die draad aan die draad. Ek het geen krimpvarkies gehad nie, so ek het dit geweldig met elektriese band toegedraai.

Stap 10: Koppel u nuut gesoldeerde vroulike aansluiting

Koppel u nuut gesoldeerde vroulike aansluiting
Koppel u nuut gesoldeerde vroulike aansluiting

Moet asseblief nog nie u werklike kragbron aansluit nie. Rooi draad na "+", swart na "-"

Stap 11: Koppel die aan VM/GND

Koppel die aan VM/GND
Koppel die aan VM/GND

Koppel die "+" en "-" relings aan VM en die GND daarby. Die met die kapasitor daarop.

Stap 12: Bewonder u handwerk

Bewonder u handewerk
Bewonder u handewerk

Goed, jy het nou die motor en die bestuurder heeltemal opgestel! Van hier af sal ons net kontrole doen. Terloops, vorentoe:

  • As u u bestuurder om een of ander rede ontkoppel het, moenie probeer om dit aan te sluit terwyl u 36V -krag ingeskakel is nie. Ek het my derde bestuurdersbord so doodgemaak.
  • Sluit die 36V -krag aan voordat u die Arduino -krag aansluit. Ek het nie persoonlik 'n Arduino gebraai nie, maar langs die pad het ek baie waarskuwings hieroor gesien.

Stap 13: opsioneel - kyk na u VREF

Die TMC2209 het 'n potensiometer wat die stroom na die motor beheer. As u dieselfde bestuurder as ek het, kan u dit hier lees. As u die instelling wil aanpas:

  • Ontkoppel alle krag en ontkoppel die motordrade van die bestuurder.
  • Ontkoppel die draad na die EN (aktiveer) pen op die bestuurder. Dit is die pen in die linker boonste hoek.
  • Koppel u motor se kragtoevoer (die 36V) aan
  • Raak 'n multimeter op 20V aan die een kabel na 'n bron van GND (ek gebruik 'n draadverbinding met my "-" rail) en raak die ander kabel aan die VREF-pen. Moet asseblief nie die lood aan iets anders raak nie; u kan u bestuurder kort as u dit doen.
  • Gebruik 'n klein skroewedraaier om die potensiometerskroef liggies aan te pas. Vir my bord, linksom = meer krag. My VREF lees persoonlik ~ 0.6V.

Stap 14: Knoppies

Knoppies!
Knoppies!

Koppel dan u knoppies so. Hulle het nie krag nodig nie.

  • Koppel 'n "-" spoor van u knoppiebord aan een van die GND's van die Arduino. U kan dit ook net van die ander broodbord se "-" reling afskakel as u wil.
  • Koppel een pen van elke knoppie aan die "-" reling
  • Koppel nog 'n pen van elke knoppie aan 'n digitale pen op die Arduino.

Ek het 4 knoppies gebruik: Motor aan/af

Motor gaan voort

Mikrofoon aan

Mikrofoon af

Meer hieroor as ons by die kode kom, maar ek het verskillende mikrofoonknoppies gebruik bloot omdat ek nie LED's gehad het om my te laat weet of die mikrofoon aan of af was nie, sodat die afsonderlike aan/uit -knoppies dit onfeilbaar gemaak het.

Stap 15: Voeg die mikrofoonbord by

Voeg die mikrofoonbord by
Voeg die mikrofoonbord by

Hierdie een is eenvoudig, en Adafruit het hier goeie instruksies (en soldeerbasis!).

  • Koppel "-" aan 'n GND
  • Koppel GND op die mikrofoonbord aan "-" (u kan GND direk aan GND koppel en die vorige stap regtig oorslaan)
  • Koppel VCC aan op die 3.3V -krag op die Arduino. Dit is belangrik, aangesien hierdie kragtoevoer minder "raserig" is as die 5V, wat beter mikrofoonlesings tot gevolg het
  • Koppel OUT aan op 'n ANALOG IN -pen op die Arduino. Ek het A0 gebruik.

Stap 16: Dit behoort die finale uitslag te wees

Dit behoort die finale uitslag te wees!
Dit behoort die finale uitslag te wees!
Dit behoort die finale uitslag te wees!
Dit behoort die finale uitslag te wees!

Alles moet nou gereed wees. Hier is 'n prentjie van die finale diagram en my warboel drade in werklikheid. Kom ons kyk na die kode!

Stap 17: Kodeer

Ok, kyk na die kode! Dit is nie my skoonste werk nie, maar dit word gedoen. Ek het opmerkings bygevoeg om alles hier te verduidelik, maar ek moet my vergeet: ek het Arduino IDE hiervoor gebruik (gratis beskikbaar op Windows en Mac).

Stel 'n aantal rotse (swaaie) om te doen.

Draai die ingestelde afstand vir 1 swaai. Swaai 'n vaste aantal kere.

Let op die druk van die knoppie of luister na die mikrofoon om te sien of die motor moet aanskakel. Hoe vinniger die motor gaan, hoe harder word dit en hoe minder wringkrag kry jy. Myne is tans amper stil, so dit is moontlik om dit te laat werk sonder om baie geluid te maak.

#sluit // 'standaard' stapmotorbiblioteek in

//#definieer DEBUG 1 // kommentaar lewer hierop as u die mikrofoonvlakke wil aanpas // Knoppie -opstelling - dit stem ooreen met waar die digitale penne wat u aan die knoppies gekoppel het const int motorEnablePin = 10; const int continuePin = 11; const int micDisablePin = 12; const int micEnablePin = 13; // Mikrofoonopstelling - A0 hier is die analoog in vir die mikrofoon. Voorbeeldvenster is in millis const int micPin = A0; const int sampleWindow = 1000; ongetekende int monster; bool micEnabled = vals; dubbele mikrogevoeligheid = 0,53; // jy sal dit waarskynlik moet verander // Vir my was ongeveer.5 goed genoeg om nie op klein krulvure te skiet nie // maar vir klein krete int stepsPerRevolution = 3200; // verander dit om by die aantal stappe per omwenteling vir jou motor te pas // My motor is 200 treë/omwenteling // Maar ek stel die bestuurder op 1/16 mikrostappe // dus 200*16 = 3200 … eerlikwaar geen idee of dit is die regte manier // om hierdie Stepper myStepper (stepsPerRevolution, 2, 3) te doen; // 2 & 3 is die DIR & STEP -penne int stepCount = 0; int motorSpeed = 95; // jy moet dit aanpas volgens jou wieg en baba se gewig int numSteps = 90; // Die afstand wat die motor sal beweeg. // U moet dit aanpas op grond van die radius van die wiel wat u aan u motor koppel. Dit en spoed sal waarskynlik proef en fout wees. // Let wel - hoër spoed op stapmotors = laer effektiewe wringkrag // As u nie genoeg wringkrag het nie, sal u motor stappe oorskakel (nie beweeg nie) int oldmotorButtonValue = HIGH; bool geaktiveer = vals; // motor aangeskakel? int loopStartValue = 0; int maxRocks = 100; // hoeveel keer jy wil hê dat dit moet rock voordat int rockCount = 0; ongeldige opstelling () {#ifdef DEBUG Serial.begin (9600); // vir die opsporing van ontfouting #endif pinMode (motorEnablePin, INPUT_PULLUP); // Dit is 'n instelling vir die knoppies om sonder krag pinMode te werk (continuePin, INPUT_PULLUP); pinMode (micEnablePin, INPUT_PULLUP); pinMode (micDisablePin, INPUT_PULLUP); myStepper.setSpeed (motorSpeed); // stel die motorsnelheid in op wat u vroeër gespesifiseer het} void lus () {int motorButtonValue = digitalRead (motorEnablePin); // digitalRead lees net knoppiewaardes int continueValue = digitalRead (continuePin); // Dit ontdek die druk op die motorknoppie en voorkom dat dit meer as een keer per klik afvuur as (motorButtonValue == HIGH && oldmotorButtonValue == LOW) {enabled =! Enabled; } micCheck (); // As die motor af is en die mikrofoon aan is, luister na baba huil as (! Enabled && micEnabled) {if (getMicReading ()> = micSensitivity) enabled = true; } as (geaktiveer) {stepsPerRevolution = stepsPerRevolution * -1; // omgekeerde rigting // Met my opstelling is dit meer effektief om om te keer // die eerste swaai. U kan dit agter die lus plaas // as dit nie die geval is met uwe nie /draai motor die afstand hierbo gespesifiseer vir (int i = loopStartValue; i <numSteps; i ++) {// kyk of int tempmotorButtonValue = digitalRead (motorEnablePin); as (tempmotorButtonValue! = motorButtonValue) {rockCount = 0; // Hierdie volgende twee reëls "stoor" die motorposisie, sodat die volgende keer dat u dit aanskakel // dit sal voortgaan asof u dit nie afgeskakel het nie. Dit voorkom dat u wegstoot // u bewegingsafstande loopStartValue = i; // stoor posisie stepsPerRevolution = stepsPerRevolution * -1; // handhaaf rigting oldmotorButtonValue = tempmotorButtonValue; breek; } checkContinue (continueValue); // kyk of die knoppie voortgaan ingedruk is micCheck (); myStepper.step (stepsPerRevolution / 50); // hoeveel stappe om te neem per lus, // jy moet dit dalk aanpas // maak seker dat ons die volle lusafstand voortgaan as die lus klaar is // dit speel in as jy self die motor afgeskakel het en dit die "gered" het posisie as (i == numSteps - 1) {loopStartValue = 0; }}} vertraging (100); // hou 100 millis stil voordat jy die volgende rock doen. U moet dit aanpas. as (geaktiveer) checkComplete (); oldmotorButtonValue = motorButtonValue; // dit word gebruik om dubbele klik te voorkom} // Hierdie kode is direk vanaf Adafruit. double getMicReading () {unsigned long startMillis = millis (); ongetekende int peakToPeak = 0; // piek-tot-piek vlak ongetekende int signalMax = 0; ongetekende int signalMin = 1024; terwyl (millis () - startMillis <sampleWindow) {micCheck (); as (digitalRead (motorEnablePin) == LOW) geaktiveer = waar; sample = analogRead (micPin); as (monster signalMax) {signalMax = monster; // stoor net die maksimum vlakke} anders as (voorbeeld = maxRocks) {enabled = false; rockCount = 0; // keer terug na die middelste positie

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

myStepper.step (stepsPerRevolution * -1 / 50); // stap 1/100 van 'n omwenteling:

}

} }

Stap 18: Montering en wielopstelling

Montering en wielopstelling
Montering en wielopstelling

Dit is nog steeds 'n WIP vir my, want soos ek gesê het, is ek nie seker of ek nog skroewe in my wieg wil steek nie. Die manier waarop ek myne opgerig het, is soos volg:

  • Sit 'n klem vas om op te tree as 'n arm wat uit die wieg kom sodat my wiel in 'n reguit lyn kan trek
  • Skroef 'n ru -boks saam om die motor in te sit, en skroef dit vas aan 'n basisplaat wat ek aan die wiegbeen vasgeklem het
  • Het 'n pasgemaakte hout katrolwiel gemaak met 'n gat om die klein stepper katrolwiel binne te pas. Ek het die middelste gat baie styf gemaak en net in die stepper katrolwiel geslinger. Ek het 'n gat deur die wiel tot in die middel geboor, sodat ek toegang tot die skroef van die metaal katrolwiel kon kry om dit op die stapmotor vas te trek.
  • Ry 'n tou van die wieg "arm" na die wiel. Ek het die tou vasgemaak deur dit deur die gat wat ek geboor het, te laat loop en dit net vas te plak.

Die beter oplossing vir die derde stap is om eers 'n katrol met 'n groter deursnee te koop. Myne is 'n bietjie onder 3 in deursnee in die groef en werk baie goed vir my spesifieke wieg.

My eerste weergawe het 'n arm in plaas van 'n wiel gebruik. Dit werk nie naastenby so goed nie, want die krag word nie in 'n konsekwente rigting toegepas nie, en dit was ook baie vatbaar om weggegooi te word as die beginposisie nie korrek was nie. Die gebruik van 'n wiel los die probleme op. Ek het ook vermaak met 'n klein katrolstelsel, maar ek hoef dit nie te doen nie, want my wiel gee my genoeg wringkrag.

Stap 19: Finale opstelling

Finale opstelling
Finale opstelling

Monteer die mikrofoon naby u kind, maar op 'n plek waar hulle geen drade sal tref nie. Plaas die knoppies waar u wil, solank u genoeg drade het om na die eindbestemming te loop. U kan ook die knoppies vervang met 'n wifi -opstelling op die arduino, maar ek het nog nie so diep ingegaan nie. Sterkte daar buite!

Aanbeveel: