- Komponenter, der kræves
- Konstruktion af robotarm
- Kredsløbsdiagram og arbejdsforklaring:
- Sådan betjenes robotarmen:
I denne vejledning skal vi designe en Arduino Uno-baseret robotarm fra nogle pap og servomotorer. Hele konstruktionsprocessen er forklaret detaljeret nedenfor. Her i dette projekt er Arduino Uno programmeret til at styre servomotorer, der fungerer som led i en robotarm. Denne opsætning ser også ud som en robotkran, eller vi kan konvertere den til en kran ved at udføre nogle lette justeringer. Dette projekt vil være nyttigt for begyndere, der ønsker at lære at udvikle en simpel robot til lave omkostninger eller bare vil lære at arbejde med Arduino og servomotorer.
Denne Arduino robotarm kan styres af fire potentiometer, der er fastgjort til den, hvert potentiometer bruges til at styre hver servo. Du kan flytte disse servoer ved at dreje potterne for at vælge et objekt, med lidt øvelse kan du nemt vælge og flytte objektet fra et sted til et andet. Vi har brugt servos med lavt drejningsmoment her, men du kan bruge mere kraftfulde servoer til at vælge tunge genstande. Hele processen er godt demonstreret i videoen i slutningen. Tjek også vores andre robotprojekter her.
Komponenter, der kræves
- Arduino Uno
- 1000uF kondensator (4 stykker)
- 100nF kondensator (4 stykker)
- Servomotor (SG 90 - fire stykker)
- 10K pot- Variabel modstand (4 stykker)
- Strømforsyning (5v - helst to)
Servomotor
Først taler vi lidt om Servo Motors. Servomotorer bruges hovedsageligt, når der er behov for nøjagtig akselbevægelse eller position. Disse foreslås ikke til applikationer med høj hastighed. Servomotorer foreslås til lav hastighed, medium drejningsmoment og nøjagtig positionsanvendelse. Så disse motorer er bedst til design af robotarm.
Servomotorer fås i forskellige former og størrelser. Vi skal bruge små servomotorer, her bruger vi fire SG90-servoer. En servomotor vil hovedsagelig have ledninger, den ene er for positiv spænding, den anden er for jord, og den sidste er for positionsindstilling. Den RØDE ledning er tilsluttet strøm, den sorte ledning er forbundet til jord og GUL ledning er forbundet til signalet. Gå gennem denne vejledning i styring af servomotor ved hjælp af Arduino for at lære mere om det. I Arduino har vi foruddefinerede biblioteker til at styre Servo, så det er meget let at kontrollere servo, som du vil lære sammen med denne vejledning.
Konstruktion af robotarm
Tag en flad og stabil overflade som et bord eller et hårdt kort. Placer derefter en servomotor i midten og lim den på plads. Sørg for, at rotationsgraden er i det område, der er vist i figuren. Denne servo fungerer som armbase.
Læg et lille stykke pap oven på den første servo, og placer derefter den anden servo på dette stykke bord, og lim det på plads. Servorotationen skal matche diagrammet.
Tag nogle pap og skær dem i 3 cm x 11 cm stykker. Sørg for, at stykket ikke er blødgjort. Skær et rektangulært hul i den ene ende (efterlad 0,8 cm fra bunden) lige nok til at passe til en anden servo, og i en anden ende monteres servoudstyret tæt med skruer eller lim. Monter derefter den tredje servo i det første hul.
Skær nu endnu et papstykke med længderne vist i figuren nedenfor, og lim et andet gear i bunden af dette stykke.
Lim nu den fjerde og sidste servo ved kanten af det andet stykke som vist på figuren.
Med dette ser to stykker sammen ud.
Når vi vedhæfter denne opsætning til basen, skal den se ud,
Det er næsten færdigt. Vi skal bare gøre krogen til at gribe og vælge genstanden som en robothånd. Til krog skal du skære yderligere to stykker kortkort i længderne 1cmx7cm & 4cmx5cm. Lim dem sammen som vist på figuren, og hold det sidste gear helt i kanten.
Monter dette stykke ovenpå, og med dette er vi færdige med at bygge vores robotarm.
Med dette blev vores grundlæggende robotarmdesign afsluttet, og det er sådan, vi har bygget vores billige robotarm. Forbind nu kredsløbet i brødbræt ifølge kredsløbsdiagrammet.
Kredsløbsdiagram og arbejdsforklaring:
Kredsløbsforbindelsen til Arduino Uno Robotic Arm er vist nedenfor.
Spændingen over variable modstande er ikke helt lineær; det vil være støjende. Så for at filtrere denne støj ud er kondensatorer placeret over hver modstand som vist i figuren.
Nu vil vi føre spændingen fra disse variable modstande (spænding, der repræsenterer positionskontrol) i ADC-kanaler i Arduino. Vi skal bruge fire ADC-kanaler i UNO fra A0 til A3 til dette. Efter ADC-initialiseringen har vi den digitale værdi af potter, der repræsenterer den position, som brugeren har brug for. Vi tager denne værdi og matcher den med servoposition.
Arduino har seks ADC-kanaler. Vi har brugt fire til vores robotarm. UNO ADC har 10 bit opløsning, så heltalets værdier varierer fra 0-1023 (2 ^ 10 = 1024 værdier). Det betyder, at det vil kortlægge indgangsspændinger mellem 0 og 5 volt i heltalsværdier mellem 0 og 1023. Så for hver (5/1024 = 4,9 mV) pr. Enhed. Lær mere om kortlægning af spændingsniveauer ved hjælp af ADC-kanaler i Arduino her.
For at UNO kan konvertere analogt signal til digitalt signal, skal vi bruge ADC Channel of Arduino Uno ved hjælp af nedenstående funktioner:
1. analogRead (pin); 2. analogReference (); 3. analogReadResolution (bits);
Arduino ADC-kanaler har en standardreferenceværdi på 5V. Dette betyder, at vi kan give en maksimal indgangsspænding på 5V til ADC-konvertering på enhver indgangskanal. Da nogle sensorer leverer spændinger fra 0-2,5V, så med en 5V-reference får vi mindre nøjagtighed, så vi har en instruktion, der gør det muligt for os at ændre denne referenceværdi. Så for at ændre referenceværdien har vi "analogReference ();"
Som standard får vi den maksimale ADC-opløsning på kortet, der er 10 bit, denne opløsning kan ændres ved hjælp af instruktion (“analogReadResolution (bits);”).
I vores robothåndkredsløb har vi overladt denne referencespænding til standardindstillingen, så vi kan læse værdien fra ADC-kanalen ved direkte at kalde funktionen "analogRead (pin);", her "pin" repræsenterer pin, hvor vi tilsluttede det analoge signal, siger vi vil læse “A0”. Værdien fra ADC kan lagres i et heltal som int SENSORVALUE0 = analogRead (A0); .
Nu Lad os tale om det SERVO, Arduino Uno har en funktion, som gør os i stand til at styre servo position ved bare at give den grad værdi. Sig, hvis vi vil have servoen til 30, kan vi direkte repræsentere værdien i programmet. SERVO header- filen ( Servo.h ) tager sig af alle beregninger af toldforholdet internt.
#omfatte
Her repræsenterer første sætning headerfilen til styring af SERVO MOTOR. Anden erklæring er at navngive servoen; vi lader det være som servo0, da vi skal bruge fire. Tredje erklæring angiver, hvor servosignalstiften er forbundet; dette skal være en PWM-pin. Her bruger vi PIN3 til første servo. Fjerde erklæring giver kommandoer til placering af servomotor i grader. Hvis den gives 30, roterer servomotoren 30 grader.
Nu har vi SG90 servoposition fra 0 til 180, og ADC-værdierne er fra 0-1023. Vi bruger en speciel funktion, der automatisk matcher begge værdier.
sensorværdi0 = kort (sensorværdi0, 0, 1023, 0, 180);
Denne erklæring kortlægger begge værdier automatisk og gemmer resultatet i heltal 'servovalue0' .
Sådan har vi styret servoerne i vores robotarmsprojekt ved hjælp af Arduino. Tjek den fulde kode nedenfor.
Sådan betjenes robotarmen:
Der leveres fire gryder til brugeren. Og ved at dreje disse fire potter tilvejebringer vi variabel spænding ved ADO-kanalerne i UNO. Så de digitale værdier af Arduino er under kontrol af brugeren. Disse digitale værdier kortlægges for at justere servomotorens position, hvorfor servopositionen er i kontrol over brugeren, og ved at dreje disse potter kan brugeren flytte leddene på robotarmen og kan plukke eller gribe ethvert objekt.