INHOUDSOPGAWE:

Arduino robotarm: 5 stappe
Arduino robotarm: 5 stappe

Video: Arduino robotarm: 5 stappe

Video: Arduino robotarm: 5 stappe
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, November
Anonim
Image
Image
Arduino robotarm
Arduino robotarm
Arduino robotarm
Arduino robotarm

Aangesien dit my eerste projek is na die 15 tutoriale van my Arduino -beginpakket, is die eintlike doel daarvan om kritici, wenke, voorstelle, idees te kry van almal wat meer as ek weet.

Hierdie projek handel oor 'n robotarm, met 4 dofs en 'n greep. Met 'n redelik lae begroting: die struktuur is deur 'n vriend gesny, die 4 servo's was 30 €, die 2 joysticks 4 €, boute skroef, ens. Vir minder as 10 € en al die ander (Arduino, drade, greep se servo, ens.) was reeds ingesluit in my voorgeregstel. Vir 'n totaal van 40-45 €, wat ongeveer 45-50 Amerikaanse dollars is (dieselfde prys as 'n me-arm-kit, maar hey, dit was lekker om dit self te kon bou (en af en toe iets deurmekaar maak) en volg nie instruksies soos 'n masjien nie).

Aangesien dit my eerste projek en Instructable was, het ek deelgeneem aan die '' First Time Author '' en 'n paar ander wedstryde, so as u daarvan hou, stem dan:)

Stap 1: ONTWERP EN SAMENSTELLING:

Eerstens het ek 'n struktuur nodig: dit was beslis die langste deel. Omdat ek nie die projek van iemand anders wou kopieer en plak nie, het ek 'n projek as verwysing geneem en ek (en 'n paar bekwame klasmaats wat my regtig gered het) het dit begin aanpas volgens ons behoeftes (verskillende servo's met verskillende wringkrag, gewig en afmetings, ens.). Ek moes dit 'n paar keer bou, ek het iets verkeerd gevind, en ek moes 'n paar stukke herhaal en probeer. Ek het die.dxf -lêer aangeheg as u dit wil gebruik. Dan moes ek die elektronika koop: Die meeste dele was standaard; die moeilike deel was om die servo's te kies. Ek het die vereiste wringkrag met die duimreël bereken, later het ek 'n meer akkurate berekening probeer en ek het uitgevind dat ek dit moontlik 'n bietjie te veel gehad het. Blykbaar sou 6 kg/cm genoeg gewees het vir die 2de servo (vanaf die basis), en myne lewer 9-11 kg/cm. Dit gee my veiligheid en die kans om tot 2 kg vrag te laai (wat onmoontlik is, maar ek hou daarvan dat ek dit tegnies kan doen). Ek kon ook verskillende servo's gekoop het, met 'n afnemende wringkrag terwyl ek van die basis af wegbeweeg het, maar identiese servo's by dieselfde verskaffer was verreweg die goedkoopste opsie. 350mA en die microservo 9g trek 100mA, vir 'n totaal van 350*4 +100 = 1500mA. Dus het ek 'n laaier (6V 1.5A) gebêre en twee springdrade daaraan gesoldeer. (As sommige van u 'n paar regte instruksies nodig het, vra dit dan in die kommentaar, en ek sal my bes doen om 'n stap-vir-stap te maak gids) Materiaallys:- Struktuur- M5x7cm skroef x5, m5 boute x15 (basis)- M3x16mm skroef x18*- M3x20mm skroef x13*- M3 boute x40*- M3x8cm skroef x3- Klem (anders val dit)- 3 spykers- Arduino (of iets anders om dit te beheer, dit moet ten minste 5 PWM hê)- Iets om 5-6V te voorsien en ten minste 1.5A- 3x ps2-agtige joysticks- 4x TowerPro mg995 servos- 1x TowerPro 9g microservo (vir die greep) - Baie jumperdrade - Breadboard*(ek het boute en skroewe gebruik om vinnig te kon monteer en uitmekaar te haal, anders kan u byna almal met houtwerkskroewe vervang)

