Inhoudsopgave:

Arduino bestuurde robot tweevoeter - Ajarnpa
Arduino bestuurde robot tweevoeter - Ajarnpa

Video: Arduino bestuurde robot tweevoeter - Ajarnpa

Video: Arduino bestuurde robot tweevoeter - Ajarnpa
Video: Заставьте роботов Arduino избегать препятствий с помощью драйвера L293D 2024, November
Anonim
Image
Image
Arduino bestuurde robot tweevoeter
Arduino bestuurde robot tweevoeter
Arduino bestuurde robot tweevoeter
Arduino bestuurde robot tweevoeter

Fusion 360-projecten »

Ik ben altijd geïntrigeerd geweest door robots, vooral het soort dat menselijke acties probeert na te bootsen. Deze interesse bracht me ertoe om te proberen een tweevoetige robot te ontwerpen en te ontwikkelen die het lopen en rennen van mensen kon nabootsen. In deze Instructable zal ik je het ontwerp en de montage van de robotachtige tweevoeter laten zien.

Het primaire doel bij het bouwen van dit project was om het systeem zo robuust mogelijk te maken, zodat ik tijdens het experimenteren met verschillende loop- en hardloopgangen me niet constant zorgen hoefde te maken over het falen van de hardware. Hierdoor kon ik de hardware tot het uiterste drijven. Een secundair doel was om de tweevoeter relatief goedkoop te maken met behulp van gemakkelijk verkrijgbare hobby-onderdelen en 3D-printen, waardoor er ruimte was voor verdere upgrades en uitbreidingen. Deze twee doelen gecombineerd bieden een solide basis om verschillende experimenten uit te voeren, waardoor men de tweevoeter kan ontwikkelen naar meer specifieke vereisten.

Ga verder om je eigen Arduino-gestuurde Robotic Biped te maken en laat een stem achter in de "Arduino-wedstrijd" als je het project leuk vond.

Stap 1: Ontwerpproces

Ontwerpproces
Ontwerpproces
Ontwerpproces
Ontwerpproces
Ontwerpproces
Ontwerpproces

De humanoïde poten zijn ontworpen in de gratis te gebruiken Fusion 360 3D-modelleringssoftware van Autodesk. Ik begon met het importeren van de servomotoren in het ontwerp en bouwde de poten eromheen. Ik ontwierp beugels voor de servomotor die een tweede draaipunt biedt diametraal tegenover de as van de servomotor. Het hebben van dubbele assen aan beide uiteinden van de motor geeft structurele stabiliteit aan het ontwerp en elimineert het scheeftrekken dat kan optreden wanneer de poten worden gemaakt om enige belasting op te nemen. De schakels waren ontworpen om een lager vast te houden, terwijl de beugels een bout voor de as gebruikten. Nadat de schakels met een moer op de assen waren gemonteerd, zou het lager een soepel en robuust draaipunt bieden aan de andere kant van de as van de servomotor.

Een ander doel bij het ontwerpen van de tweevoeter was om het model zo compact mogelijk te houden om maximaal gebruik te maken van het koppel dat door de servomotoren wordt geleverd. De afmetingen van de schakels zijn gemaakt om een groot bewegingsbereik te bereiken terwijl de totale lengte tot een minimum wordt beperkt. Door ze te kort te maken, zouden de beugels botsen, waardoor het bewegingsbereik wordt verminderd, en als ze te lang zouden zijn, zou er onnodig koppel op de actuatoren worden uitgeoefend. Ten slotte ontwierp ik het lichaam van de robot waarop de Arduino en andere elektronische componenten zouden worden gemonteerd.

Opmerking: De onderdelen zijn inbegrepen in een van de volgende stappen.

Stap 2: De rol van de Arduino

De rol van de Arduino
De rol van de Arduino

In dit project werd een Arduino Uno gebruikt. De Arduino was verantwoordelijk voor het berekenen van de bewegingspaden van de verschillende gangen die werden getest en instrueerde de actuatoren om met precieze snelheden in precieze hoeken te bewegen om een soepele loopbeweging te creëren. Een Arduino is een uitstekende keuze voor het ontwikkelen van projecten vanwege zijn veelzijdigheid. Het biedt een aantal IO-pinnen en biedt ook interfaces zoals serieel, I2C en SPI om te communiceren met andere microcontrollers en sensoren. De Arduino biedt ook een geweldig platform voor snelle prototyping en testen en geeft ontwikkelaars ook ruimte voor verbeteringen en uitbreidbaarheid. In dit project zullen verdere versies een traagheidsmeeteenheid bevatten voor bewegingsverwerking zoals valdetectie en dynamische voortbeweging in oneffen terrein en een afstandsmeetsensor om obstakels te vermijden.

Voor dit project werd de Arduino IDE gebruikt. (Arduino biedt ook een webgebaseerde IDE)

Opmerking: De programma's voor de robot kunnen worden gedownload via een van de volgende stappen.

Stap 3: Benodigde materialen

Benodigde materialen
Benodigde materialen
Benodigde materialen
Benodigde materialen
Benodigde materialen
Benodigde materialen
Benodigde materialen
Benodigde materialen

Hier is de lijst met alle componenten en onderdelen die nodig zijn om uw eigen Arduino-aangedreven tweevoetige robot te maken. Alle onderdelen moeten algemeen verkrijgbaar en gemakkelijk te vinden zijn.

ELEKTRONICA:

Arduino Uno x 1

Towerpro MG995 servomotor x 6

Perfboard (vergelijkbare grootte als de Arduino)

Mannelijke en vrouwelijke koppennen (ongeveer 20 van elk)

Doorverbindingsdraden (10 stuks)

MPU6050 IMU (optioneel)

Ultrasone sensor (optioneel)

HARDWARE:

Skateboardlager (8x19x7mm)

M4 moeren en bouten

3D-printerfilament (voor het geval u geen 3D-printer bezit, moet er een 3D-printer in een lokale werkruimte zijn of kunnen de afdrukken voor vrij goedkoop online worden gedaan)

Exclusief de Arduino en 3D-printer bedragen de totale kosten van dit project $ 20.

Stap 4: 3D-geprinte onderdelen

3D-geprinte onderdelen
3D-geprinte onderdelen
3D-geprinte onderdelen
3D-geprinte onderdelen
3D-geprinte onderdelen
3D-geprinte onderdelen
3D-geprinte onderdelen
3D-geprinte onderdelen

De onderdelen die nodig waren voor dit project moesten op maat worden ontworpen, daarom werd een 3D-printer gebruikt om ze af te drukken. De prints zijn gemaakt met 40% vulling, 2 omtrekken, 0,4 mm mondstuk en een laaghoogte van 0,1 mm met PLA, kleur naar keuze. Hieronder vindt u de complete lijst met onderdelen en de STL's om uw eigen versie te printen.

Opmerking: vanaf hier wordt naar de onderdelen verwezen met de namen in de lijst.

  • voet servo houder x 1
  • voet servo houder spiegel x 1
  • knie servo houder x 1"
  • knie servo houder spiegel x 1"
  • voet servo houder x 1
  • voet servo houder spiegel x 1
  • dragende verbinding x 2
  • servo hoorn link x 2"
  • voet link x 2
  • brug x 1
  • elektronica montage x 1
  • elektronica spacer x 8 (optioneel)
  • servohoorn ruimte x 12 (optioneel)

In totaal, exclusief de afstandhouders, zijn er 14 onderdelen. De totale afdruktijd is ongeveer 20 uur.

Stap 5: De servobeugels voorbereiden

De servobeugels voorbereiden
De servobeugels voorbereiden
De servobeugels voorbereiden
De servobeugels voorbereiden
De servobeugels voorbereiden
De servobeugels voorbereiden

Zodra alle onderdelen zijn afgedrukt, kunt u beginnen met het instellen van de servo's en de servobeugels. Druk eerst een lager in de knieservohouder. De pasvorm moet goed aansluiten, maar ik zou aanraden om het binnenoppervlak van het gat een beetje te schuren in plaats van het lager te forceren, waardoor het onderdeel kan breken. Steek vervolgens een M4-bout door het gat en draai deze vast met een moer. Pak vervolgens de voetschakel en bevestig er een cirkelvormige servohoorn aan met behulp van de meegeleverde schroeven. Bevestig de voetverbinding aan de knieservohouder met behulp van de schroeven die u zult gebruiken om ook de servomotor te bevestigen. Zorg ervoor dat u de motor zo uitlijnt dat de as zich aan dezelfde kant van de bout bevindt die u eerder had bevestigd. Zet tenslotte de servo vast met de rest van de moeren en bouten.

Doe hetzelfde met de heupservohouder en voetservohouder. Hiermee zou u drie servomotoren en hun bijbehorende beugels moeten hebben.

Opmerking: ik geef instructies voor het bouwen van één been, het andere is gewoon gespiegeld.

Stap 6: Het maken van de Link Pieces

De linkstukken maken
De linkstukken maken
De linkstukken maken
De linkstukken maken
De linkstukken maken
De linkstukken maken

Zodra de beugels zijn gemonteerd, begint u met het maken van de schakels. Om de lagerverbinding te maken, schuurt u het binnenoppervlak van de gaten voor het lager nogmaals lichtjes en duwt u het lager vervolgens aan beide zijden in het gat. Zorg ervoor dat u het lager naar binnen duwt totdat één kant gelijk ligt. Om de servohoornverbinding te bouwen, pak je twee cirkelvormige servohoorns en de meegeleverde schroeven. Plaats de hoorns op de 3D-print en lijn de gaten uit, schroef vervolgens de hoorn op de 3D-print door de schroef vanaf de 3D-printzijde te bevestigen. Ik raad aan om voor deze schroeven een 3D-geprinte servohoornafstandhouder te gebruiken. Zodra de schakels zijn gebouwd, kunt u beginnen met het monteren van de poot.

Stap 7: Montage van de poten

De poten monteren
De poten monteren
De poten monteren
De poten monteren
De poten monteren
De poten monteren
De poten monteren
De poten monteren

Zodra de schakels en beugels zijn gemonteerd, kunt u ze combineren om de poot van de robot te bouwen. Gebruik eerst de servohoornverbinding om de heupservobeugel en de knieservobeugel aan elkaar te bevestigen. Opmerking: schroef de hoorn nog niet op de servo, want er is een instellingsfase in de volgende fase en het zal een ongemak zijn als de hoorn op de servomotor wordt geschroefd.

Monteer aan de andere kant de lagerschakel met moeren op de uitstekende bouten. Bevestig tenslotte de voetservobeugel door de uitstekende bout door het lager op de knieservohouder te steken. En bevestig de servo-as aan de servohoorn die aan de andere kant is aangesloten op de knieservohouder. Dit kan een lastige taak zijn en ik zou hiervoor een tweede paar handen aanraden.

Herhaal de stappen voor het andere been. Gebruik de afbeeldingen bij elke stap als referentie.

Stap 8: Aangepaste PCB en bedrading

Aangepaste PCB en bedrading
Aangepaste PCB en bedrading
Aangepaste PCB en bedrading
Aangepaste PCB en bedrading
Aangepaste PCB en bedrading
Aangepaste PCB en bedrading

Dit is een optionele stap. Om de bedrading netter te maken, besloot ik een aangepaste PCB te maken met behulp van perf-board en header-pinnen. De print bevat poorten om de servomotordraden direct aan te sluiten. Daarnaast heb ik ook extra poorten gelaten voor het geval ik wilde uitbreiden en andere sensoren zoals Inertial Measurement Units of ultrasone afstandssensoren wilde toevoegen. Het bevat ook een poort voor de externe stroombron die nodig is om de servomotoren van stroom te voorzien. Een jumperverbinding wordt gebruikt om te schakelen tussen USB en externe voeding voor de Arduino. Monteer de Arduino en PCB aan weerszijden van de elektronicahouder met behulp van schroeven en de 3D-geprinte afstandhouders.

Opmerking: zorg ervoor dat u de jumper loskoppelt voordat u de Arduino via USB op uw computer aansluit. Als u dit niet doet, kan dit leiden tot beschadiging van de Arduino.

Als u besluit de PCB niet te gebruiken en in plaats daarvan een breadboard te gebruiken, zijn hier de servo-aansluitingen:

  • Linker heup >> pin 9
  • Rechter heup >> pin 8
  • Linker knie >> pin 7
  • Rechter knie >> pin 6
  • Linkervoet >> pin 5
  • Rechtervoet >> pin 4

Als u besluit om de PCB te maken, volg dan dezelfde volgorde als hierboven door de poorten op de PCB van rechts naar links te gebruiken met de IMU-poort naar boven gericht. En gebruik gewone mannelijke naar vrouwelijke jumperdraden om de PCB op de Arduino aan te sluiten met behulp van de bovenstaande pinnummers. Zorg ervoor dat u ook de aardingspin aansluit en hetzelfde aardingspotentieel en Vin-pin maakt voor wanneer u besluit om het zonder USB-stroom te gebruiken.

Stap 9: Het lichaam monteren

Het lichaam in elkaar zetten
Het lichaam in elkaar zetten
Het lichaam in elkaar zetten
Het lichaam in elkaar zetten
Het lichaam in elkaar zetten
Het lichaam in elkaar zetten

Zodra de twee poten en de elektronica zijn gemonteerd, combineert u ze samen om het robotlichaam te bouwen. Gebruik het brugstuk om de twee poten met elkaar te verbinden. Gebruik dezelfde montagegaten op de heupservohouder en bouten en moeren die de servomotor vasthouden. Sluit tot slot de elektronicahouder aan op de brug. Lijn de gaten op de brug en de elektronicabevestiging uit en gebruik M4-moeren en -bouten om de verbinding te maken.

Raadpleeg de bijgevoegde afbeeldingen voor hulp. Hiermee heb je de hardware-build van de robot voltooid. Laten we vervolgens in de software springen en de robot tot leven brengen.

Stap 10: Initiële installatie

Initiële installatie
Initiële installatie
Initiële installatie
Initiële installatie
Initiële installatie
Initiële installatie

Wat me is opgevallen tijdens het bouwen van dit project, is dat de servomotoren en de hoorns niet perfect hoeven uit te lijnen om relatief parallel te blijven. Dit is de reden waarom de "centrale positie" van elke servomotor handmatig moet worden aangepast om uit te lijnen met de poten. Om dit te bereiken, verwijdert u de servohoorns van elke servo en voert u de schets initial_setup.ino uit. Zodra de motoren zich in hun centrale positie bevinden, bevestigt u de hoorns opnieuw zodat de benen perfect recht zijn en de voet perfect evenwijdig aan de grond. Als dit het geval is, heb je geluk. Als dat niet het geval is, opent u het bestand constants.h op het aangrenzende tabblad en wijzigt u de servo-offsetwaarden (regels 1-6) totdat de benen perfect zijn uitgelijnd en de voet plat is. Speel wat met de waarden en je krijgt een idee van wat er in jouw geval nodig is.

Nadat de constanten zijn ingesteld, noteert u deze waarden, omdat u ze later nodig zult hebben.

Raadpleeg de afbeeldingen voor hulp.

Stap 11: Een beetje over de kinematica

Een beetje over de kinematica
Een beetje over de kinematica
Een beetje over de kinematica
Een beetje over de kinematica
Een beetje over de kinematica
Een beetje over de kinematica

Om de tweevoeter nuttige handelingen zoals rennen en lopen te laten uitvoeren, moeten de verschillende gangen worden geprogrammeerd in de vorm van bewegingspaden. Bewegingspaden zijn paden waarlangs de eindeffector (in dit geval de voeten) zich voortbeweegt. Er zijn twee manieren om dit te bereiken:

  1. Een benadering zou zijn om de verbindingshoeken van de verschillende motoren op een brute manier te voeden. Deze aanpak kan tijdrovend, vervelend en ook vol fouten zijn, aangezien de beoordeling puur visueel is. In plaats daarvan is er een slimmere manier om de gewenste resultaten te bereiken.
  2. De tweede benadering draait om het invoeren van de coördinaten van de eindeffector in plaats van alle gewrichtshoeken. Dit is wat bekend staat als inverse kinematica. De gebruiker voert coördinaten in en de gewrichtshoeken worden aangepast om de eindeffector op de opgegeven coördinaten te positioneren. Deze methode kan worden beschouwd als een zwarte doos die een coördinaat invoert en de verbindingshoeken uitvoert. Voor degenen die geïnteresseerd zijn in hoe de trigonometrische vergelijkingen van deze zwarte doos zijn ontwikkeld, kunnen het bovenstaande diagram bekijken. Voor degenen die niet geïnteresseerd zijn, de vergelijkingen zijn al geprogrammeerd en kunnen worden gebruikt met behulp van de pos-functie die als invoer x, z neemt en drie hoeken uitvoert die overeenkomen met de motoren.

Het programma met deze functies vindt u in de volgende stap.

Stap 12: Programmeren van de Arduino

De Arduino programmeren
De Arduino programmeren
De Arduino programmeren
De Arduino programmeren

Voordat u de Arduino programmeert, moeten er kleine wijzigingen in het bestand worden aangebracht. Weet je nog de constanten die ik je had gevraagd om een aantekening te maken? Wijzig dezelfde constanten in de waarden die u in het bestand constants.h hebt ingesteld.

Opmerking: als u de ontwerpen in deze Instructable hebt gebruikt, hoeft u niets te veranderen. In het geval dat sommigen van u hun eigen ontwerpen hebben gemaakt, moet u naast de offsets nog een paar waarden wijzigen. De constante l1 meet de afstand tussen het heupscharnier en het kniescharnier. De constante l2 meet de afstand tussen het kniescharnier en het enkelscharnier. Dus als je je eigen model hebt ontworpen, meet dan deze lengtes en pas de constanten aan. De laatste twee constanten worden gebruikt voor de gangen. De constante stepClearance meet hoe hoog de voet zal worden opgetild bij het naar voren komen na een stap en de constante stepHeight meet de hoogte van de grond tot de heup tijdens het nemen van stappen.

Zodra alle constanten zijn aangepast aan uw behoefte, kunt u het hoofdprogramma uploaden. Het hoofdprogramma initialiseert de robot eenvoudig in een lopende houding en begint stappen vooruit te zetten. De functies kunnen worden aangepast aan uw behoefte om de verschillende gangen, snelheden en staplengtes te verkennen om te zien wat het beste werkt.

Stap 13: Eindresultaten: tijd om te experimenteren

Eindresultaten: tijd om te experimenteren
Eindresultaten: tijd om te experimenteren
Eindresultaten: tijd om te experimenteren
Eindresultaten: tijd om te experimenteren
Eindresultaten: tijd om te experimenteren
Eindresultaten: tijd om te experimenteren

De tweevoeter kan stappen zetten die variëren van 10 tot 2 cm lang zonder te kantelen. Ook de snelheid kan gevarieerd worden terwijl de gang in balans blijft. Deze tweevoeter in combinatie met de kracht van de Arduino biedt een robuust platform om te experimenteren met verschillende andere gangen en andere doelen, zoals springen of balanceren tijdens het trappen van een bal. Ik zou je aanraden om te proberen de bewegingspaden van de benen te veranderen om je eigen gangen te creëren en te ontdekken hoe verschillende gangen de prestaties van de robot beïnvloeden. Sensoren zoals een IMU en afstandssensor kunnen aan het systeem worden toegevoegd om de functionaliteiten te vergroten, terwijl krachtsensoren aan de benen kunnen worden toegevoegd om te experimenteren met dynamische voortbeweging op oneffen oppervlakken.

Ik hoop dat je genoten hebt van deze Instructable en genoeg inspiratie hebt om je eigen te bouwen. Als je het project leuk vond, steun het dan door te stemmen in de "Arduino-wedstrijd".

Veel plezier met maken!

Arduino-wedstrijd 2020
Arduino-wedstrijd 2020
Arduino-wedstrijd 2020
Arduino-wedstrijd 2020

Eerste prijs in de Arduino-wedstrijd 2020

Aanbevolen: