Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Gjør deg kjent med Stepper Driver Pinout
- Trinn 2: Koble Arduino 5V/GND til brødbrettet
- Trinn 3: Koble +/- skinnene til VIO/GND
- Trinn 4: Koble DIR/STEP til Digital Pins på Arduino
- Trinn 5: La oss gå foran og legge til kondensatoren …
- Trinn 6: Og gå fremover og koble til GND
- Trinn 7: Koble motoren til driveren
- Trinn 8: Koble EN, MS1 og MS2 til "-"
- Trinn 9: Lodd en kvinnelig strømkontakt til to ledninger
- Trinn 10: Koble til den nylig loddede hunnkontakten
- Trinn 11: Koble dem til VM/GND
- Trinn 12: Beundre håndverket ditt
- Trinn 13: Valgfritt - Sjekk VREF
- Trinn 14: Knapper
- Trinn 15: Legg til mikrofonkortet
- Trinn 16: Dette burde være det endelige resultatet
- Trinn 17: Kode
- Trinn 18: Montering og hjuloppsett
- Trinn 19: Sluttoppsett
Video: Arduino Cradle Rocker: 19 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Beklager, jeg kunne ikke motstå den krevende intense musikken min videoredigerings ting foreslo.
Jeg hadde nylig mitt første barn og hadde allerede en trevugge som onkelen min (som er en fantastisk trearbeider) laget til nevøen min. Min nevø hadde lenge vokst opp av det, så jeg tok det gjerne og unngikk å bruke ALLE PENGENE på hvilken vugge/bassin som mammabloggerne fikk min kone til å svømme over. Vuggen er en ganske enkel design, i utgangspunktet to stendere med bolter gjennom dem som støtter vuggehuset. Det er en flyttbar pinne for å låse den på plass.
I løpet av noen uker fant vi ut at vi ofte kunne dempe lett mas ved å vugge vuggen litt til gutten vår slo seg ned. Den kvelden vi fant dette ut tilbrakte jeg noen ti minutter lange strekninger sent på kvelden med armen min nede under dekslene, søvnig vugget ham, glad for at jeg hadde funnet en måte å berolige ham på uten å stå ut av sengen selv. morgen festet jeg en snor og en liten karabinkrok slik at jeg kunne vugge vuggen uten å måtte strekke armen ut.
Morgenen etter begynte jeg å brainstorme en måte å bare få en robot til å rocke denne gutten for meg. Skriv inn Arduino …
Rekvisita
Ok, dette var mitt første Arduino -prosjekt noensinne, så jeg eksperimenterte og prøvde og feiler, og jeg er sikker på at det er rom for forbedring i designet mitt, men her er min deleliste: Arduino Uno ($ 13) for å kontrollere alt Et brødbrett sett ($ 10) for tilkobling av ledninger
Stepper motor ($ 14) Dette er det morsomste stykket, fordi det er tingen som gjør alt arbeidet. Jeg begynte med en litt lavere dreiemoment driver, men så fikk jeg denne og den fungerer ganske bra. Få en enda kraftigere en. Stepper motor drivers ($ 10-30) Denne sitter mellom Arduino og motoren. Denne spesifikke er tydeligvis i stand til å kjøre motoren mer stille enn noen andre, så jeg gikk med det siden motoren kommer til å være noen få meter fra hodet (og sønnen min) mens vi sover. Jeg kjøpte opprinnelig bare en TMC2209 -driver for ~ $ 10, men endte med å kjøpe en pakke med 4 fordi jeg hadde problemer med det først og ville sørge for at jeg ikke hadde stekt brettet på et tidspunkt. Jeg endte opp med å faktisk drepe 3 brett, noe som bringer meg til mitt neste element … Kondensatorer! ($ 10) Du trenger egentlig bare 1 47 uF 50V kondensator, så denne boksen med 240 var for mye. En 36V strømforsyning ($ 17) Jeg kjøpte opprinnelig en dårlig 12V forsyning, og fant ut at det var kilden til alle problemene mine og fikk en som var nærmere maks spenning som steppermotoren min kunne håndtere. Hvis du bruker en annen motor eller trinndriver, må du kontrollere at den kan håndtere spenningen (V) og at strømstyrken (A) på forsyningen er minst like høy som toppforsterkerne trukket av motoren. $ 8) Dette er hva strømforsyningen kobles til. Du må lodde disse til noen ledninger for å stikke inn i brødbrettet. En stor pakke hoppere ($ 9) slik at jeg kunne sette kontrollene hvor jeg ville i rommet.
Knapper ($ 8) for av/på, etc.
En mikrofonforsterker ($ 11) Åh, visste du ikke at dette var lydaktivert også?
Noen små remskiver ($ 8) jeg endte opp med å bruke disse, men det kan være bedre alternativer. Mer om det senere. Du trenger definitivt et loddejern og hva du vil bruke til å montere motoren. Jeg personlig laget bare en grov eske av 4 skrudd sammen trebiter, og skrudde dem deretter til et annet treverk som er omtrent bredden på vuggebenet mitt. Foreløpig har jeg bare klemt den fast fordi jeg ikke vet om jeg vil ødelegge min onkels vugge.
Trinn 1: Gjør deg kjent med Stepper Driver Pinout
Modellprogrammet jeg brukte hadde ikke akkurat dette driverkortet, så du må referere til dette bildet. Jeg har ordnet alt i samme retning som dette bildet.
Trinn 2: Koble Arduino 5V/GND til brødbrettet
Koble en ledning fra Arduino 5V til "+" skinnen på den ene siden av brødbrettet Koble en ledning fra en av Arduino GND til "-" skinnen på samme side av brødbrettet
(ignorer
Trinn 3: Koble +/- skinnene til VIO/GND
Koble en ledning fra "-" skinnen til GND nederst til venstre på trinnbrettet. Koble en ledning fra "+" skinnen til VIO
Trinn 4: Koble DIR/STEP til Digital Pins på Arduino
Koble DIR- og STEP -pinnene fra trinndriverkortet til to av de digitale pinnene på Arduino. Jeg brukte henholdsvis pinne 2 og 3, men det spiller ingen rolle så lenge du setter pinnene i koden senere.
Trinn 5: La oss gå foran og legge til kondensatoren …
Jeg brente ut 2 trinndriverkort fordi jeg ikke hadde en kondensator på plass, så la oss fortsette og legge til 47uF 50V kondensatoren i VM/GND -pinnene på driverkortet. Sørg for at "-" pinnen på kondensatoren er i GND-pinnen på brødbrettet (det vil være en "-" på den tilsvarende siden av kondensatoren)
Trinn 6: Og gå fremover og koble til GND
På GND som du nettopp la kondensatoren til, fortsett og koble den til den samme "-" skinnen som den andre GND.
Trinn 7: Koble motoren til driveren
Hvilken pinne som går, vil avhenge av motoren du kjøpte, men den jeg har oppført har koblingsskjemaet på Amazon -listen.
For min motor -
Koble grønt og svart til M2B og M2A
Koble rød og blå til M1A og M1B Merk: Hvis motoren din av en eller annen grunn ikke har et diagram, kan du enkelt finne ut hvilke ledninger som danner en krets hvis du har et multimeter. Sett multimeteret til en lav forsterkerinnstilling og koble fra motoren. Berør en av multimeterledningene til en av motortrådene, og prøv deretter hver av de andre ledningene med den andre ledningen. Hvis du får en motstandsavlesning, danner de to ledningene en krets, og de to andre danner den andre.
Trinn 8: Koble EN, MS1 og MS2 til "-"
Jeg er ikke helt sikker på at dette er nødvendig, men jeg tror at det setter motoren til en mindre microstep -innstilling på TMC2209 -driveren. Du kan koble dem til skinnen "-" nærmest dem, ettersom vi vil koble den til den andre siden senere.
Trinn 9: Lodd en kvinnelig strømkontakt til to ledninger
Jeg er ikke verdens beste på lodding, så du må lete andre steder etter det, men jeg gjorde min slik. Jeg bøyde endene på ledningene slik at de lå flatt mot kontaktledningene, og loddet deretter ledningen til ledningen. Jeg hadde ikke noe krympevarer for ledninger, så jeg pakket dem inn fantastisk med elektrisk tape.
Trinn 10: Koble til den nylig loddede hunnkontakten
Ikke koble til den faktiske strømforsyningen ennå. Rød ledning til "+", svart til "-"
Trinn 11: Koble dem til VM/GND
Koble disse "+" og "-" skinnene til VM og GND ved siden av. De med kondensatoren på.
Trinn 12: Beundre håndverket ditt
OK, nå har du motoren og sjåføren helt satt opp! Fra nå av skal vi bare gjøre kontroller. Forresten, fremover:
- Hvis du har koblet fra driveren din av en eller annen grunn, ikke prøv å koble den til mens 36V -strømmen er tilkoblet. Jeg drepte mitt tredje førerkort på den måten.
- Koble til 36V -strømmen før du kobler til Arduino -strømmen. Jeg stekte ikke personlig en Arduino, men underveis så jeg mange advarsler om dette.
Trinn 13: Valgfritt - Sjekk VREF
TMC2209 har et potensiometer som styrer strømmen til motoren. Hvis du har samme driver som meg, kan du lese om det her. Hvis du vil justere innstillingen:
- Koble fra all strøm og koble motortrådene fra driveren.
- Koble ledningen til EN -knappen (aktiver) på driveren. Dette er pinnen øverst i venstre hjørne.
- Koble til motorens strømforsyning (36V)
- Ved å bruke et multimeter satt på 20V, berører du den ene ledningen til en kilde til GND (jeg brukte en kabel til min "-" skinne) og berører den andre ledningen til VREF-pinnen. Ikke berør ledningen til noe annet, du kan kortføre sjåføren hvis du gjør det.
- Bruk en liten skrutrekker til å justere potensiometerskruen forsiktig. For brettet mitt, mot klokken = mer kraft. Min VREF leser personlig ~ 0,6V.
Trinn 14: Knapper
Deretter kobler du knappene dine slik. De trenger ikke strøm.
- Koble en "-" skinne på knappebrødbrettet til en av GND-ene til Arduino. Du kan også bare koble den av det andre brødbrettets "-" skinne hvis du vil.
- Koble en pinne på hver knapp til "-" skinnen
- Koble en annen pinne på hver knapp til en digital pinne på Arduino.
Jeg brukte 4 knapper: Motor på/av
Motoren fortsetter
Mikrofon på
Mikrofonen er slått av
Mer om disse når vi kommer til koden, men jeg brukte forskjellige mikrofonknapper rett og slett fordi jeg ikke hadde LED -er for å gi meg beskjed om mikrofonen var på eller av, så det å ha forskjellige på/av -knapper gjorde den idiotsikker.
Trinn 15: Legg til mikrofonkortet
Denne er enkel, og Adafruit har gode instruksjoner (og grunnleggende for lodding!) Her.
- Koble "-" til en GND
- Koble GND på mikrofonkortet til "-" (du kan direkte koble GND til GND og hoppe over forrige trinn, virkelig)
- Koble VCC til 3,3V strøm på Arduino. Dette er viktig ettersom denne strømforsyningen er mindre "bråkete" enn 5V, noe som resulterer i bedre mikrofonavlesninger
- Koble OUT til en ANALOG IN -pinne på Arduino. Jeg brukte A0.
Trinn 16: Dette burde være det endelige resultatet
Alt skal være klart nå. Her er et bilde av det endelige diagrammet og mitt virvar av ledninger i virkeligheten. La oss se på noen kode!
Trinn 17: Kode
Ok, la oss se på koden! Dette er ikke mitt reneste arbeid, men det får jobben gjort. Jeg har lagt til kommentarer for å forklare alt her, men vær med meg. Jeg brukte Arduino IDE for alt dette (tilgjengelig på Windows og Mac gratis) Jist er dette: Still inn en motorhastighet og avstand som skal svinges.
Sett et antall steiner (husker) å gjøre.
Vri innstilt avstand for 1 sving. Sving et bestemt antall ganger.
Mellom alt dette, se etter knappetrykk eller lytt til mikrofonen for å se om motoren skal slås på. Du må justere hastighet, avstand og mikrofonfølsomhetsverdier. Motorhastighet vil påvirke volum og dreiemoment. Jo raskere motoren går, jo høyere er den og jo mindre dreiemoment får du. Min er for øyeblikket nesten stille, så det er mulig å få den til å kjøre uten å lage mye lyd.
#include // "standard" stepper motorbibliotek
//#definer DEBUG 1 // kommenter dette når du vil justere mikrofonnivåene // Knappoppsett - disse tilsvarer der de digitale pinnene du koblet til knappene const int motorEnablePin = 10; const int continuePin = 11; const int micDisablePin = 12; const int micEnablePin = 13; // Mikrofonoppsett - A0 her er analog -inn for mikrofonen. Eksempelvindu er i millis const int micPin = A0; const int sampleWindow = 1000; usignert int prøve; bool micEnabled = false; dobbel mikrofølsomhet = 0,53; // du må sannsynligvis endre dette // For meg var rundt.5 bra nok til å ikke skyte på små slynger // men vil fyre for små gråt int stepsPerRevolution = 3200; // endre dette for å passe til antall trinn per omdreining for motoren din // Min motor er 200 trinn/omdreining // Men jeg satte driveren til 1/16 mikrotrinn // så 200*16 = 3200 … ærlig talt aner ikke om dette er den riktige måten // for å gjøre dette Stepper myStepper (stepsPerRevolution, 2, 3); // 2 & 3 er DIR & STEP -pinnene int stepCount = 0; int motorSpeed = 95; // du må justere dette i henhold til vuggen og babyens vekt int numSteps = 90; // Avstanden motoren vil bevege seg. // Du må justere dette basert på radiusen på hjulet du fester // til motoren din. Dette og hastigheten vil sannsynligvis være prøving og feiling. // Merk - høyere hastighet på trinnmotorer = lavere effektivt dreiemoment // Hvis du ikke har nok dreiemoment, hopper motoren over trinn (ikke beveger seg) int oldmotorButtonValue = HIGH; bool aktivert = false; // motor aktivert? int loopStartValue = 0; int maxRocks = 100; // hvor mange ganger du vil at den skal rocke før du slår av int rockCount = 0; ugyldig oppsett () {#ifdef DEBUG Serial.begin (9600); // for feilsøkingslogging #endif pinMode (motorEnablePin, INPUT_PULLUP); // Dette er en innstilling for at knappene skal fungere uten strøm pinMode (continuePin, INPUT_PULLUP); pinMode (micEnablePin, INPUT_PULLUP); pinMode (micDisablePin, INPUT_PULLUP); myStepper.setSpeed (motorSpeed); // setter motorhastigheten til det du spesifiserte tidligere} void loop () {int motorButtonValue = digitalRead (motorEnablePin); // digitalRead leser bare knappverdier int continueValue = digitalRead (continuePin); // Dette oppdager motorknappetrykket og forhindrer at det skyter mer enn én gang per klikk hvis (motorButtonValue == HIGH && oldmotorButtonValue == LOW) {enabled =! Enabled; } micCheck (); // Hvis motoren er slått av og mikrofonen er på, kan du lytte etter babygråt hvis (! Aktivert && micEnabled) {if (getMicReading ()> = micSensitivity) enabled = true; } hvis (aktivert) {stepsPerRevolution = stepsPerRevolution * -1; // omvendt retning // Med mitt oppsett er det mer effektivt å reversere // den første svingen. Du kan sette dette etter sløyfen // hvis det ikke er tilfellet for din // spinnmotor avstanden angitt ovenfor for (int i = loopStartValue; i <numSteps; i ++) {// sjekk for slå av int tempmotorButtonValue = digitalRead (motorEnablePin); if (tempmotorButtonValue! = motorButtonValue) {rockCount = 0; // Disse to linjene "lagrer" motorposisjonen, slik at neste gang du slår den på // fortsetter den å reise som om du ikke hadde slått den av. Dette forhindrer at du kaster av // bevegelsesavstandene loopStartValue = i; // lagre posisjon stepsPerRevolution = stepsPerRevolution * -1; // opprettholde retningen oldmotorButtonValue = tempmotorButtonValue; gå i stykker; } checkContinue (continueValue); // sjekk om det ble trykket på fortsett -knappen micCheck (); myStepper.step (stepsPerRevolution / 50); // hvor mange trinn du skal ta per sløyfe, // du må kanskje justere dette // sørg for at vi fortsetter hele sløyfedistansen hvis sløyfen er ferdig // dette spiller inn hvis du slår av motoren selv og det "reddet" posisjon hvis (i == numSteps - 1) {loopStartValue = 0; }}} forsinkelse (100); // pause 100 millis før du gjør neste stein. Du må justere dette. hvis (aktivert) checkComplete (); oldmotorButtonValue = motorButtonValue; // denne brukes for å forhindre dobbeltklikk} // Denne koden er direkte fra Adafruit. double getMicReading () {unsigned long startMillis = millis (); usignert int peakToPeak = 0; // topp-til-topp-nivå usignert int signalMax = 0; usignert int signalMin = 1024; while (millis () - startMillis <sampleWindow) {micCheck (); hvis (digitalRead (motorEnablePin) == LOW) aktivert = true; sample = analogRead (micPin); if (sample signalMax) {signalMax = sample; // lagre bare maksnivåene} else if (sample
for (int i = loopStartValue; i <numSteps/2; i ++) {
myStepper.step (stepsPerRevolution * -1 / 50); // trinn 1/100 av en revolusjon:
}
} }
Trinn 18: Montering og hjuloppsett
Dette er fortsatt en WIP for meg, for som sagt er jeg ikke sikker på om jeg vil sette skruer i vuggen min ennå. Måten jeg rigget min på er som følger:
- Sett en klemme for å fungere som en arm som kommer av holderen slik at hjulet mitt kan trekke i en rett linje
- Skruet sammen en råboks for å sette motoren i, og skrudde den til en bunnplate, som jeg klemte fast i holderen
- Laget et tilpasset trinsehjul med hull for å passe til det lille trinnhjulhjulet inni. Jeg gjorde senterhullet veldig tett og bare malet i trinntrinshjulet. Jeg boret et hull gjennom hjulet til midten slik at jeg kunne få tilgang til skruen på metallhjulet for å stramme det på trinnmotoren.
- Kjørte en snor fra vuggen "armen" til hjulet. Jeg sikret snoren ved å kjøre den gjennom hullet jeg hadde boret og bare teipe den på plass.
Den bedre løsningen på det tredje trinnet er å bare kjøpe et hjul med større diameter i utgangspunktet. Min er litt under 3 i diameter inne i sporet og fungerer veldig bra for akkurat min vugge.
Min første versjon brukte en arm i stedet for et hjul. Det fungerte ikke like godt fordi kraften ikke ble påført i en konsekvent retning, og det var også veldig utsatt for å bli kastet hvis startposisjonen ikke var riktig. Å bruke et hjul løser disse problemene. Jeg underholdt også med et lite trinsesystem, men det endte med at jeg ikke trengte det fordi hjulet mitt ga meg nok dreiemoment.
Trinn 19: Sluttoppsett
Monter mikrofonen nær barnet ditt, men på et sted der de ikke kommer til å treffe noen ledninger. Sett knappene hvor du vil, så lenge du har nok ledninger til å løpe til sluttdestinasjonen. Du kan også bare bytte ut knappene med et wifi -oppsett på arduinoen, men jeg har ikke gått så dypt ennå. Lykke til der ute!
Anbefalt:
LED Rocker Game: 7 trinn (med bilder)
LED Rocker Game: LED Rocker Game er et enkelt Arduino -spill. Den består hovedsakelig av 9 lysdioder (8 blå lysdioder og 1 rød LED i midten), 1 knapp, 1 høyttaler og 1 LCD -panel. Målet med dette spillet er å trykke på knappen når den røde LED -en blinker. Det starter med 9 lysdioder som blinker
Arduino Rocker Game: 4 trinn
Arduino Rocker Game: Dette er et Arduino -spill, det er 11 LED -lys, LED -lysene vil skinne i et mønster. Når den midterste LED -lampen lyser, trykker du på knappen. Du har tre liv, hver gang du trykker på knappen når lyset ikke er i midten mister du et liv. Etter
Slik demonterer du en datamaskin med enkle trinn og bilder: 13 trinn (med bilder)
Slik demonterer du en datamaskin med enkle trinn og bilder: Dette er en instruksjon om hvordan du demonterer en PC. De fleste grunnkomponentene er modulære og fjernes lett. Det er imidlertid viktig at du er organisert om det. Dette vil bidra til å hindre deg i å miste deler, og også i å gjøre monteringen igjen
Arduino LED Rocker Game !: 4 trinn (med bilder)
Arduino LED Rocker Game !: Dette er et enkelt arduino -spill, ganske enkelt, men vanvittig vanedannende. Det er basert på blink uten forsinkelseseksempel på Arduino -nettstedet. For å spille, bare åpne den serielle skjermen, og trykk på knappen når den midterste LED -lampen slås på. Du får tre liv
Crystal Clear Cradle for 3rd Gen Ipod Touch: 6 trinn
Crystal Clear Cradle for 3. generasjon iPod Touch: Din nye 3. gen iTouch vil se ut som om den flyter fra abboren på denne krystallklare holderen. Du trenger ikke å kjøpe noe for å gjøre det hvis du har enkle verktøy hendig. Dette er et enkelt prosjekt. (Hvis du klikker etter hverandre på serien med