Stap 2: KODE:

Die idee is om elke servo te beheer met een van die twee as van 'n ps2-agtige joystick. Elke joystick het verskillende "ruswaardes" (die waarde tussen 0-1023 as dit nog is) vir beide die y- en x-as. was 'n probleem, want die verskil was amper klein (een het die nul op y by 623) en ek wou die kaartfunksie gebruik om van 0-1023 na grade om te skakel. Maar die kaartfunksie dink dat die reswaarde 1023/2 is. Dit het vir elke servo beweeg sodra ek die Arduino aanskakel, nie goed nie. Ek het dit reggekry deur die verskil tussen die leeswaarde en elke verskillende ruswaarde (wat ek afsonderlik vir elke joystick bereken het) met die hand te bepaal maak die kode korter en slimmer, ek het hom die reswaardes in die opstelfunksie laat lees en dit in 'n paar veranderlikes stoor. Ek moes dit vir 'n konstante deel: ek het baie waardes probeer totdat ek met die laaste 200 vorendag gekom het (ek kan 'n potensiometer byvoeg om hierdie waarde handmatig na die gewenste te verander). Die res van die kode is redelik standaard. al is dit miskien meer elegant om die berekening van die verhoging in 'n aparte funksie te plaas.

Stap 3: ELEKTRONIES:

ELEKTRONIES
ELEKTRONIES

Die bedrading is dieselfde as op die foto of die fritzing-lêer: servos sein na penne: 5-6-9-10-11 en joystick-as na analoog penne: A0-A1-A2-A3-A4 Die grootste probleem wat ek teëgekom het was dat die joysticks deur die Arduino verskaf moes word, NIE deur die laaier wat ek vir die servo's gebruik nie. Andersins sou die servo net mal word as hy willekeurig heen en weer beweeg, en ek dink dit kan wees omdat die Arduino, as ek hulle die laaier voorsien, nie presies die potensiële verskil kan sien as ek hulle skuif nie, maar dan weer: Ek is baie nuut op die gebied van elektronika, maar dit is net 'n raaiskoot. Om die Arduino -grond en die laaigrond deur die broodbord te verbind, het ewekansige en onverwagte bewegings verhoed, om 'n soortgelyke rede van die joysticks -aanbod.

Stap 4: GAAN TANS OP VERBETERING:

Tans gaan verbetering
Tans gaan verbetering

Aangesien elke joystick 2 servo's (1 per as) kan beheer, het ek 3 servo's nodig om die hele arm te beheer, maar ek het ongelukkig net 2 duime gehad. hou vas en maak die greep oop, vir 'n totaal van 4 as, 2 joysticks en 2 duime! nie-lineêre) vergelykings om die toestand van elke effektor (hoeke vir die servo's) te vind gegewe die finale posisie. Ek het 'n handgeskrewe vraestel met die vergelykings opgelaai, en ek werk tans aan 'n nuwe kode om dit te gebruik. Dit moet nie te moeilik wees nie; ek moet basies die joysticks lees, hul lesings gebruik om die xyz -koördinate van die greep te verander en dit dan aan my vergelykings te gee, die servoshoeke te bereken en dit te skryf.

Stap 5: TOEKOMSTIGE VERBETERINGS:

Dus, ek is redelik tevrede met die uitkoms daarvan, en aangesien ek heeltemal nuut is in elektronika, is dit nie 'n reuse -oorwinning nie. hardeware, is meer as welkom! Tot dusver het ek gedink aan: 1. Die potensiometer om die 'gevoeligheid' van die joysticks te verander. Nuwe kode om hom 'n paar bewegings te laat "opneem" en weer te doen (miskien vinniger en korter as die menslike insette) 3. Een of ander visuele/afstand/steminvoer en om voorwerpe te kry sonder dat iemand die joysticks gebruik4. Kan u geometriese figure teken? Enige ander idee? Voel vry om kommentaar te lewer met enige voorstelle. Dankie

Aanbeveel: