- Komponenter kreves
- Bygging av robotarm
- Kretsdiagram og arbeidsforklaring:
- Slik betjener du robotarmen:
I denne opplæringen skal vi designe en Arduino Uno-basert robotarm fra noen papp og servomotorer. Hele konstruksjonsprosessen er forklart i detalj nedenfor. Her i dette prosjektet er Arduino Uno programmert til å kontrollere servomotorer som fungerer som skjøter av robotarmen. Dette oppsettet ser også ut som en robotkran, eller vi kan konvertere den til en kran ved å gjøre noen enkle justeringer. Dette prosjektet vil være nyttig for nybegynnere som ønsker å lære å utvikle en enkel robot til en lav kostnad eller bare vil lære å jobbe med Arduino og servomotorer.
Denne Arduino robotarmen kan styres av fire potensiometer festet til den, hvert potensiometer brukes til å kontrollere hver servo. Du kan flytte disse servoene ved å rotere pottene for å plukke noe objekt, med litt øvelse kan du enkelt plukke og flytte objektet fra ett sted til et annet. Vi har brukt servomater med lavt dreiemoment her, men du kan bruke kraftigere servoer til å plukke tunge gjenstander. Hele prosessen er godt demonstrert i videoen til slutt. Sjekk også våre andre robotprosjekter her.
Komponenter kreves
- Arduino Uno
- 1000uF kondensator (4 stk)
- 100nF kondensator (4 stk)
- Servomotor (SG 90 - fire stykker)
- 10K potten - variabel motstand (4 deler)
- Strømforsyning (5v - helst to)
Servo motor
Først snakker vi litt om Servo Motors. Servomotorer brukes hovedsakelig når det er behov for nøyaktig akselbevegelse eller posisjon. Disse er ikke foreslått for applikasjoner med høy hastighet. Servomotorer foreslås for lav hastighet, middels dreiemoment og nøyaktig posisjonsanvendelse. Så disse motorene er best for design av robotarm.
Servomotorer er tilgjengelige i forskjellige former og størrelser. Vi skal bruke små servomotorer, her bruker vi fire SG90-servoer. En servomotor vil hovedsakelig ha ledninger, den ene er for positiv spenning, den andre er for bakken og den siste er for posisjonsinnstilling. Den RØDE ledningen er koblet til strøm, den svarte ledningen er koblet til jord og GUL ledningen er koblet til signalet. Gå gjennom denne veiledningen om å kontrollere servomotor ved hjelp av Arduino for å lære mer om det. I Arduino har vi forhåndsdefinerte biblioteker for å kontrollere Servo, så det er veldig enkelt å kontrollere servo, som du vil lære sammen med denne veiledningen.
Bygging av robotarm
Ta en flat og stabil overflate, som et bord eller et hardt kortbrett. Deretter plasserer du en servomotor i midten og limer den på plass. Forsikre deg om at rotasjonsgraden er i området som er vist i figuren. Denne servoen fungerer som armbunn.
Plasser et lite stykke papp på toppen av første servo, og legg deretter den andre servoen på dette stykket og lim den på plass. Servorotasjonen må stemme overens med diagrammet.
Ta noen papp og skjær dem i 3 cm x 11 cm biter. Forsikre deg om at stykket ikke er mykgjort. Skjær et rektangulært hull i den ene enden (la det være 0,8 cm fra bunnen) akkurat nok til å passe til en annen servo, og i en annen ende monter servoutstyret tett med skruer eller lim. Sett deretter den tredje servoen i det første hullet.
Skjær nå et pappstykke med lengdene vist på figuren nedenfor, og lim et annet utstyr nederst på dette stykket.
Lim nå den fjerde og siste servoen på kanten av andre stykket som vist på figuren.
Med dette ser to stykker sammen ut.
Når vi fester dette oppsettet til basen, skal det se ut,
Det er nesten ferdig. Vi trenger bare å lage kroken for å gripe og plukke gjenstanden som en robothånd. For krok, skjær ytterligere to stykker kortbrett med lengdene 1cmx7cm og 4cmx5cm. Lim dem sammen som vist på figuren og hold det siste utstyret helt på kanten.
Monter dette stykket på toppen, og med dette har vi gjort byggingen av vår robotarm.
Med dette ble vår grunnleggende robotarmdesign fullført, og det er slik vi har bygget vår billige robotarm. Koble nå kretsen i brødbrettet i henhold til kretsskjemaet.
Kretsdiagram og arbeidsforklaring:
Kretsforbindelsen for Arduino Uno Robotic Arm er vist nedenfor.
Spenningen over variable motstander er ikke helt lineær; det vil være bråkete. Så for å filtrere ut denne støyen, plasseres kondensatorer over hver motstand som vist på figuren.
Nå vil vi mate spenningen fra denne variable motstanden (spenning som representerer posisjonskontroll) i ADC-kanaler i Arduino. Vi skal bruke fire ADC-kanaler av UNO fra A0 til A3 for dette. Etter ADC-initialiseringen vil vi ha digital verdi av potter som representerer den posisjonen som trengs av brukeren. Vi vil ta denne verdien og matche den med servoposisjonen.
Arduino har seks ADC-kanaler. Vi har brukt fire til vår robotarm. UNO ADC har 10 bit oppløsning, slik at heltallverdiene varierer fra 0-1023 (2 ^ 10 = 1024 verdier). Dette betyr at den vil kartlegge inngangsspenninger mellom 0 og 5 volt til heltall mellom 0 og 1023. Så for hver (5/1024 = 4,9mV) per enhet. Lær mer om å kartlegge spenningsnivåene ved hjelp av ADC-kanaler i Arduino her.
Nå, for at UNO skal konvertere analogt signal til digitalt signal, må vi bruke ADC Channel of Arduino Uno, ved hjelp av funksjonene nedenfor:
1. analogRead (pin); 2. analogReferanse (); 3. analogReadResolution (bits);
Arduino ADC-kanaler har en standard referanseverdi på 5V. Dette betyr at vi kan gi en maksimal inngangsspenning på 5V for ADC-konvertering på hvilken som helst inngangskanal. Siden noen sensorer gir spenninger fra 0-2,5V, så med en 5V referanse, får vi mindre nøyaktighet, så vi har en instruksjon som gjør det mulig for oss å endre denne referanseverdien. Så for å endre referanseverdien har vi "analogReference ();"
Som standard får vi den maksimale ADC-oppløsningen på kortet som er 10 bit, denne oppløsningen kan endres ved å bruke instruksjoner (“analogReadResolution (bits);”).
I vår robothåndkrets har vi overlatt denne referansespenningen til standard, slik at vi kan lese verdien fra ADC-kanalen ved direkte å kalle funksjonen "analogRead (pin);", her representerer "pin" pin der vi koblet det analoge signalet, si vi vil lese “A0”. Verdien fra ADC kan lagres i et helt tall som int SENSORVALUE0 = analogRead (A0); .
Nå la oss snakke om SERVO, har Arduino Uno en funksjon som gjør det mulig for oss å kontrollere servo posisjon ved bare å gi graden verdi. Si at hvis vi vil at servoen skal være 30, kan vi direkte representere verdien i programmet. SERVO-headerfilen ( Servo.h ) tar seg av alle beregninger av avgiftsforholdet internt.
#inkludere
Her representerer første setning toppfilen for å kontrollere SERVO MOTOR. Andre uttalelse er å navngi servoen; vi lar det være så servo0 som vi skal bruke fire. Tredje uttalelse sier hvor servosignalpinnen er koblet til; dette må være en PWM-pin. Her bruker vi PIN3 for første servo. Fjerde uttalelse gir kommandoer for posisjonering av servomotor i grader. Hvis den er gitt 30, roterer servomotoren 30 grader.
Nå har vi SG90 servoposisjon fra 0 til 180 og ADC-verdiene er fra 0-1023. Vi vil bruke en spesiell funksjon som samsvarer med begge verdiene automatisk.
sensorvalue0 = kart (sensorvalue0, 0, 1023, 0, 180);
Denne setningen kartlegger begge verdiene automatisk og lagrer resultatet i heltall 'servovalue0' .
Slik har vi kontrollert servoer i vårt robotarmprosjekt ved hjelp av Arduino. Sjekk hele koden nedenfor.
Slik betjener du robotarmen:
Det er fire potter levert til brukeren. Og ved å rotere disse fire pottene, gir vi variabel spenning ved ADC-kanalene til UNO. Så de digitale verdiene til Arduino er under kontroll av brukeren. Disse digitale verdiene er kartlagt for å justere servomotorposisjonen, derav er servoposisjonen i kontroll over brukeren, og ved å rotere kan disse pottene bevege leddene til robotarmen og kan plukke eller gripe et hvilket som helst objekt.