Robotarmmanipulator på arduino. Interessant robotarm på Arduino

Hej giktimes!

UArm -projekt fra uFactory indsamlede midler på kickstarter for mere end to år siden. De sagde fra begyndelsen, at det ville være et open source -projekt, men umiddelbart efter virksomhedens afslutning havde de ikke travlt med at uploade kildekoden. Jeg ville bare skære plexiglasset i henhold til deres tegninger, og det er det, men da der ikke var nogen kildekoder og ikke var forudset i en overskuelig fremtid, begyndte jeg at gentage designet fra fotografierne.

Min robotarm ser nu sådan ud:

Arbejdede langsomt i løbet af to år, det lykkedes mig at lave fire versioner og fik en hel del erfaring. Beskrivelse, projekthistorik og alle projektfiler findes under snittet.

Prøve og fejl

Da jeg begyndte at arbejde med tegningerne, ville jeg ikke bare gentage uArm, men at forbedre det. Det forekom mig, at det under mine forhold er ganske muligt at undvære lejer. Jeg kunne heller ikke lide det faktum, at elektronikken roterer sammen med hele manipulatoren, og jeg ville forenkle designet af den nederste del af hængslet. Plus jeg begyndte at male det lidt mindre med det samme.

Med disse input tegnede jeg den første version. Desværre har jeg ikke bevaret nogen fotografier af den version af manipulatoren (som blev lavet i gult). Fejlene i det var simpelthen episke. For det første var det næsten umuligt at samle det. Som regel var mekanikken, som jeg tegnede før manipulatoren, ganske enkel, og jeg behøvede ikke at tænke på samlingsprocessen. Men alligevel samlede jeg det og forsøgte at starte det, og hånden bevægede sig næsten ikke! Alle delene drejede rundt om skruerne, og hvis jeg strammede dem, så der var mindre tilbageslag, kunne den ikke bevæge sig. Hvis jeg svækkede, så hun kunne bevæge sig, dukkede en utrolig modreaktion op. I sidste ende var konceptet ikke engang tre dage. Og han begyndte at arbejde på den anden version af manipulatoren.

Rød var allerede godt egnet til arbejde. Han samlede normalt og kunne bevæge sig med smøring. Jeg var i stand til at teste softwaren på den, men manglen på lejer og store tab på forskellige stænger gjorde den meget svag.

Så opgav jeg arbejdet med projektet et stykke tid, men tog snart beslutningen om at tænke på det. Jeg besluttede at bruge mere kraftfulde og populære servoer, øge størrelsen og tilføje lejer. Og jeg besluttede, at jeg ikke ville prøve at gøre alt perfekt på én gang. Jeg skitserede tegningerne i en fart, uden at tegne smukke kammerater, og bestilte et snit fra gennemsigtigt plexiglas. Ved hjælp af den resulterende manipulator kunne jeg debugge samleprocessen, identificere steder, der havde brug for yderligere forstærkning, og lærte at bruge lejer.

Efter at jeg havde spillet nok med den transparente manipulator, satte jeg mig til blueprints til den sidste hvide version. Så nu er alle mekanikerne fuldstændig debugget, det passer mig, og jeg er klar til at erklære, at jeg ikke vil ændre noget andet i dette design:

Jeg er deprimeret over, at jeg ikke kunne bringe noget fundamentalt nyt til uArm -projektet. Da jeg begyndte at tegne den endelige version, havde de allerede rullet 3D -modellerne ud på GrabCad. Som et resultat forenklede jeg kun en smule klo, forberedte filer i et praktisk format og brugte meget enkle og standardkomponenter.

Funktioner i manipulatoren

Før fremkomsten af ​​uArm så desktop -manipulatorer i denne klasse temmelig kedelige ud. De havde enten slet ikke elektronik, eller også havde de en form for kontrol med modstande, eller også havde de deres egen proprietære software. For det andet havde de normalt ikke et system med parallelle hængsler, og selve griberen ændrede sin position under drift. Hvis du samler alle fordelene ved min manipulator, får du en ret lang liste:
  1. Koblingssystem til at rumme kraftige og tunge motorer i armbasen og for at holde griberen parallel eller vinkelret på basen
  2. Et enkelt sæt komponenter, der er lette at købe eller skære i plexiglas
  3. Lejer i næsten alle dele af manipulatoren
  4. Let at montere. Det viste sig at være en virkelig vanskelig opgave. Det var især svært at tænke igennem processen med at samle basen.
  5. Gribepositionen kan ændres med 90 grader
  6. Open source og dokumentation. Alt forberedes i tilgængelige formater. Jeg vil levere downloadlinks til 3D -modeller, skære filer, materialeliste, elektronik og software
  7. Arduino kompatibilitet. Der er mange modstandere af Arduino, men jeg tror, ​​det er en mulighed for at udvide publikum. Professionelle kan nemt skrive deres software i C - dette er en almindelig controller fra Atmel!

Mekanik

Til montering er det nødvendigt at skære dele ud af plexiglas med en tykkelse på 5 mm:

Jeg blev opkrævet omkring $ 10 for at skære alle disse dele.

Basen er monteret på et stort leje:

Det var især svært at tænke på fundamentet med hensyn til byggeprocessen, men jeg spionerede på ingeniørerne på uArm. Vipperne sidder på en stift med en diameter på 6 mm. Det skal bemærkes, at mit albue træk holdes på en U-formet holder, og for uFactory, på en L-formet. Det er svært at forklare, hvad forskellen er, men jeg synes, jeg gjorde det bedre.

Fangsten indsamles separat. Den kan rotere rundt om sin akse. Selve kloen sidder direkte på motorakslen:

I slutningen af ​​artiklen vil jeg give et link til de super-detaljerede samlevejledninger på fotos. På et par timer kan du trygt sno det hele, hvis alt hvad du har brug for er lige ved hånden. Jeg forberedte også en 3D -model i det gratis SketchUp -program. Du kan downloade det, dreje det og se, hvad og hvordan det er samlet.

Elektronik

Alt du skal gøre for at få din hånd til at fungere er at forbinde fem servoer til Arduino og forsyne dem med strøm fra en god kilde. UArm har en slags feedbackmotorer. Jeg leverede tre almindelige MG995 -motorer og to små metalgearmotorer til styring af griberen.

Her er min historie tæt sammenflettet med tidligere projekter. I et stykke tid begyndte jeg at undervise i Arduino-programmering, og til dette formål forberedte jeg endda mit Arduino-kompatible bord. På den anden side havde jeg engang mulighed for at lave billige brædder (som jeg også skrev om). Til sidst endte det hele med, at jeg brugte mit eget Arduino-kompatible kort og et specialiseret skjold til at styre manipulatoren.

Dette skjold er faktisk meget enkelt. Den har fire variable modstande, to knapper, fem servostik og et strømstik. Dette er meget bekvemt set fra et fejlfindingssynspunkt. Du kan uploade en testskitse og registrere en slags makro til kontrol eller sådan noget. Jeg vil også give et link til at downloade PCB -filen i slutningen af ​​artiklen, men den er forberedt til fremstilling med metalliserede huller, så den er ikke særlig velegnet til hjemmeproduktion.

Programmering

Det mest interessante er styringen af ​​manipulatoren fra computeren. UArm har en praktisk applikation til manipulatorstyring og en protokol til at arbejde med den. Computeren sender 11 bytes til COM -porten. Den første er altid 0xFF, den anden er 0xAA, og nogle af resten er signaler for servoer. Disse data normaliseres og gives til motorerne til test. Jeg har servoer tilsluttet digital I / O 9-12, men dette kan let ændres.

Terminalprogrammet fra uArm giver dig mulighed for at ændre fem parametre, mens du styrer musen. Bevægelse af musen over overfladen ændrer manipulatorens position i XY -planet. Drejning af hjulet - ændring af højden. LMB / RMB - klem / frigør kloen. RMB + hjul - greb rotation. Meget praktisk, faktisk. Hvis det ønskes, kan du skrive enhver terminal software, der vil kommunikere med manipulatoren ved hjælp af den samme protokol.

Jeg giver ikke skitser her - du kan downloade dem i slutningen af ​​artiklen.

Video af arbejdet

Og endelig videoen af ​​selve manipulatorens arbejde. Det viser musens kontrol, modstande og et forudindspillet program.

Links

Filer til skæring af plexiglas, 3D -modeller, en indkøbsliste, bordtegninger og software kan downloades i slutningen af ​​min

Først vil generelle spørgsmål blive berørt, derefter de tekniske egenskaber ved resultatet, detaljer og til sidst selve montageprocessen.

Generelt og generelt

Oprettelsen af ​​denne enhed som helhed bør ikke forårsage problemer. Det vil være nødvendigt kun kvalitativt at tænke over mulighederne, som vil være ret vanskelige at implementere ud fra et fysisk synspunkt, så manipulatorhånden opfylder de opgaver, der er tildelt den.

Resultatets tekniske egenskaber

En prøve med henholdsvis længde / højde / bredde parametre vil blive overvejet 228/380/160 millimeter. Vægten bliver cirka 1 kg. En kablet fjernbetjening bruges til styring. Anslået monteringstid med erfaring er omkring 6-8 timer. Hvis det ikke er der, kan det tage dage, uger og med tilhørsforhold og måneder, før manipulatorarmen er samlet. Med dine egne hænder og en i sådanne tilfælde er det værd at gøre det kun for din egen interesse. Til bevægelse af komponenterne bruges kollektormotorer. Med nok indsats kan du lave en enhed, der kan drejes 360 grader. For at gøre arbejdet lettere skal du ud over standardværktøjer som et loddejern og loddetin også fylde op med:

  1. Lang næsetang.
  2. Sidekuttere.
  3. Phillips skruetrækker.
  4. 4 x D batterier.

Fjernbetjeningen kan realiseres ved hjælp af knapper og en mikrokontroller. Hvis du vil foretage en fjernbetjening til trådløs fjernbetjening, er der også brug for et handlingskontrolelement i manipulatorhånden. Som tilføjelser vil der kun være behov for enheder (kondensatorer, modstande, transistorer), der vil stabilisere kredsløbet og overføre strømmen af ​​den nødvendige størrelse gennem det på de rigtige tidspunkter.

Små dele

For at regulere antallet af omdrejninger kan du bruge overgangshjulene. De giver dig mulighed for at gøre bevægelsen af ​​manipulatorarmen jævn.

Du skal også sørge for, at ledningerne ikke komplicerer hendes bevægelse. Det vil være optimalt at lægge dem inde i strukturen. Du kan gøre alt udefra, denne tilgang vil spare tid, men kan potentielt føre til vanskeligheder med at flytte individuelle noder eller hele enheden. Og nu: hvordan man laver en manipulator?

Samling generelt

Nu går vi direkte videre til oprettelsen af ​​manipulatorarmen. Vi starter fra bunden. Det skal være muligt at rotere enheden i alle retninger. En god løsning ville være at placere den på en diskplatform, som roteres ved hjælp af en enkelt motor. Så den kan rotere i begge retninger, er der to muligheder:

  1. Installation af to motorer. Hver af dem vil være ansvarlig for at vende i en bestemt retning. Når den ene arbejder, er den anden i ro.
  2. Installation af en motor med et kredsløb, der kan få den til at dreje i begge retninger.

Hvilken af ​​de foreslåede muligheder at vælge afhænger udelukkende af dig. Dernæst er den grundlæggende konstruktion færdig. Af hensyn til arbejdets komfort kræves to "samlinger". Fastgjort til platformen skal være i stand til at vippe i forskellige retninger, hvilket løses ved hjælp af motorer, der er placeret i bunden. Et andet eller et par skal placeres ved albuebøjningen, så en del af grebet kan flyttes langs koordinatsystemets vandrette og lodrette linjer. Hvis du ønsker at få maksimal kapacitet, kan du også installere motoren i stedet for håndleddet. Endvidere den mest nødvendige, uden hvilken manipulatorarmen ikke kan forestilles. Med dine egne hænder skal du lave selve gribeenheden. Der er mange muligheder for implementering. Du kan give et tip om to af de mest populære:

  1. Der bruges kun to fingre, som samtidigt klemmer og frigør det gribende objekt. Det er den enkleste implementering, som dog normalt ikke kan prale af en betydelig lastkapacitet.
  2. Prototypen på den menneskelige hånd er ved at blive skabt. Her kan en motor bruges til alle fingre, ved hjælp af hvilken bøjningen / afbøjningen vil blive udført. Men du kan gøre designet mere kompliceret. Så du kan tilslutte en motor til hver finger og styre dem separat.

Dernæst er det tilbage at lave en fjernbetjening, ved hjælp af hvilken de enkelte motorer og tempoet i deres arbejde vil blive påvirket. Og du kan starte eksperimenter ved hjælp af en robotarm lavet med dine egne hænder.

Mulige skematiske fremstillinger af resultatet

Giver rig mulighed for kreative opfindelser. Derfor præsenteres flere implementeringer for din opmærksomhed, som kan tages som grundlag for at oprette din egen enhed til et sådant formål.

Enhver præsentation af manipulatoren kan forbedres.

Konklusion

Vigtigt inden for robotteknologi er, at der er ringe eller ingen begrænsninger for funktionsforbedringer. Derfor, hvis du ønsker det, vil det ikke være svært at skabe et rigtigt kunstværk. Når man taler om mulige måder til yderligere forbedring, skal læsserkranen nævnes. Det vil ikke være svært at lave en sådan enhed med egne hænder; på samme tid vil det give dig mulighed for at vænne børn til kreativt arbejde, videnskab og design. Og dette kan til gengæld have en positiv effekt på deres fremtidige liv. Vil det være svært at lave en kran med dine egne hænder? Dette er ikke så problematisk, som det kan synes ved første øjekast. Medmindre det er værd at tage sig af tilstedeværelsen af ​​yderligere små dele, såsom et kabel og hjul, som det vil snurre langs.

Har baggrundsbelysning. I alt kører robotten på 6 servomotorer. To millimeter tyk akryl blev brugt til at skabe den mekaniske del. For at lave et stativ blev der taget en base fra en diskokugle, med en motor indbygget direkte i den.

Robotten arbejder på et Arduino -bord. En computerenhed bruges som strømkilde.

Materialer og værktøjer:
- 6 servomotorer
- 2 mm tykt akryl (og et andet lille stykke 4 mm tykt);
- stativ (for at skabe en base);
- ultralydsafstandssensor, type hc-sr04;
- Arduino Uno controller;
- effektregulator (fremstillet uafhængigt);
- strømforsyningsenhed fra computeren;
- computer (nødvendig til Arduino -programmering);
- ledninger, værktøjer osv.



Fremstillingsproces:

Trin et. Samling af den mekaniske del af robotten
Den mekaniske del er meget let at samle. To stykker akryl skal tilsluttes ved hjælp af en servomotor. De to andre links er forbundet på en lignende måde. Hvad angår griberen, er det bedst at købe det online. Alle elementer er fastgjort med skruer.

Længden på den første del er cirka 19 cm, og den anden er cirka 17,5 cm. Frontleddet er 5,5 cm langt. Hvad angår resten af ​​elementerne, vælges deres dimensioner efter eget skøn.





Svingningsvinklen i bunden af ​​den mekaniske arm skal være 180 grader, så servomotoren skal installeres nedenunder. I vores tilfælde skal den installeres i en diskokugle. Robotten er allerede installeret på servomotoren.

For at installere ultralydssensoren skal du bruge et 2 cm tykt stykke akryl.

For at installere griberen skal du bruge et par skruer og en servomotor. Du skal tage gyngestolen fra servomotoren og forkorte den, indtil den passer til griberen. Derefter kan du stramme de to små skruer. Efter installationen skal servomotoren drejes til yderste venstre position, og grebkæberne skal bringes sammen.

Servomotoren er nu sikret med 4 bolte, det er vigtigt at sikre, at den er i yderste venstre position og læberne trækkes sammen.
Nu kan servoen tilsluttes kortet og kontrolleres, om griberen fungerer.








Trin to. Robotlys
For at gøre robotten mere interessant kan du gøre den baggrundsbelyst. Dette gøres ved hjælp af lysdioder i forskellige farver.


Trin tre. Tilslutning af den elektroniske del
Hovedcontrolleren til robotten er Arduino -kortet. En computerenhed bruges som en strømkilde, ved sine udgange skal du finde en spænding på 5 volt. Det burde være, hvis du måler spændingen på de røde og sorte ledninger med et multimeter. Denne spænding er nødvendig for at drive servomotorer og afstandssensoren. Den gule og sorte ledning i blokken afgiver allerede 12 volt, de er nødvendige for at Arduino kan fungere.

Til servoerne skal du lave fem stik. Vi forbinder 5V til positiv og negativ til jord. Afstandssensoren tilsluttes på samme måde.

Der er også en strøm -LED på tavlen. For at forbinde det bruges en 100 ohm modstand mellem + 5V og jord.










Udgangene fra servomotorer er forbundet til PWM -udgange på Arduino. Sådanne ben på tavlen er markeret med et "~" ikon. Hvad angår ultralydsafstandssensoren, kan den tilsluttes ben 6 og 7. LED'en er forbundet til jord og pin 13.

Nu kan du begynde at programmere. Sørg for, at strømmen er helt slukket, før du tilslutter via USB. Når du tester programmet, skal robotten også slukkes. Hvis dette ikke gøres, modtager controlleren 5V fra USB og 12V fra strømforsyningen.

I diagrammet kan du se, at der er tilføjet potentiometre til at styre servomotorer. De er ikke en nødvendig del af robotten, men uden dem fungerer den foreslåede kode ikke. Potentiometre er forbundet til stifter 0,1,2,3 og 4.

Kredsløbet har en modstand R1, det kan udskiftes med et 100 kΩ potentiometer. Dette giver dig mulighed for manuelt at justere lysstyrken. Med hensyn til modstandene R2 er deres nominelle værdi 118 ohm.

Her er en liste over de vigtigste noder, der blev brugt:
- 7 lysdioder;
- R2 - 118 ohm modstand;
- R1 - 100 kΩ modstand;
- kontakt;
- fotoresistor;
- bc547 transistor.

Trin fire. Programmering og første lancering af robotten
Til styring af robotten blev der brugt 5 potentiometre. Det er ganske muligt at udskifte et sådant kredsløb med et potentiometer og to joysticks. Sådan tilsluttes potentiometeret blev vist i det foregående trin. Når de er installeret, kan robotskitserne testes.

De første test af robotten viste, at de installerede servomotorer af futuba s3003 -typen viste sig at være svage for robotten. De kan kun bruges til at rotere hånden eller til at gribe. I stedet installerede forfatteren mg995 -motorer. Motorer af mg946 -typen er ideelle.

Vi skaber en robotarm ved hjælp af en afstandsmåler, vi implementerer baggrundsbelysningen.

Vi skærer basen af ​​akryl. Vi bruger servodrev som motorer.

Generel beskrivelse af robotarmsprojektet

Projektet anvender 6 servomotorer. Til den mekaniske del blev der brugt 2 mm tykt akryl. Basen fra diskokuglen var nyttig som stativ (en af ​​motorerne er monteret indeni). En ultralydsafstandssensor og en 10 mm LED bruges også.

Et Arduino power board bruges til at styre robotten. Selve strømkilden er computerens strømforsyning.

Projektet giver omfattende forklaringer på udviklingen af ​​en robotarm. Ernæringsspørgsmålene i det udviklede design betragtes separat.

Grundlæggende noder til et manipulatorprojekt

Lad os begynde at udvikle. Du får brug for:

  • 6 servomotorer (jeg brugte 2 mg946 modeller, 2 mg995, 2 futuba s3003 (mg995 / mg946 er bedre i ydeevne end futuba s3003, men sidstnævnte er meget billigere);
  • akryl 2 mm tyk (og et lille stykke 4 mm tykt);
  • ultralydsafstandssensor hc-sr04;
  • LED'er 10 mm (farve - efter eget skøn);
  • stativ (bruges som base);
  • aluminiumsgreb (koster cirka 10-15 dollars).

Til kørsel:

  • Arduino Uno board (projektet bruger et hjemmelavet board, som ligner Arduino fuldstændigt);
  • strømkort (du bliver nødt til at lave det selv, vi vender tilbage til dette problem senere, det kræver særlig opmærksomhed);
  • strømforsyningsenhed (i dette tilfælde bruges en computerens strømforsyningsenhed);
  • en computer til at programmere din manipulator (hvis du bruger Arduino til programmering, så Arduino IDE)

Selvfølgelig vil kabler og nogle grundlæggende værktøjer som skruetrækkere og lignende komme godt med. Nu kan vi gå videre til design.

Mekanisk samling

Inden udviklingen af ​​den mekaniske del af manipulatoren påbegyndes, er det værd at bemærke, at jeg ikke har nogen tegninger. Alle knuder blev lavet "på knæet". Men princippet er meget enkelt. Du har to akrylforbindelser med servomotorer imellem dem. Og de to andre links. Også til montering af motorer. Nå, selve grebet. Den nemmeste måde at købe sådan en griber på er at købe den på Internettet. Næsten alt er installeret med skruer.

Længden af ​​den første del er omkring 19 cm; den anden er omkring 17,5; længden på frontleddet er cirka 5,5 cm. Vælg de andre dimensioner i henhold til projektets dimensioner. I princippet er dimensionerne af de resterende noder ikke så vigtige.

Den mekaniske arm skal kunne rotere 180 grader i bunden. Så vi skal installere servomotoren nedenunder. I dette tilfælde er det installeret i den samme diskokugle. I dit tilfælde kan dette være enhver passende æske. Robotten er monteret på denne servomotor. Det er muligt, som vist på figuren, at installere en ekstra metalflangering. Du kan undvære det.

For at installere ultralydssensoren bruges 2 mm tyk akryl. En LED kan også installeres nedenfra.

Det er svært at forklare detaljeret, hvordan man konstruerer en sådan manipulator. Meget afhænger af de enheder og dele, du har på lager, eller du køber. For eksempel, hvis dimensionerne på dine servoer er forskellige, vil armlænene i akryl også ændre sig. Hvis dimensionerne ændres, vil kalibreringen af ​​armen også være anderledes.

Efter at have afsluttet manipulatorens mekaniske design, skal du helt sikkert forlænge servomotorernes kabler. Til disse formål blev der i dette projekt brugt ledninger fra et internetkabel. For at alt dette skal se ud, skal du ikke være doven og installere adaptere på de frie ender af de forlængede kabler - mor eller far, afhængigt af output fra dit Arduino -kort, skjold eller strømforsyning.

Efter at have samlet den mekaniske del, kan vi gå videre til "hjernen" i vores manipulator.

Grib manipulatoren

For at installere griberen skal du bruge en servomotor og et par skruer.

Så hvad der helt præcist skal gøres.

Tag servo rockeren og afkort den, indtil den passer ind i din gribning. Spænd derefter de to små skruer.

Efter installation af servoen skal du dreje den til den yderste venstre position og klemme griberkæberne.

Servoen kan nu monteres på de 4 bolte. Sørg samtidig for, at motoren stadig er i yderste venstre position, og griberkæberne er lukkede.

Du kan slutte servoen til Arduino -kortet og kontrollere, om griberen fungerer.

Bemærk, at der kan opstå problemer med griberens ydeevne, hvis boltene / skruerne er for stramme.

Tilføj fremhævning til en manipulator

Du kan lysne dit projekt op ved at tilføje belysning til det. Til dette blev der brugt lysdioder. Det er let at gøre, men i mørket ser det meget imponerende ud.

Hvor du skal installere lysdioder afhænger af din kreativitet og fantasi.

Ledningsdiagram

Du kan bruge et 100K potentiometer i stedet for R1 til manuel dæmpning. Modstande på 118 Ohm blev brugt som modstand R2.

Liste over de vigtigste enheder, der blev brugt:

  • R1 - 100 kΩ modstand
  • R2 - 118 ohm modstand
  • BC547 bipolar transistor
  • Fotoresistor
  • 7 lysdioder
  • Kontakt
  • Tilslutning til Arduino board

Et Arduino -kort blev brugt som mikrokontroller. En strømforsyningsenhed fra en personlig computer blev brugt som strømforsyning. Ved at tilslutte multimeteret til de røde og sorte kabler ser du 5 volt (som bruges til servomotorer og ultralydsafstandssensor). Gul og sort giver dig 12 volt (til Arduino). Vi laver 5 stik til servomotorer, parallelt forbinder vi det positive med 5 V og det negative til jorden. Ligeledes med afstandssensoren.

Derefter forbindes de resterende stik (en fra hver servo og to fra afstandsmåleren) til det bord, vi lodde og Arduino. I dette tilfælde skal du ikke glemme korrekt at angive de ben, du har brugt i programmet i fremtiden.

Derudover blev der installeret en strøm -LED på strømkortet. Dette er ikke svært at gennemføre. Derudover blev der brugt en 100 ohm modstand mellem 5 V og jord.

10 mm LED på robotten er også forbundet med Arduino. Modstanden på 100 ohm løber fra pin 13 til det positive ben på LED'en. Negativt - til jorden. Det kan deaktiveres i programmet.

Til 6 servomotorer bruges 6 stik, da de 2 servomotorer i bunden deler det samme styresignal. De tilsvarende ledere er forbundet og forbundet til en stift.

Jeg gentager, at en strømforsyningsenhed fra en personlig computer bruges som strømforsyning. Eller selvfølgelig kan du købe en separat strømforsyning. Men taget i betragtning af det faktum, at vi har 6 drev, som hver kan forbruge omkring 2 A, vil en sådan kraftfuld strømforsyning ikke være billig.

Bemærk, at overskrifterne fra servoen er forbundet til Arduino's PWM -udgange. Der er et symbol ~ ved siden af ​​hver sådan pin på tavlen. Ultralydstrækningssensoren kan tilsluttes pins 6, 7. LED - til pin 13 og jord. Det er alle de stifter, vi har brug for.

Vi kan nu gå videre til programmering af Arduino.

Sørg for at slukke for strømmen, før du slutter kortet via usb til din computer. Når du tester programmet, skal du også slukke for strømmen til din robotarm. Hvis strømmen ikke er slukket, modtager Arduino 5 volt fra usb og 12 volt fra strømforsyningen. Derfor vil strømmen fra usb blive overført til strømkilden, og den vil "synke" lidt.

Ledningsdiagrammet viser, at der er tilføjet potentiometre til at styre servoerne. Potentiometre er valgfri, men ovenstående kode fungerer ikke uden dem. Potentiometre kan tilsluttes stifter 0,1,2,3 og 4.

Programmering og første lancering

Til kontrol bruges 5 potentiometre (det er ganske muligt at erstatte dette med 1 potentiometer og to joysticks). Forbindelsesdiagram med potentiometre er vist i det foregående afsnit. Arduino -skitsen er her.

Nedenfor er flere videoer af en robotarm på arbejde. Jeg håber du kan lide det.

Videoen ovenfor viser de seneste ændringer af armen. Jeg var nødt til at ændre designet lidt og udskifte et par dele. Det viste sig, at futuba s3003 servoer er ret svage. De viste sig kun at blive brugt til at gribe eller dreje hånden. Så mg995 blev installeret. Tja, mg946 vil generelt være en glimrende mulighed.

Kontrolprogram og forklaringer på det

// drev styres af variable modstande - potentiometre.

int potpin = 0; // analog pin til tilslutning af et potentiometer

int val; // variabel til læsning af data fra den analoge pin

myservo1.attach (3);

myservo2.attach (5);

myservo3.attach (9);

myservo4.attach (10);

myservo5.attach (11);

pinMode (led, OUTPUT);

(// servo 1 analog pin 0

val = analogRead (potpin); // læser potentiometerværdien (værdi mellem 0 og 1023)

// skalerer den resulterende værdi til brug med servoer (vi får en værdi i området fra 0 til 180)

myservo1.write (val); // bringer servoen på plads i henhold til den beregnede værdi

forsinkelse (15); // venter på, at servomotoren når den givne position

val = analogRead (potpin1); // servo 2 på analog pin 1

val = kort (val, 0, 1023, 0, 179);

myservo2.write (val);

val = analogRead (potpin2); // servo 3 på analog pin 2

val = kort (val, 0, 1023, 0, 179);

myservo3.write (val);

val = analogRead (potpin3); // servo 4 på analog pin 3

val = kort (val, 0, 1023, 0, 179);

myservo4.write (val);

val = analogRead (potpin4); // servo 5 på analog pin 4

val = kort (val, 0, 1023, 0, 179);

myservo5.write (val);

Skits ved hjælp af en ultralydsafstandssensor

Dette er sandsynligvis en af ​​de mest spektakulære dele af projektet. En afstandssensor er installeret på manipulatoren, som reagerer på forhindringer omkring.

De vigtigste forklaringer på koden er præsenteret nedenfor.

#define trigPin 7

Det næste stykke kode:

Vi har tildelt alle 5 signaler (til 6 drev) navne (kan være alle)

Følge:

Serial.begin (9600);

pinMode (trigPin, OUTPUT);

pinMode (echoPin, INPUT);

pinMode (led, OUTPUT);

myservo1.attach (3);

myservo2.attach (5);

myservo3.attach (9);

myservo4.attach (10);

myservo5.attach (11);

Vi fortæller Arduino -kortet, som stifter LED'erne, servomotorer og afstandssensor til. Der er intet at ændre her.

ugyldig position1 () (

digitalWrite (LED, HIGH);

myservo2.writeMicroseconds (1300);

myservo4.writeMicroseconds (800);

myservo5.writeMicroseconds (1000);

Nogle ting kan ændres her. Jeg indstillede positionen og kaldte den position1. Det vil blive brugt i det videre program. Hvis du vil angive en anden bevægelse, skal du ændre værdierne i parentes fra 0 til 3000.

Efter det:

ugyldig position2 () (

digitalWrite (LED, LOW);

myservo2.writeMicroseconds (1200);

myservo3.writeMicroseconds (1300);

myservo4.writeMicroseconds (1400);

myservo5.writeMicroseconds (2200);

Ligesom det forrige stykke, er det kun i dette tilfælde position2. På samme måde kan du tilføje nye positioner til bevægelse.

lang varighed, afstand;

digitalWrite (trigPin, LOW);

delayMicroseconds (2);

digitalWrite (trigPin, HIGH);

delayMicroseconds (10);

digitalWrite (trigPin, LOW);

varighed = pulsIn (echoPin, HIGH);

afstand = (varighed / 2) / 29,1;

Nu begynder det at udarbejde programmets hovedkode. Ændr det ikke. Hovedformålet med ovenstående linjer er at konfigurere afstandssensoren.

Efter det:

hvis (afstand<= 30) {

hvis (afstand< 10) {

myservo5.writeMicroseconds (2200); // åbn griberen

myservo5.writeMicroseconds (1000); // luk griberen

Nu kan du tilføje nye forskydninger baseret på afstanden målt af ultralydssensoren.

hvis (afstand<=30){ // данная строка обеспечивает переход в position1, если расстояние меньше 30 см.

position1 (); // faktisk vil armen udarbejde alt, hvad du angiver mellem parenteserne ()

ellers (// hvis afstanden er mere end 30 cm, gå til position2

position () 2 // ligner den forrige linje

Du kan ændre afstanden i koden og gøre hvad du vil.

Sidste kodelinjer

hvis (afstand> 30 || afstand<= 0){

Serial.println ("Uden for rækkevidde"); // output i den serielle monitor af meddelelsen om, at vi har overskredet det angivne område

Serial.print (afstand);

Serial.println ("cm"); // afstand i centimeter

forsinkelse (500); // 0,5 sekunders forsinkelse

Selvfølgelig kan du oversætte alt her til millimeter, meter, ændre den viste meddelelse osv. Du kan lege lidt med en forsinkelse.

Det er faktisk alt. Nyd, opgrader dine egne manipulatorer, del ideer og resultater!

Visning af indersiden af ​​håndfladen på den humanoide robot RKP-RH101-3D. Håndfladen af ​​den humanoide robotens hånd er fastspændt med 50%. (se fig. 2).

I dette tilfælde er komplekse bevægelser af hånden på en humanoid robot mulig, men programmering på samme tid bliver mere kompleks, interessant og spændende. På samme tid er det på hver af fingrene i den humanoide robotens hånd muligt at installere forskellige ekstra sensorer og sensorer, der styrer forskellige processer.

Dette er generelt set enheden til manipulatoren RKP-RH101-3D. Hvad angår kompleksiteten af ​​opgaver, der kan løses af denne eller den robot udstyret med forskellige manipulatorer, der erstatter hans hænder, afhænger de stort set af kompleksiteten og perfektionen af ​​kontrolenheden.
Det er sædvanligt at tale om tre generationer af robotter: industrielle, adaptive og robotter med kunstig intelligens. Men uanset hvilken robot der er designet, kan den ikke undvære manipulatorarme til at udføre forskellige opgaver. Links til manipulatoren er bevægelige i forhold til hinanden og kan udføre rotations- og translationelle bevægelser. Nogle gange er manipulatorens sidste led (dens børste) i stedet for bare at få fat i et objekt fra industrielle robotter et slags arbejdsværktøj, for eksempel en boremaskine, skruenøgle, malingssprøjte eller svejsebrænder. I humanoide robotter kan forskellige yderligere miniatureanordninger, f.eks. Til boring, gravering eller tegning, også placeres ved fingerspidserne af deres manipulatorer i form af en pensel.

Generelt billede af en humanoid kamprobot på servoer med hænder RKP-RH101-3D (se fig. 3).