Robotarm manipulator op arduino. Interessante robotarm op Arduino

Hallo giektimes!

UArm-project van uFactory heeft meer dan twee jaar geleden geld ingezameld op kickstarter. Ze zeiden vanaf het begin dat het een open source-project zou worden, maar direct na het einde van het bedrijf hadden ze geen haast om de broncode te uploaden. Ik wilde gewoon het plexiglas snijden volgens hun tekeningen en dat was het, maar aangezien er geen broncodes waren en niet in de nabije toekomst was voorzien, begon ik het ontwerp van de foto's te herhalen.

Mijn robotarm ziet er nu zo uit:

Door langzaam te werken in de loop van twee jaar, slaagde ik erin om vier versies te maken en deed ik behoorlijk wat ervaring op. Beschrijving, projectgeschiedenis en alle projectbestanden zijn te vinden onder de cut.

Vallen en opstaan

Toen ik aan de tekeningen begon te werken, wilde ik uArm niet alleen herhalen, maar ook verbeteren. Het leek me dat het in mijn omstandigheden heel goed mogelijk is om zonder lagers te doen. Ik hield ook niet van het feit dat de elektronica meedraait met de hele manipulator en ik wilde het ontwerp van het onderste deel van het scharnier vereenvoudigen. Bovendien ben ik hem meteen wat kleiner gaan schilderen.

Met deze input heb ik de eerste versie getekend. Helaas heb ik geen foto's bewaard van die versie van de manipulator (die in het geel is gemaakt). De fouten erin waren gewoon episch. Ten eerste was het bijna onmogelijk om het in elkaar te zetten. In de regel waren de mechanica die ik voor de manipulator tekende vrij eenvoudig en hoefde ik niet na te denken over het montageproces. Maar toch, ik heb het in elkaar gezet en geprobeerd het te starten, en de hand bewoog bijna niet! Alle onderdelen draaiden rond de schroeven en als ik ze aandraaide zodat er minder speling was, kon hij niet bewegen. Als ik verzwakte zodat ze kon bewegen, verscheen er een ongelooflijke terugslag. Als gevolg hiervan heeft het concept nog geen drie dagen geleefd. En hij begon te werken aan de tweede versie van de manipulator.

Rood was al behoorlijk fit voor het werk. Hij verzamelde normaal en kon bewegen met smering. Ik heb de software erop kunnen testen, maar toch maakte het gebrek aan lagers en hoge verliezen op verschillende stangen het erg zwak.

Toen gaf ik het werk aan het project een tijdje op, maar nam al snel de beslissing om eraan te denken. Ik besloot om krachtigere en populaire servo's te gebruiken, de maat te vergroten en lagers toe te voegen. En ik besloot dat ik niet zou proberen alles in één keer perfect te maken. Ik schetste de tekeningen haastig, zonder mooie maten te tekenen, en bestelde een snede uit transparant plexiglas. Met behulp van de resulterende manipulator was ik in staat om het assemblageproces te debuggen, plaatsen te identificeren die extra versterking nodig hadden en leerde ik hoe ik lagers moest gebruiken.

Nadat ik genoeg met de transparante manipulator had gespeeld, ging ik aan de slag met blauwdrukken voor de uiteindelijke witte versie. Dus nu zijn alle mechanica volledig gedebugd, het past bij mij en ik ben klaar om te verklaren dat ik niets anders in dit ontwerp wil veranderen:

Ik ben gedeprimeerd door het feit dat ik niets fundamenteel nieuws aan het uArm-project kon toevoegen. Tegen de tijd dat ik begon met het tekenen van de definitieve versie, hadden ze de 3D-modellen al op GrabCad uitgerold. Als gevolg hiervan heb ik de klauw slechts een beetje vereenvoudigd, bestanden in een handig formaat voorbereid en zeer eenvoudige en standaardcomponenten gebruikt.

Kenmerken van de manipulator

Vóór de komst van uArm zagen desktopmanipulators van deze klasse er nogal saai uit. Ofwel hadden ze helemaal geen elektronica, of ze hadden een soort controle met weerstanden, of ze hadden hun eigen propriëtaire software. Ten tweede hadden ze meestal geen systeem van parallelle scharnieren en veranderde de grijper zelf van positie tijdens het gebruik. Als je alle voordelen van mijn manipulator verzamelt, krijg je een vrij lange lijst:
  1. Koppelsysteem om krachtige en zware motoren in de armbasis op te nemen en om de grijper parallel of loodrecht op de basis te houden
  2. Een eenvoudige set componenten die gemakkelijk te kopen of te snijden zijn uit plexiglas
  3. Lagers in bijna alle delen van de manipulator
  4. Eenvoudige montage. Het bleek een hele moeilijke opgave. Het was vooral moeilijk om na te denken over het proces van het monteren van de basis.
  5. De grijppositie kan 90 graden worden gewijzigd
  6. Open source en documentatie. Alles is opgesteld in toegankelijke formaten. Ik zal downloadlinks bieden voor 3D-modellen, snijbestanden, lijst met materialen, elektronica en software
  7. Arduino-compatibiliteit. Er zijn veel tegenstanders van Arduino, maar ik geloof dat het een kans is om het publiek uit te breiden. Professionals kunnen hun software eenvoudig in C schrijven - dit is een reguliere controller van Atmel!

Mechanica

Om te monteren, moet u delen van plexiglas met een dikte van 5 mm uitsnijden:

Ik moest ongeveer $ 10 betalen voor het snijden van al deze onderdelen.

De basis is gemonteerd op een groot lager:

Het was vooral moeilijk om over de fundering na te denken in termen van het bouwproces, maar ik bespioneerde de ingenieurs van uArm. De rockers zitten op een pin met een diameter van 6 mm. Opgemerkt moet worden dat mijn elleboogtrekkracht op een U-vormige houder wordt gehouden, en voor uFactory op een L-vormige houder. Het is moeilijk uit te leggen wat het verschil is, maar ik denk dat ik het beter heb gedaan.

De vangst wordt apart verzameld. Het kan om zijn as draaien. De klauw zelf zit direct op de motoras:

Aan het einde van het artikel zal ik een link geven naar de super-gedetailleerde montage-instructies in foto's. In een paar uur kun je alles vol vertrouwen verdraaien, als alles wat je nodig hebt bij de hand is. Ik heb ook een 3D-model gemaakt in het gratis SketchUp-programma. Je kunt het downloaden, draaien en zien wat en hoe het in elkaar zit.

Elektronica

Het enige dat u hoeft te doen om uw hand aan het werk te krijgen, is vijf servo's op de Arduino aan te sluiten en ze van stroom te voorzien uit een goede bron. UArm heeft een soort feedbackmotoren. Ik heb drie reguliere MG995-motoren en twee kleine metalen tandwielmotoren geleverd om de grijper te besturen.

Hier is mijn verhaal nauw verweven met eerdere projecten. Sinds enige tijd ben ik begonnen met het leren van Arduino-programmeren en voor dit doel heb ik zelfs mijn Arduino-compatibele bord voorbereid. Aan de andere kant heb ik ooit de kans gehad om goedkope boards te maken (waar ik ook over schreef). Uiteindelijk eindigde het allemaal met het feit dat ik mijn eigen Arduino-compatibele bord en een gespecialiseerd schild gebruikte om de manipulator te besturen.

Dit schild is eigenlijk heel eenvoudig. Het heeft vier variabele weerstanden, twee knoppen, vijf servoconnectoren en een voedingsconnector. Dit is erg handig vanuit het oogpunt van foutopsporing. Je kunt een testschets uploaden en een soort macro opnemen voor controle of iets dergelijks. Ik zal aan het einde van het artikel ook een link geven om het PCB-bestand te downloaden, maar het is voorbereid voor productie met gemetalliseerde gaten, dus het is niet erg geschikt voor thuisproductie.

Programmeren

Het meest interessante is de besturing van de manipulator vanaf de computer. UArm heeft een handige applicatie voor manipulatorbesturing en een protocol om ermee te werken. De computer stuurt 11 bytes naar de COM-poort. De eerste is altijd 0xFF, de tweede is 0xAA en een deel van de rest zijn signalen voor servo's. Verder worden deze gegevens genormaliseerd en aan de motoren gegeven om te testen. Ik heb servo's aangesloten op digitale I / O 9-12, maar dit kan eenvoudig worden gewijzigd.

Met het terminalprogramma van uArm kunt u vijf parameters wijzigen terwijl u de muis bestuurt. Door de muis over het oppervlak te bewegen, verandert de positie van de manipulator in het XY-vlak. Het wiel draaien - de hoogte wijzigen. LMB / RMB - knijp / ontspan de klauw. RMB + wiel - grip rotatie. Heel handig eigenlijk. Desgewenst kunt u elke terminalsoftware schrijven die met hetzelfde protocol met de manipulator communiceert.

Ik zal hier geen schetsen geven - je kunt ze aan het einde van het artikel downloaden.

Video van het werk

En tot slot de video van het werk van de manipulator zelf. Het toont de besturing van de muis, weerstanden en een vooraf opgenomen programma.

Links

Bestanden voor het snijden van plexiglas, 3D-modellen, een kooplijst, tekeningen van het bord en software kunnen worden gedownload aan het einde van mijn

Eerst worden algemene zaken besproken, daarna de technische kenmerken van het resultaat, details en tenslotte het montageproces zelf.

In het algemeen en in het algemeen

De creatie van dit apparaat als geheel zou geen problemen moeten opleveren. Het zal nodig zijn om alleen kwalitatief na te denken over de mogelijkheden, die vanuit fysiek oogpunt vrij moeilijk te implementeren zullen zijn, zodat de manipulatorarm de taken uitvoert die eraan zijn toegewezen.

Technische kenmerken van het resultaat

Een monster met lengte / hoogte / breedte parameters, respectievelijk 228/380/160 millimeter zal worden overwogen. Het gemaakte gewicht zal ongeveer 1 kilogram zijn. Voor de bediening wordt een bedrade afstandsbediening gebruikt. Geschatte montagetijd met ervaring is ongeveer 6-8 uur. Als het er niet is, kan het dagen, weken en met de medeweten en maanden duren voordat de manipulatorarm is gemonteerd. Met uw eigen handen en in dergelijke gevallen is het de moeite waard om alleen voor uw eigen belang te doen. Voor de beweging van de componenten worden collectormotoren gebruikt. Met voldoende inspanning maak je een apparaat dat 360 graden kan worden gedraaid. Voor het gemak van het werk moet u naast standaardgereedschap zoals een soldeerbout en soldeer ook een voorraad hebben van:

  1. Tang met lange neus.
  2. Zijsnijders.
  3. Phillips schroevendraaier.
  4. 4x D-batterijen.

De afstandsbediening kan worden gerealiseerd met behulp van knoppen en een microcontroller. Als u een draadloze afstandsbediening wilt maken, heeft u ook een actiebedieningselement nodig in de manipulatorhand. Als toevoegingen zijn alleen apparaten (condensatoren, weerstanden, transistors) nodig die het circuit stabiliseren en op het juiste moment de stroom van de vereiste grootte er doorheen sturen.

Kleine deeltjes

Om het aantal omwentelingen te regelen, kunt u de overgangswielen gebruiken. Hiermee kunt u de beweging van de manipulatorarm soepel maken.

Je moet er ook voor zorgen dat de draden haar beweging niet bemoeilijken. Het is optimaal om ze in de structuur te leggen. U kunt alles van buitenaf doen. Deze aanpak bespaart tijd, maar kan mogelijk leiden tot problemen bij het verplaatsen van afzonderlijke knooppunten of het hele apparaat. En nu: hoe maak je een manipulator?

Montage in het algemeen in

Nu gaan we direct verder met het maken van de manipulatorarm. We beginnen van onderaf. Het apparaat moet in alle richtingen kunnen worden gedraaid. Een goede oplossing zou zijn om het op een schijfplatform te plaatsen, dat met een enkele motor wordt gedraaid. Om het in beide richtingen te kunnen draaien, zijn er twee opties:

  1. Installatie van twee motoren. Elk van hen zal verantwoordelijk zijn voor het draaien in een specifieke richting. Als de een aan het werk is, is de ander in rust.
  2. Eén motor installeren met een circuit dat hem in beide richtingen kan laten draaien.

Welke van de opties u moet kiezen, hangt uitsluitend van u af. Vervolgens wordt de basisconstructie gedaan. Voor het comfort van het werk zijn twee "verbindingen" vereist. Bevestigd aan het platform moet in verschillende richtingen kunnen kantelen, wat wordt opgelost met behulp van motoren die aan de basis zijn geplaatst. Een andere of een paar moet bij de elleboogbocht worden geplaatst, zodat een deel van de greep langs de horizontale en verticale lijnen van het coördinatensysteem kan worden bewogen. Verder, als u maximale mogelijkheden wilt krijgen, kunt u de motor ook op de plaats van de pols installeren. Verder het meest noodzakelijke, zonder welke de manipulatorarm niet voorstelbaar is. Met uw eigen handen moet u het grijpapparaat zelf maken. Er zijn veel mogelijkheden voor implementatie. Je kunt een tip geven over twee van de meest populaire:

  1. Er worden slechts twee vingers gebruikt, die tegelijkertijd het grijpende object samenknijpen en ontgrendelen. Het is de eenvoudigste implementatie, die echter meestal niet kan bogen op een aanzienlijk laadvermogen.
  2. Het prototype van de menselijke hand wordt gecreëerd. Hier kan voor alle vingers één motor worden gebruikt, met behulp waarvan het buigen/ontbuigen zal worden uitgevoerd. Maar je kunt het ontwerp ingewikkelder maken. U kunt dus op elke vinger een motor aansluiten en afzonderlijk bedienen.

Vervolgens moet er nog een afstandsbediening worden gemaakt, met behulp waarvan de individuele motoren en het tempo van hun werk worden beïnvloed. En je kunt experimenten starten met een robotarm die je met je eigen handen hebt gemaakt.

Mogelijke schematische weergaven van het resultaat

Biedt volop mogelijkheden voor creatieve uitvindingen. Daarom worden verschillende implementaties onder uw aandacht gebracht, die als basis kunnen worden genomen om uw eigen apparaat voor een dergelijk doel te maken.

Elk gepresenteerd manipulatorschema kan worden verbeterd.

Conclusie

Belangrijk bij robotica is dat er weinig of geen beperkingen zijn aan functionele verbetering. Daarom, als je wilt, zal het niet moeilijk zijn om een ​​echt kunstwerk te maken. Bij het bespreken van mogelijke manieren van verdere verbetering moet de autolaadkraan worden genoemd. Het zal niet moeilijk zijn om zo'n apparaat met je eigen handen te maken, en tegelijkertijd kun je kinderen laten wennen aan creatief werk, wetenschap en design. En dit kan op zijn beurt een positief effect hebben op hun toekomstige leven. Zal het moeilijk zijn om met je eigen handen een autolaadkraan te maken? Dit is niet zo problematisch als het op het eerste gezicht lijkt. Tenzij het de moeite waard is om te zorgen voor de aanwezigheid van extra kleine onderdelen zoals een kabel en wielen waarlangs het zal draaien.

Heeft een achtergrondverlichting. In totaal werkt de robot op 6 servomotoren. Twee millimeter dik acryl werd gebruikt om het mechanische deel te maken. Om een ​​statief te maken werd een voet van een discobal genomen, met één motor er direct in ingebouwd.

De robot werkt op een Arduino-bord. Als stroombron wordt een computereenheid gebruikt.

Materialen en gereedschappen:
- 6 servomotoren;
- acryl 2 mm dik (en nog een klein stukje 4 mm dik);
- statief (om een ​​basis te creëren);
- ultrasone afstandssensor, type hc-sr04;
- Arduino Uno-controller;
- vermogensregelaar (onafhankelijk vervaardigd);
- voedingseenheid van de computer;
- computer (nodig voor Arduino-programmering);
- draden, gereedschap, enz.



Productieproces:

Stap een. Het mechanische deel van de robot monteren
Het mechanische gedeelte is zeer eenvoudig te monteren. Twee stukken acryl moeten worden verbonden met behulp van een servomotor. De andere twee schakels zijn op dezelfde manier met elkaar verbonden. Wat de grijper betreft, kunt u deze het beste online kopen. Alle elementen zijn bevestigd met schroeven.

De lengte van het eerste deel is ongeveer 19 cm, en het tweede is ongeveer 17,5 cm. De frontschakel is 5,5 cm lang. Wat de rest van de elementen betreft, hun afmetingen worden naar eigen goeddunken gekozen.





De zwenkhoek aan de basis van de mechanische arm moet 180 graden zijn, dus de servomotor moet eronder worden geïnstalleerd. In ons geval moet het in een discobal worden geïnstalleerd. De robot is al op de servomotor geïnstalleerd.

Om de ultrasone sensor te installeren heeft u een stuk acrylaat van 2 cm dik nodig.

Om de grijper te installeren heb je een paar schroeven en een servomotor nodig. U moet de schommelstoel van de servomotor nemen en deze inkorten totdat deze op de grijper past. Vervolgens kunt u de twee kleine schroeven vastdraaien. Na installatie moet de servomotor naar de uiterste linkerpositie worden gedraaid en moeten de grijpbekken bij elkaar worden gebracht.

De servomotor zit nu vast met 4 bouten, het is belangrijk om ervoor te zorgen dat deze in de uiterste linker stand staat en de lippen naar elkaar toegetrokken zijn.
Nu kan de servo op het bord worden aangesloten en controleren of de grijper werkt.








Stap twee. Robotlicht
Om de robot interessanter te maken, kun je hem met achtergrondverlichting maken. Dit wordt gedaan met behulp van LED's van verschillende kleuren.


Stap drie. Het elektronische gedeelte aansluiten
De hoofdcontroller voor de robot is het Arduino-bord. Een computereenheid wordt gebruikt als stroombron, aan de uitgangen moet u een spanning van 5 volt vinden. Het zou moeten zijn als je de spanning op de rode en zwarte draden meet met een multimeter. Deze spanning is nodig om de servomotoren en de afstandssensor van stroom te voorzien. De gele en zwarte draad van het blok geeft al 12 volt af, deze zijn nodig om de Arduino te laten werken.

Voor de servo's moet je vijf connectoren maken. We verbinden 5V met positief en negatief met aarde. De afstandssensor wordt op dezelfde manier aangesloten.

Er is ook een power-LED op het bord. Om deze aan te sluiten, wordt een weerstand van 100 ohm tussen + 5V en aarde gebruikt.










De uitgangen van de servomotoren zijn verbonden met de PWM-uitgangen op de Arduino. Dergelijke pinnen op het bord zijn gemarkeerd met een "~"-pictogram. Wat betreft de ultrasone afstandssensor, deze kan worden aangesloten op pinnen 6 en 7. De LED is verbonden met aarde en pin 13.

Nu kunt u beginnen met programmeren. Zorg ervoor dat de stroom volledig is uitgeschakeld voordat u verbinding maakt via USB. Bij het testen van het programma moet ook de stroom van de robot uitgeschakeld zijn. Als dit niet gebeurt, ontvangt de controller 5V van USB en 12V van de voeding.

In het schema is te zien dat er potentiometers zijn toegevoegd om de servomotoren aan te sturen. Ze zijn geen noodzakelijk onderdeel van de robot, maar zonder hen zal de voorgestelde code niet werken. Potentiometers zijn aangesloten op pinnen 0,1,2,3 en 4.

De schakeling heeft een weerstand R1 die kan worden vervangen door een potentiometer van 100 kΩ. Hiermee kunt u de helderheid handmatig aanpassen. Wat betreft de weerstanden R2 is hun nominale waarde 118 ohm.

Hier is een lijst van de belangrijkste knooppunten die werden gebruikt:
- 7 LED's;
- R2 - 118 ohm weerstand;
- R1 - 100 kΩ weerstand;
- schakelaar;
- fotoweerstand;
- bc547-transistor.

Stap vier. Programmering en eerste lancering van de robot
Om de robot aan te sturen, werden 5 potentiometers gebruikt. Het is goed mogelijk om zo'n schakeling te vervangen door één potmeter en twee joysticks. Hoe u de potentiometer aansluit, werd in de vorige stap getoond. Eenmaal geïnstalleerd, kunnen de robotschetsen worden getest.

Uit de eerste tests van de robot bleek dat de geïnstalleerde servomotoren van het type futuba s3003 zwak bleken voor de robot. Ze kunnen alleen worden gebruikt om de hand te draaien of te grijpen. In plaats daarvan installeerde de auteur mg995-engines. Motoren van het type mg946 zijn ideaal.

We creëren een robotarm met behulp van een afstandsmeter, we implementeren achtergrondverlichting.

We zullen de basis uit acryl snijden. We gebruiken servoaandrijvingen als motoren.

Algemene beschrijving van het robotarmproject

Het project maakt gebruik van 6 servomotoren. Voor het mechanische gedeelte werd acrylaat van 2 mm dik gebruikt. De basis van de discobal was handig als statief (een van de motoren is binnenin gemonteerd). Er wordt ook gebruik gemaakt van een ultrasone afstandssensor en een 10 mm LED.

Een Arduino-voedingskaart wordt gebruikt om de robot te besturen. De stroombron zelf is de stroomvoorziening van de computer.

Het project geeft uitgebreide uitleg over de ontwikkeling van een robotarm. De voedingsaspecten van het ontwikkelde ontwerp worden afzonderlijk beschouwd.

Basisknooppunten voor een manipulatorproject

Laten we beginnen met ontwikkelen. Je zal nodig hebben:

  • 6 servomotoren (ik gebruikte 2 mg946-modellen, 2 mg995, 2 futuba s3003 (mg995 / mg946 presteren beter dan futuba s3003, maar de laatste zijn veel goedkoper);
  • acryl 2 mm dik (en een klein stukje 4 mm dik);
  • ultrasone afstandssensor hc-sr04;
  • LED's 10 mm (kleur - naar keuze);
  • statief (gebruikt als basis);
  • aluminium grijper (kost ongeveer 10-15 dollar).

Voor rijden:

  • Arduino Uno-bord (het project maakt gebruik van een zelfgemaakt bord, dat volledig lijkt op de Arduino);
  • power board (u zult het zelf moeten maken, we komen later op dit probleem terug, het vereist speciale aandacht);
  • voedingseenheid (in dit geval wordt een computervoedingseenheid gebruikt);
  • een computer om je manipulator te programmeren (als je Arduino gebruikt om te programmeren, dan de Arduino IDE)

Natuurlijk komen kabels en wat basisgereedschap zoals schroevendraaiers en dergelijke van pas. We kunnen nu verder met ontwerpen.

Mechanische montage

Voordat we beginnen met de ontwikkeling van het mechanische deel van de manipulator, is het vermeldenswaard dat ik geen tekeningen heb. Alle knopen werden "op de knie" gemaakt. Maar het principe is heel eenvoudig. Je hebt twee acryl schakels met daartussen servomotoren. En de andere twee links. Ook voor het inbouwen van motoren. Nou ja, de greep zelf. De eenvoudigste manier om zo'n grijper te kopen, is door hem op internet te kopen. Bijna alles wordt met schroeven gemonteerd.

De lengte van het eerste deel is ongeveer 19 cm; de tweede is ongeveer 17,5; de lengte van de frontschakel is ongeveer 5,5 cm Kies de andere afmetingen volgens de afmetingen van uw project. In principe zijn de afmetingen van de overige knooppunten niet zo belangrijk.

De mechanische arm moet aan de basis 180 graden kunnen draaien. Dus we moeten de servomotor eronder installeren. In dit geval wordt deze in dezelfde discobal geïnstalleerd. In jouw geval kan dit elke geschikte doos zijn. Op deze servomotor is de robot gemonteerd. Het is mogelijk, zoals weergegeven in de afbeelding, om een ​​extra metalen flensring te installeren. Je kunt zonder.

Om de ultrasone sensor te installeren, wordt 2 mm dik acryl gebruikt. Een LED kan ook van onderaf worden gemonteerd.

Het is moeilijk om in detail uit te leggen hoe een dergelijke manipulator precies moet worden gebouwd. Veel hangt af van de units en onderdelen die u op voorraad heeft of inkoopt. Als de afmetingen van uw servo's bijvoorbeeld anders zijn, veranderen ook de acrylarmschakels. Als de afmetingen veranderen, zal ook de kalibratie van de arm anders zijn.

Na het mechanisch ontwerp van de manipulator, zul je zeker de kabels van de servomotoren moeten verlengen. Voor deze doeleinden zijn in dit project draden van een internetkabel gebruikt. Om dit er allemaal uit te laten zien, wees niet lui en installeer adapters aan de vrije uiteinden van de verlengde kabels - mama of papa, afhankelijk van de uitgangen van je Arduino-bord, schild of voeding.

Na het assembleren van het mechanische deel, kunnen we doorgaan naar de "hersenen" van onze manipulator.

De manipulator grijpen

Om de grijper te installeren heb je een servomotor en een paar schroeven nodig.

Dus wat er precies moet gebeuren.

Neem de servo-tuimelschakelaar en verkort deze totdat deze in uw grijper past. Draai vervolgens de twee kleine schroeven vast.

Na het installeren van de servo, draait u deze naar de uiterst linkse positie en knijpt u in de grijperbekken.

De servo kan nu op de 4 bouten worden gemonteerd. Zorg er tegelijkertijd voor dat de motor nog steeds in de uiterste linkerpositie staat en dat de grijperbekken gesloten zijn.

Je kunt de servo op het Arduino-bord aansluiten en controleren of de grijper werkt.

Houd er rekening mee dat er problemen kunnen optreden met de prestaties van de grijper als de bouten / schroeven te vast worden aangedraaid.

Markering toevoegen aan een manipulator

U kunt uw project opfleuren door er verlichting aan toe te voegen. Hiervoor werden leds gebruikt. Het is gemakkelijk te doen, maar in het donker ziet het er erg indrukwekkend uit.

Waar u LED's installeert, hangt af van uw creativiteit en verbeeldingskracht.

Schakelschema

Voor handmatig dimmen kunt u een 100K potentiometer gebruiken in plaats van R1. Als weerstand R2 werden weerstanden van 118 Ohm gebruikt.

Een lijst van de belangrijkste eenheden die werden gebruikt:

  • R1 - 100 kΩ weerstand
  • R2 - 118 ohm weerstand
  • BC547 bipolaire transistor
  • Fotoweerstand
  • 7 LED's
  • Schakelaar
  • Verbinding maken met Arduino-bord

Als microcontroller werd een Arduino-bord gebruikt. Als voeding werd een voedingseenheid van een personal computer gebruikt. Door de multimeter aan te sluiten op de rode en zwarte kabels, zie je 5 volt (die worden gebruikt voor servomotoren en ultrasone afstandssensor). Geel en zwart geven je 12 volt (voor Arduino). We maken 5 connectoren voor de servomotoren, parallel verbinden we de positieve met 5 V en de negatieve met de grond. Zo ook met de afstandssensor.

Sluit daarna de resterende connectoren (één van elke servo en twee van de afstandsmeter) aan op het bord dat we hebben gesoldeerd en de Arduino. Vergeet in dit geval niet om de pinnen die u in de toekomst in het programma hebt gebruikt correct aan te geven.

Daarnaast is er een power-LED op het powerboard geïnstalleerd. Dit is niet moeilijk uit te voeren. Bovendien werd een weerstand van 100 ohm gebruikt tussen 5 V en aarde.

De 10 mm LED op de robot is ook verbonden met de Arduino. De weerstand van 100 ohm loopt van pin 13 naar het positieve been van de LED. Negatief - op de grond. Het kan worden uitgeschakeld in het programma.

Voor 6 servomotoren worden 6 connectoren gebruikt, aangezien de 2 servomotoren aan de onderkant hetzelfde stuursignaal delen. De bijbehorende geleiders zijn verbonden en verbonden met één pin.

Ik herhaal dat een voeding van een personal computer als voeding wordt gebruikt. Of u kunt natuurlijk een losse voeding aanschaffen. Maar gezien het feit dat we 6 schijven hebben, die elk ongeveer 2 A kunnen verbruiken, zal zo'n krachtige voeding niet goedkoop zijn.

Merk op dat de headers van de servo zijn aangesloten op de PWM-uitgangen van de Arduino. Er is een symbool ~ naast elke dergelijke pin op het bord. De ultrasone reksensor kan worden aangesloten op pin 6, 7. LED - op pin 13 en massa. Dit zijn alle pinnen die we nodig hebben.

We kunnen nu verder gaan met het programmeren van de Arduino.

Zorg ervoor dat u de stroom uitschakelt voordat u het bord via usb op uw computer aansluit. Schakel bij het testen van het programma ook de stroom naar uw robotarm uit. Als de stroom niet is uitgeschakeld, ontvangt de Arduino 5 volt van de usb en 12 volt van de voeding. Dienovereenkomstig wordt de stroom van usb overgebracht naar de stroombron en zal deze een beetje "zinken".

Uit het aansluitschema blijkt dat er potmeters zijn toegevoegd om de servo's aan te sturen. Potentiometers zijn optioneel, maar de bovenstaande code werkt niet zonder hen. Potentiometers kunnen worden aangesloten op pinnen 0,1,2,3 en 4.

Programmering en eerste lancering

Voor de besturing worden 5 potmeters gebruikt (het is goed mogelijk deze te vervangen door 1 potmeter en twee joysticks). Aansluitschema met potentiometers is weergegeven in het vorige gedeelte. De Arduino-schets is hier.

Hieronder staan ​​verschillende video's van de robotarm aan het werk. Ik hoop dat je zult genieten.

De video hierboven toont de laatste aanpassingen van de arm. Ik moest het ontwerp een beetje veranderen en verschillende onderdelen vervangen. Het bleek dat de futuba s3003-servo's nogal zwak zijn. Ze bleken alleen te worden gebruikt voor het grijpen of draaien van de hand. Dus mg995 is geïnstalleerd. Welnu, de mg946 zal over het algemeen een uitstekende optie zijn.

Besturingsprogramma en uitleg erbij

// aandrijvingen worden bestuurd door variabele weerstanden - potentiometers.

int potpin = 0; // analoge pin voor het aansluiten van een potentiometer

int val; // variabele voor het lezen van gegevens van de analoge pin

mijnservo1.attach (3);

myservo2.attach (5);

myservo3.attach (9);

myservo4.attach (10);

myservo5.attach (11);

pinMode (led, UITGANG);

(// servo 1 analoge pin 0

val = analoog lezen (potpin); // leest de potentiometerwaarde uit (waarde tussen 0 en 1023)

// schaalt de resulterende waarde voor gebruik met servo's (we krijgen een waarde in het bereik van 0 tot 180)

myservo1.write (val); // brengt de servo naar de positie volgens de berekende waarde

vertraging (15); // wacht tot de servomotor de opgegeven positie bereikt

val = analoog lezen (potpin1); // servo 2 op analoge pin 1

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

myservo2.write (val);

val = analoog lezen (potpin2); // servo 3 op analoge pin 2

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

myservo3.write (val);

val = analoog lezen (potpin3); // servo 4 op analoge pin 3

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

myservo4.write (val);

val = analoog lezen (potpin4); // servo 5 op analoge pin 4

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

myservo5.write (val);

Schets met behulp van een ultrasone afstandssensor

Dit is waarschijnlijk een van de meest spectaculaire onderdelen van het project. Op de manipulator is een afstandssensor geïnstalleerd, die reageert op obstakels in de buurt.

De belangrijkste verklaringen voor de code worden hieronder weergegeven.

#define trigPin 7

Het volgende stukje code:

We hebben alle 5 signalen (voor 6 stations) namen toegewezen (kan elk zijn)

Als vervolg op:

Serieel.begin (9600);

pinMode (trigPin, UITGANG);

pinMode (echoPin, INPUT);

pinMode (led, UITGANG);

mijnservo1.attach (3);

myservo2.attach (5);

myservo3.attach (9);

myservo4.attach (10);

myservo5.attach (11);

We vertellen het Arduino-bord op welke pinnen de LED's, servomotoren en afstandssensor zijn aangesloten. Hier valt niets te veranderen.

ongeldige positie1 () (

digitalWrite (led, HOOG);

myservo2.writeMicroseconden (1300);

myservo4.writeMicroseconden (800);

myservo5.writeMicroseconden (1000);

Hier kunnen een aantal zaken gewijzigd worden. Ik heb de positie ingesteld en deze position1 genoemd. Het zal worden gebruikt in het verdere programma. Als u een andere beweging wilt geven, wijzigt u de waarden tussen haakjes van 0 in 3000.

Daarna:

ongeldige positie2 () (

digitalWrite (led, LAAG);

myservo2.writeMicroseconden (1200);

myservo3.writeMicroseconden (1300);

myservo4.writeMicroseconden (1400);

myservo5.writeMicroseconden (2200);

Net als bij het vorige stuk, alleen in dit geval is het positie2. Op dezelfde manier kunt u nieuwe bewegingsposities toevoegen.

lange duur, afstand;

digitalWrite (trigPin, LAAG);

vertragingMicroseconden (2);

digitalWrite (trigPin, HOOG);

vertraging Microseconden (10);

digitalWrite (trigPin, LAAG);

duur = pulseIn (echoPin, HOOG);

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

Nu begint het de hoofdprogrammacode uit te werken. Verander het niet. Het belangrijkste doel van de bovenstaande regels is om de afstandssensor te configureren.

Daarna:

als (afstand<= 30) {

als (afstand< 10) {

myservo5.writeMicroseconden (2200); // open de grijper

myservo5.writeMicroseconden (1000); // sluit de grijper

Nu kunt u nieuwe verplaatsingen toevoegen op basis van de afstand gemeten door de ultrasone transducer.

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

positie1 (); // in feite zal de arm alles uitwerken wat je opgeeft tussen de haakjes ()

anders (// als de afstand meer dan 30 cm is, ga naar positie2

positie () 2 // vergelijkbaar met de vorige regel

U kunt de afstand in de code wijzigen en doen wat u wilt.

Laatste regels code

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

Serial.println ("Buiten bereik"); // output in de seriële monitor van het bericht dat we het opgegeven bereik hebben overschreden

Serieafdruk (afstand);

Serial.println ("cm"); // afstand in centimeters

vertraging (500); // 0,5 seconde vertraging

Natuurlijk kun je hier alles vertalen in millimeters, meters, de weergegeven melding wijzigen, etc. Je kunt een beetje spelen met een vertraging.

Dat is alles, eigenlijk. Geniet, upgrade je eigen manipulatoren, deel ideeën en resultaten!

Zicht op de binnenkant van de palm van de humanoïde robot RKP-RH101-3D. De palm van de hand van de humanoïde robot is op 50% geklemd. (zie afb. 2).

In dit geval zijn complexe bewegingen van de hand van een humanoïde robot mogelijk, maar wordt het programmeren tegelijkertijd complexer, interessanter en spannender. Tegelijkertijd is het op elk van de vingers van de hand van de humanoïde robot mogelijk om verschillende extra sensoren en sensoren te installeren die verschillende processen besturen.

Dit is in grote lijnen het apparaat van de manipulator RKP-RH101-3D. Wat betreft de complexiteit van taken die kunnen worden opgelost door deze of gene robot die is uitgerust met verschillende manipulatoren die zijn handen vervangen, deze hangen grotendeels af van de complexiteit en perfectie van het besturingsapparaat.
Het is gebruikelijk om te praten over drie generaties robots: industrieel, adaptief en robots met kunstmatige intelligentie. Maar welke robot ook is ontworpen, hij kan niet zonder manipulatorarmen om verschillende taken uit te voeren. De schakels van de manipulator zijn beweegbaar ten opzichte van elkaar en kunnen rotatie- en translatiebewegingen uitvoeren. Soms, in plaats van simpelweg een object van industriële robots te pakken, is de laatste schakel van de manipulator (zijn borstel) een soort werkinstrument, bijvoorbeeld een boor, moersleutel, verfspuit of lastoorts. In humanoïde robots kunnen ook verschillende extra miniatuurapparaten, bijvoorbeeld voor boren, graveren of tekenen, in de vorm van een borstel binnen de vingertoppen van hun manipulatoren worden geplaatst.

Algemeen beeld van RKP-RH101-3D servo-aangedreven humanoïde gevechtsrobot met handen (zie Fig. 3).