Cuprins:
- Provizii
- Pasul 1: Familiarizați-vă cu Pinout-ul dvs. Driver Stepper
- Pasul 2: conectați Arduino 5V / GND la placa dvs
- Pasul 3: Conectați șinele +/- la VIO / GND
- Pasul 4: Conectați DIR / STEP la pinii digitali de pe Arduino
- Pasul 5: Să mergem înainte și să adăugăm acel condensator …
- Pasul 6: Și mergeți mai departe și conectați acel GND
- Pasul 7: Conectați motorul la driver
- Pasul 8: Conectați EN, MS1 și MS2 la „-”
- Pasul 9: lipiți un conector de alimentare feminin la două fire
- Pasul 10: Conectați-vă noul conector femelă lipit
- Pasul 11: conectați-le la VM / GND
- Pasul 12: Admirați-vă lucrările manuale
- Pasul 13: Opțional - Verificați VREF
- Pasul 14: Butoane
- Pasul 15: Adăugați placa de microfon
- Pasul 16: Acesta ar trebui să fie rezultatul final
- Pasul 17: Cod
- Pasul 18: Montare și configurare roată
- Pasul 19: Configurare finală
Video: Arduino Cradle Rocker: 19 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Îmi pare rău, nu am putut rezista muzicii intense și sugestive pe care mi-a sugerat-o chestia de editare video.
De curând am avut primul meu copil și am avut deja un leagăn de lemn pe care unchiul meu (care este un lemnar minunat) l-a făcut pentru nepotul meu. Nepotul meu a depășit-o de mult, așa că am fost fericit să-l iau și să evit să cheltuiesc TOȚI BANII pe orice leagăn / coș pe care mama bloggerilor l-au lăsat nevasta pe soția mea. Leagănul este un design destul de simplu, practic doi montanți cu șuruburi prin ele care susțin corpul leagănului. Există un cuier detașabil pentru al bloca în poziție.
În câteva săptămâni am constatat că am putea de multe ori să înăbușim agitația ușoară, legănând puțin leagănul până când băiatul nostru s-a așezat. În noaptea în care am aflat acest lucru, am petrecut câteva 10 minute de întindere noaptea târziu, cu brațul întins de sub acoperitoare, legănându-l somnoros, fericit că am găsit o modalitate de a-l liniști fără să mă ridic singur din pat. dimineața am atașat un șnur și un mic carabin, așa că am putut să legăn leagănul fără să trebuiască să-mi întind brațul.
În dimineața de după aceea, am început să mă gândesc la o modalitate de a avea doar un robot care să-l pună pe copil pe mine. Introduceți Arduino …
Provizii
Ok, acesta a fost primul meu proiect Arduino vreodată, așa că am făcut câteva experimente, încercări și erori și sunt sigur că există loc de îmbunătățire în proiectarea mea, dar aici este lista mea de piese: Arduino Uno (13 USD) pentru controlul tuturor kit (10 dolari) pentru conectarea firelor
Motorul pas cu pas (14 USD) Aceasta este cea mai distractivă piesă, deoarece este lucrul care face toată munca. Am început cu un motor cuplu ușor mai mic, dar apoi l-am luat și funcționează destul de bine. Simțiți-vă liber să obțineți unul și mai puternic. Driverele de motor Stepper (10-30 USD) Acest lucru se află între Arduino și motor. Acest lucru specific este capabil să conducă motorul mai liniștit decât alții, așa că am mers cu asta, deoarece motorul va fi la câțiva metri de capul meu (și al fiului meu) în timp ce dormim. Inițial, tocmai am cumpărat un driver TMC2209 pentru ~ 10 USD, dar am ajuns să cumpăr un pachet de 4, deoarece am avut unele dificultăți la început și am vrut să mă asigur că nu am prăjit placa la un moment dat. Am ajuns să ucid de fapt 3 plăci, ceea ce mă aduce la următorul meu articol … Condensatoare! (10 dolari) Într-adevăr aveți nevoie doar de un condensator de 47 uF 50V, așa că această cutie de 240 a fost foarte exagerată. O sursă de alimentare de 36 V (17 dolari) Am cumpărat inițial o sursă de 12 V, apoi am aflat că asta a fost sursa tuturor problemelor mele și am primit una care era mai aproape de tensiunea maximă pe care mi-o putea suporta motorul meu pas cu pas. Dacă utilizați un motor diferit sau un șofer pas cu pas, asigurați-vă că poate gestiona tensiunea (V) și că Amperajul (A) al sursei este cel puțin la fel de mare ca Amperii de vârf trase de motor. 8 dolari) În acest caz se conectează sursa de alimentare. Va trebui să le lipiți cu niște fire pentru a le lipi în panoul dvs. Un pachet mare de jumperi (9 USD), astfel încât să pot pune comenzile oriunde am vrut în cameră.
Butoane (8 USD) pentru pornire / oprire etc.
Un amplificator pentru microfon (11 USD) Oh, nu știați că și acesta a fost activat sunetul?
Unele roți de scripete mici (8 USD) am ajuns să le folosesc, dar ar putea exista alternative mai bune. Mai multe despre asta mai târziu. De asemenea, veți avea nevoie cu siguranță de un fier de lipit și de orice doriți să utilizați pentru a monta motorul. Personal, tocmai am făcut o cutie aspră din 4 bucăți de lemn înșurubate, apoi le-am înșurubat pe o altă bucată de lemn care are aproximativ lățimea piciorului leagănului meu. Deocamdată, doar îl am prins, pentru că nu știu dacă vreau să mărunțesc leagănul unchiului meu.
Pasul 1: Familiarizați-vă cu Pinout-ul dvs. Driver Stepper
Programul de modelare pe care l-am folosit nu avea această placă de driver exactă, deci va trebui să faceți referire la această imagine. Am aranjat totul în aceeași orientare ca această imagine.
Pasul 2: conectați Arduino 5V / GND la placa dvs
Conectați un fir de la Arduino 5V la șina "+" de pe o parte a panoului dvs. Conectați un fir de la unul dintre dispozitivele Arduino GND la șina "-" de pe aceeași parte a panoului
(ignorați fișierul
Pasul 3: Conectați șinele +/- la VIO / GND
Conectați un fir de la șina "-" la GND în partea din stânga jos a plăcii șoferului pas cu pas. Conectați un fir de la șina "+" la VIO
Pasul 4: Conectați DIR / STEP la pinii digitali de pe Arduino
Conectați pinii DIR și STEP de pe placa driverului pas cu pas la doi dintre pinii digitali de pe Arduino. Am folosit pinii 2 și respectiv 3, dar nu contează atâta timp cât ai setat pinii în cod mai târziu.
Pasul 5: Să mergem înainte și să adăugăm acel condensator …
Am ars 2 plăci de șofer pas cu pas, deoarece nu aveam un condensator, așa că hai să mergem mai departe și să adăugăm condensatorul 47uF 50V la pinii VM / GND de pe placa șoferului. Asigurați-vă că pinul "-" de pe condensator este în pinul GND de pe panou (va exista un "-" pe partea corespunzătoare a condensatorului)
Pasul 6: Și mergeți mai departe și conectați acel GND
Pe GND la care tocmai ați adăugat condensatorul, continuați și conectați-l la aceeași șină "-" ca și cealaltă GND.
Pasul 7: Conectați motorul la driver
Care știft merge de unde va depinde de motorul pe care l-ați cumpărat, dar cel pe care l-am enumerat are schema de cablare pe lista Amazon.
Pentru motorul meu -
Conectați verde și negru la M2B și M2A
Conectați roșu și albastru la M1A și M1B Notă: Dacă din orice motiv motorul dvs. nu are o diagramă, puteți afla cu ușurință ce fire formează un circuit dacă aveți un multimetru. Setați multimetrul la o setare a amplificatorului scăzut și deconectați motorul. Atingeți unul dintre cablurile multimetrului către unul dintre firele motorului, apoi încercați fiecare dintre celelalte fire cu celălalt fir. Dacă obțineți o citire a rezistenței, atunci cele două fire formează 1 circuit, iar celelalte două formează celălalt.
Pasul 8: Conectați EN, MS1 și MS2 la „-”
Nu sunt pe deplin sigur că acest lucru este necesar, dar cred că setează motorul la o setare de microstep mai mică pe driverul TMC2209. Le puteți conecta la șina "-" feroviară cea mai apropiată de ele, deoarece o vom conecta la cealaltă parte mai târziu.
Pasul 9: lipiți un conector de alimentare feminin la două fire
Nu sunt cel mai bun din lume la lipit, așa că va trebui să căutați în altă parte pentru asta, dar eu am făcut-o așa. Am îndoit capetele firelor, astfel încât să se așeze plat de cablurile conectorului, apoi am lipit firul de cablu. Nu aveam nicio substanță termocontractibilă, așa că le-am înfășurat prodigios cu bandă electrică.
Pasul 10: Conectați-vă noul conector femelă lipit
Vă rugăm să nu conectați încă sursa de alimentare reală. Sârmă roșie la „+”, negru la „-”
Pasul 11: conectați-le la VM / GND
Conectați acele șine "+" și "-" la VM și GND de lângă acesta. Cele cu condensatorul pe el.
Pasul 12: Admirați-vă lucrările manuale
Bine, acum aveți motorul și șoferul complet configurate! De aici înainte vom face doar controale. Apropo, mergem înainte:
- Dacă v-ați deconectat driverul din orice motiv, nu încercați să îl conectați în timp ce alimentarea dvs. de 36V este conectată. Am ucis a treia placă de driver așa.
- Conectați alimentarea de 36V înainte de a conecta alimentarea Arduino. Nu am prăjit personal un Arduino, dar pe parcurs am văzut mulți avertismente despre asta.
Pasul 13: Opțional - Verificați VREF
TMC2209 are un potențiometru care controlează curentul la motor. Dacă ai același șofer ca și mine, poți citi despre asta aici. Dacă doriți să reglați setarea:
- Deconectați toată alimentarea și deconectați firele motorului de la șofer.
- Deconectați firul la pinul EN (enable) de pe driver. Acesta este pinul din colțul din stânga sus.
- Conectați sursa de alimentare a motorului (cea de 36V)
- Folosind un multimetru setat pe 20V, atingeți un cablu la o sursă de GND (am folosit un cablu conectat la șina mea "-") și atingeți celălalt cablu la pinul VREF. Vă rugăm să nu atingeți plumbul la nimic altceva, puteți să vă scurtați șoferul dacă faceți acest lucru.
- Folosiți o șurubelniță mică pentru a regla ușor șurubul potențiometrului. Pentru placa mea, în sens invers acelor de ceasornic = mai multă putere. VREF-ul meu citește personal ~ 0,6V.
Pasul 14: Butoane
Apoi, conectați butoanele astfel. Nu au nevoie de putere.
- Conectați o șină "-" a panoului de butoane la unul dintre GND-urile Arduino. Puteți, de asemenea, să îl înlănțuiți de pe șina "-" a celuilalt panou, dacă doriți.
- Conectați câte un știft din fiecare buton la șina "-"
- Conectați un alt pin al fiecărui buton la un pin digital de pe Arduino.
Am folosit 4 butoane: Motor pornit / oprit
Motorul continuă
Microfon activat
Microfon oprit
Mai multe despre acestea când ajungem la cod, dar am folosit butoane distincte pentru microfon pur și simplu pentru că nu aveam LED-uri care să mă anunțe dacă microfonul este pornit sau oprit, deci având butoane distincte de pornire / oprire îl făcea infailibil.
Pasul 15: Adăugați placa de microfon
Acesta este simplu, iar Adafruit are instrucțiuni bune (și elemente de bază pentru lipit!) Aici.
- Conectați „-” la un GND
- Conectați GND pe placa microfon la „-” (puteți conecta direct GND la GND și săriți pasul anterior, într-adevăr)
- Conectați VCC la puterea de 3,3 V de pe Arduino. Acest lucru este important deoarece această sursă de alimentare este mai puțin „zgomotoasă” decât 5V, rezultând citiri mai bune ale microfonului
- Conectați-vă la un pin ANALOG IN de pe Arduino. Am folosit A0.
Pasul 16: Acesta ar trebui să fie rezultatul final
Totul ar trebui să fie gata acum. Iată o imagine a diagramei finale și a amestecului meu de fire în realitate. Să ne uităm la un cod!
Pasul 17: Cod
Ok hai să ne uităm la cod! Aceasta nu este cea mai curată lucrare a mea, dar îmi face treaba. Am adăugat comentarii pentru a explica totul aici, dar țineți cont de mine. Am folosit Arduino IDE pentru toate acestea (disponibil gratuit pe Windows și Mac).
Setați un număr de roci (leagăne) de făcut.
Rotiți distanța setată pentru 1 leagăn. Swing de un număr stabilit de ori.
Între toate acestea, urmăriți apăsarea butoanelor sau ascultați microfonul pentru a vedea dacă motorul ar trebui să pornească. Va trebui să reglați valorile vitezei, distanței și sensibilității microfonului. Viteza motorului va afecta volumul și cuplul. Cu cât motorul merge mai repede, cu atât este mai tare și cuplul este mai mic. Al meu este în prezent aproape silențios, deci este posibil să-l faci să ruleze fără să scoată prea mult sunet.
#include // biblioteca cu motor pas cu pas "standard"
// # define DEBUG 1 // descommentați acest lucru când doriți să reglați nivelurile microfonului // Setarea butoanelor - acestea corespund unde pinii digitali pe care i-ați conectat la butoane const int motorEnablePin = 10; const int continuePin = 11; const int micDisablePin = 12; const int micEnablePin = 13; // Configurare microfon - A0 aici este analogul pentru microfon. Fereastra eșantionului este în milis const int micPin = A0; const int sampleWindow = 1000; eșantion int nesemnat; bool micEnabled = false; microfon dublu Sensibilitate = 0,53; // probabil va trebui să schimbați acest lucru // Pentru mine, în jurul valorii de.5 a fost suficient de bun pentru a nu trage pe mici cooing // dar va declanșa pentru strigăte mici int stepsPerRevolution = 3200; // schimbați acest lucru pentru a se potrivi cu numărul de pași pe rotație pentru motorul dvs. // Motorul meu are 200 de pași / rotație // Dar am setat driverul la 1/16 microstepi // deci 200 * 16 = 3200 … sincer nu am idee dacă acest lucru este modul corect // de a face acest Stepper myStepper (stepsPerRevolution, 2, 3); // 2 & 3 sunt pinii DIR & STEP int stepCount = 0; int motorSpeed = 95; // va trebui să ajustați acest lucru în funcție de greutatea leagănului și bebelușului int numSteps = 90; // Distanța de deplasare a motorului. // Va trebui să reglați acest lucru în funcție de raza roții pe care o atașați // la motor. Aceasta și viteza vor fi probabil încercări și erori. // Notă - viteză mai mare la motoarele pas cu pas = cuplu efectiv mai mic // Dacă nu aveți cuplu suficient, motorul dvs. va sări treptele (nu se mișcă) în vechiul motorButtonValue = HIGH; bool enabled = false; // motor activat? int loopStartValue = 0; int maxRocks = 100; // de câte ori doriți să se balanseze înainte de a opri int rockCount = 0; void setup () {#ifdef DEBUG Serial.begin (9600); // pentru jurnalul de depanare #endif pinMode (motorEnablePin, INPUT_PULLUP); // Aceasta este o setare pentru ca butoanele să funcționeze fără pin pinMode (continuePin, INPUT_PULLUP); pinMode (micEnablePin, INPUT_PULLUP); pinMode (micDisablePin, INPUT_PULLUP); myStepper.setSpeed (motorSpeed); // setează viteza motorului la ceea ce ați specificat anterior} void loop () {int motorButtonValue = digitalRead (motorEnablePin); // digitalRead citeste doar valorile butoanelor int continueValue = digitalRead (continuePin); // Aceasta detectează apăsarea butonului motorului și îl împiedică să declanșeze mai multe ori pe clic dacă (motorButtonValue == HIGH && oldmotorButtonValue == LOW) {enabled =! Enabled; } micCheck (); // Dacă motorul este oprit și microfonul este pornit, ascultați cum plânge copilul dacă (! Activate && micEnabled) {if (getMicReading ()> = micSensitivity) enabled = true; } if (activat) {stepsPerRevolution = stepsPerRevolution * -1; // direcție inversă // Cu configurarea mea este mai eficient să inversați pe // primul leagăn. Puteți pune acest lucru după buclă // dacă nu este cazul dvs. // rotiți motorul distanța specificată mai sus pentru (int i = loopStartValue; i <numSteps; i ++) {// verificați dacă opriți int tempmotorButtonValue = digitalRead (motorEnablePin); if (tempmotorButtonValue! = motorButtonValue) {RockCount = 0; // Aceste două linii următoare „salvează” poziția motorului, astfel încât data viitoare când îl porniți // va continua să călătorească ca și când nu l-ați fi oprit. Aceasta previne aruncarea // distanțele de mișcare loopStartValue = i; // salvați poziția stepsPerRevolution = stepsPerRevolution * -1; // menține direcția oldmotorButtonValue = tempmotorButtonValue; pauză; } checkContinue (continueValue); // verifică dacă butonul Continuare a fost apăsat micCheck (); myStepper.step (stepsPerRevolution / 50); // câți pași să faceți pe buclă, // poate fi necesar să reglați acest lucru // asigurați-vă că continuăm distanța completă a buclei dacă bucla s-a terminat // aceasta intră în joc dacă opriți singur motorul și „a salvat” poziție if (i == numSteps - 1) {loopStartValue = 0; }}} întârziere (100); // întrerupeți 100 de milis înainte de a face următoarea rocă. Va trebui să ajustați acest lucru. dacă (activat) checkComplete (); oldmotorButtonValue = motorButtonValue; // aceasta este utilizată pentru prevenirea clicurilor duble} // Acest cod este direct de la Adafruit. getMicReading dublu () {unsigned long startMillis = millis (); unsigned int peakToPeak = 0; // nivelul vârf-la-vârf nesemnat int signalMax = 0; unsigned int signalMin = 1024; while (milis () - startMillis <sampleWindow) {micCheck (); if (digitalRead (motorEnablePin) == LOW) activat = true; eșantion = analogRead (micPin); if (sample signalMax) {signalMax = sample; // salvați doar nivelurile maxime} else if (eșantion
for (int i = loopStartValue; i <numSteps / 2; i ++) {
myStepper.step (stepsPerRevolution * -1 / 50); // pasul 1/100 al unei revoluții:
}
} }
Pasul 18: Montare și configurare roată
Acesta este încă un WIP pentru mine, deoarece, așa cum am spus, nu sunt sigur că vreau să pun șuruburi în leagănul meu.
- Puneți o clemă pentru a acționa ca un braț care iese din leagăn, astfel încât roata mea să poată trage în linie dreaptă
- Am înșurubat o cutie brută pentru a pune motorul și am înșurubat-o pe o placă de bază, pe care am prins-o de piciorul leagănului
- Confecționat o roată de scripete din lemn personalizată cu o gaură pentru a se potrivi în interior cu roata de scripete mică. Am făcut gaura centrală foarte strânsă și tocmai am cioplit în roata scripetei pas cu pas. Am forat o gaură prin roată până la mijloc, astfel încât să pot accesa șurubul de pe roata metalică a fuliei pentru a o strânge pe motorul pas cu pas.
- A alergat un șir de la „brațul” leagănului la roată. Am asigurat șirul trecându-l prin orificiul pe care l-am forat și doar lipindu-l în poziție.
Cea mai bună soluție pentru a treia etapă este să cumpărați mai întâi o roată de fulie cu diametru mai mare. Al meu are puțin sub 3 în diametru în interiorul canelurii și funcționează foarte bine pentru leagănul meu particular.
Prima mea versiune a folosit un braț în locul unei roți. Nu a funcționat aproape la fel de bine, deoarece forța nu era aplicată într-o direcție consecventă și era, de asemenea, foarte susceptibilă de a fi aruncată dacă poziția de plecare nu era corectă. Folosirea unei roți rezolvă aceste probleme. De asemenea, m-am distrat folosind un sistem de scripete mic, dar am ajuns să nu mai am nevoie, deoarece roata mea mi-a dat un cuplu suficient.
Pasul 19: Configurare finală
Montați microfonul aproape de copilul dvs., dar într-un loc în care nu vor lovi niciun fir. Puneți butoanele oriunde doriți, atâta timp cât aveți suficiente fire pentru a rula la destinația finală. De asemenea, ați putea înlocui butoanele cu o configurare wifi pe arduino, dar încă nu am mers atât de adânc. Noroc acolo!
Recomandat:
Joc LED Rocker: 7 pași (cu imagini)
LED Rocker Game: LED Rocker Game este un joc simplu Arduino. Este format în principal din 9 LED-uri (8 LED-uri albastre și 1 LED roșu în mijloc), 1 buton, 1 difuzor și 1 panou LCD. Scopul acestui joc este să apăsați butonul când LED-ul roșu clipește. Începe cu 9 LED-uri blin
Joc Arduino Rocker: 4 pași
Joc Arduino Rocker: Acesta este un joc Arduino, există 11 lumini LED, luminile LED vor străluci într-un model. Când LED-ul din mijloc luminează, apăsați butonul. Ai trei vieți, de fiecare dată când apeși butonul când lumina nu este pe mijloc pierzi o viață. După
ROCKER INTELIGENT BABY: 7 pași
INTELIGENT BABY ROCKER: În lumea actuală, unde părinții ar fi ocupați să-și ducă viața profesională, este dificil pentru ei să găsească suficient timp pentru bebelușul lor. De asemenea, este obișnuitul general al societății ca mama să aibă grijă de copil, totuși
Joc Rocker LED Arduino !: 4 pași (cu imagini)
Arduino LED Rocker Game !: Acesta este un joc arduino simplu, destul de simplu, dar extrem de captivant. Se bazează pe un exemplu de clipire fără întârziere a site-ului web Arduino. Pentru a juca, deschideți monitorul serial și apăsați butonul când LED-ul din mijloc se aprinde. Vei primi trei vieți
Crystal Clear Cradle pentru Ipod Touch de a 3-a generație: 6 pași
Crystal Clear Cradle pentru a 3-a generație Ipod Touch: noul dvs. iTouch de a 3-a generație va arăta ca și cum ar pluti de pe bibanul său pe acest leagăn clar. Nu trebuie să cumpărați nimic pentru a face acest lucru dacă aveți la îndemână instrumente simple. Acesta este un proiect ușor. (Dacă faceți clic în succesiune pe seria de