Inhoudsopgave:

Walking Strandbeest, Java/Python en App Controlled - Ajarnpa
Walking Strandbeest, Java/Python en App Controlled - Ajarnpa

Video: Walking Strandbeest, Java/Python en App Controlled - Ajarnpa

Video: Walking Strandbeest, Java/Python en App Controlled - Ajarnpa
Video: Strandbeest Initial Steps 2024, Juli-
Anonim

Door arrowlikeVolg meer door de auteur:

Experimentele studie van eenvoudige harmonische beweging
Experimentele studie van eenvoudige harmonische beweging
Experimentele studie van eenvoudige harmonische beweging
Experimentele studie van eenvoudige harmonische beweging

Deze Strandbeest kit is een DIY werk gebaseerd op het Strandbeest uitgevonden door Theo Jansen. Verbaasd over het geniale mechanische ontwerp, wil ik het uitrusten met volledige wendbaarheid en vervolgens computerintelligentie. In deze instructable werken we aan het eerste deel, manoeuvreerbaarheid. We behandelen ook de mechanische structuur voor de computer op creditcardformaat, zodat we kunnen spelen met computervisie en AI-verwerking. Om het bouwwerk en de uitvoering te vereenvoudigen, heb ik geen arduino of vergelijkbare programmeerbare computer gebruikt, maar in plaats daarvan een bluetooth-hardwarecontroller gebouwd. Deze controller, die werkt als de terminal die communiceert met de robothardware, wordt bestuurd door een krachtiger systeem, zoals een Android-telefoon-app of RaspberryPi, enz. De besturing kan ofwel de gebruikersinterface van de mobiele telefoon zijn, of programmeerbare besturing in python- of Java-taal. Eén SDK voor elke programmeertaal is open-source beschikbaar in

Aangezien de mini-Strandbeest-gebruikershandleiding vrij duidelijk is in het uitleggen van de bouwstappen, zullen we ons in deze instructable concentreren op de stukjes informatie die normaal niet in de gebruikershandleiding worden behandeld, en de elektrische/elektronische onderdelen.

Als we een meer intuïtief idee over de mechanische montage van deze kit nodig hebben, zijn er nogal wat goede video's over het montageonderwerp beschikbaar, zoals

Benodigdheden

Om het mechanische deel te construeren en alle elektrische verbindingen van deze Strandbeest te maken, zou het minder dan 1 uur moeten duren om te voltooien als de wachttijd voor 3D-printen niet wordt geteld. Het vereist de volgende onderdelen:

(1) 1x standaard Strandbeest kit (https://webshop.strandbeest.com/ordis-parvus)

(2) 2x DC-motor met versnellingsbak (https://www.amazon.com/Greartisan-50RPM-Torque-Re…)

(3) 1x Bluetooth-controller (https://ebay.us/Ex61kC?cmpnId=5338273189)

(4) 1x LiPo-batterij (3.7V, capaciteit naar keuze in mAh)

(5) 12x M2x5.6mm houtschroeven

(6) Koolstof- of bamboestaaf met een diameter van 2 mm

3D print de volgende onderdelen:

(1) 1x robotica hoofdgedeelte

(3D-afdrukontwerpbestand met alleen Bluetooth-controller downloaden)

(3D-afdrukontwerpbestand met extra OrangePi Nano-download)

(2) 2x aandrijfasflens (3D print ontwerpbestand downloaden)

(3) 2x voedingssysteem armatuur (3D print ontwerp bestand downloaden)

anderen:

Android mobiele telefoon. Ga naar Google Playstore, zoek naar M2ROBOTS en installeer de controle-app.

Als het moeilijk is om toegang te krijgen tot Google Playstore, bezoek dan mijn persoonlijke startpagina voor een alternatieve app-downloadmethode

Stap 1: Onderdelenorganisatie

Onderdelenorganisatie
Onderdelenorganisatie
Onderdelenorganisatie
Onderdelenorganisatie
Onderdelenorganisatie
Onderdelenorganisatie
Onderdelenorganisatie
Onderdelenorganisatie

In deze stap organiseren we alle onderdelen die moeten worden geassembleerd. Figuur 1. toont alle kant-en-klare plastic onderdelen die we gebruiken om het model Strandbeest te bouwen. Ze zijn gemaakt door middel van spuitgieten, wat zeer efficiënt is in vergelijking met andere machinale productiemethoden zoals 3D-printen of frezen. Daarom willen we het meeste voordeel halen uit het in massa geproduceerde product en alleen het minste aantal onderdelen aanpassen.

Zoals te zien is in Fig. 2 heeft elk stuk plastic bord een gelabeld alfabet, het individuele deel heeft geen label. Als ze eenmaal uit elkaar zijn gehaald, is er geen etiket meer. Om dit probleem op te lossen, kunnen we onderdelen van hetzelfde type in verschillende dozen plaatsen, of eenvoudigweg meerdere gebieden op een stuk papier markeren en één soort onderdelen in één gebied plaatsen, zie Fig.3.

Om het plastic onderdeel van de grotere kunststof plaat af te snijden, zijn schaar en mes mogelijk niet zo efficiënt als en zo veilig als de tang die wordt getoond in Fig. 4 en 5.

Alles is hier van plastic, behalve dat het materiaal van de tenen van rubber is, zie Fig.6. We kunnen snijden volgens de vooraf gemaakte bezuinigingen. De zachte aard van het rubberen materiaal zorgt voor een betere grip van het strandbeest. Dit geldt met name bij het beklimmen van een helling. In latere onderwerpen kunnen we het vermogen testen om onder verschillende hellingshoeken te klimmen, met en zonder de rubberen tenen. Als er geen slip is, wordt dit statische wrijving genoemd. Zodra het de grip verliest, wordt het kinetische wrijving. De wrijvingscoëfficiënt is afhankelijk van de gebruikte materialen, daarom hebben we rubberen tenen. Hoe ontwerp je een experiment, steek je hand op en spreek je uit.

De laatste figuur bevat de "ECU", "Aandrijflijn" en het chassis van dit model Strandbeest.

Stap 2: Aandachtspunten tijdens mechanische montage

Aandachtspunten tijdens mechanische montage
Aandachtspunten tijdens mechanische montage
Aandachtspunten tijdens mechanische montage
Aandachtspunten tijdens mechanische montage
Aandachtspunten tijdens mechanische montage
Aandachtspunten tijdens mechanische montage

De mini-Strandbeest heeft een redelijk goede gebruiksaanwijzing. Het zou een gemakkelijke taak moeten zijn om de handleiding te volgen en de montage te voltooien. Ik zal deze inhoud overslaan en enkele interessante punten uitlichten die onze aandacht verdienen.

In Fig. 1 is de ene kant van de gleuf met rubberen tenen een hoek van 90 graden, terwijl de andere kant een helling van 45 graden heeft, die officieel afschuining wordt genoemd. Een dergelijke helling leidt de rubberen teen om in de plastic voet te passen. Probeer de tenen vanaf de kant met de afschuining te installeren, zie Fig.2, en probeer dan de andere kant. Het verschil is erg merkbaar. De rechterkant van Fig.3 is de kruk in onze Stranbeest. Het lijkt erg op de krukas in een motor, automotor, motorfietsmotor, ze hebben allemaal dezelfde structuur. In een Strandbeest, wanneer de slinger draait, drijft het de voeten aan om te bewegen. Voor een motor is het de beweging van de zuiger die de kruk aandrijft om te draaien. Een dergelijke scheiding van 120 graden in een cirkel leidt ook tot een driefasige motor of generator, het elektrische vermogen is 120 graden uit elkaar, weergegeven in Fig.4. Zodra we de mechanische onderdelen voor de linker- en rechterkant hebben gemonteerd, beginnen we nu te werken aan de onderdelen die we aan de Strandbeest toevoegen, zie Fig.5. Fig.6 is de stap waarin we de 3D-geprinte motorklem gebruiken om de motor aan het 3D-geprinte chassis te bevestigen. In deze stap is de truc dat geen van de schroeven moet worden aangedraaid voordat de motorpositie wordt aangepast, zodat het zijoppervlak van het chassis hetzelfde is als het oppervlak van de motor. Als we tevreden zijn met de uitlijning, kunnen we alle schroeven vastdraaien. Ga verder naar Fig.7, we werken aan de installatie van de flenskoppeling, waarbij de motoruitgang op de kruk wordt aangesloten. De motorzijde is moeilijker te installeren dan de krukzijde aansluiting, zie Fig.8. Daarom verbinden we eerst de flens aan de motorzijde. Zodra de flenskoppeling voor beide motoren is geïnstalleerd, zoals getoond in Fig.9, gebruiken we twee stukken koolstofstaven met een diameter van 2 mm om het chassis en de links/rechts loopstructuur te verbinden. Dat gebeurt in figuur 10. In totaal gebruiken we 3 stukken koolstofstaven om deze entiteiten te verbinden. Maar in deze stap verbinden we er slechts twee, omdat we de kruk moeten draaien en de verbinding tussen de flens en de kruk moeten monteren. Als er 3 stukken koolstofstaven op hun plaats zijn geweest, zal het moeilijker zijn om de relatieve positie aan te passen en ze te verbinden. Ten slotte hebben we het uiteindelijke geassembleerde mechanische systeem, in Fig.11. Volgende stap, laten we werken aan elektronica.

Stap 3: Elektrische aansluiting

Elektrische verbinding
Elektrische verbinding
Elektrische verbinding
Elektrische verbinding
Elektrische verbinding
Elektrische verbinding

Alle elektronische systemen hebben voeding nodig. We kunnen een 1-cellige batterij ergens handig plaatsen, bijvoorbeeld onder de printplaat in Fig.1. De polariteit van de stroomvoorziening is zo kritisch dat het een speciaal cijfer verdient om te bespreken. Fig.2 markeert de batterijaansluiting. Op de controllerkaart is de polariteit gemarkeerd met "+" en "GND", zie Fig.3. Wanneer de batterij leeg raakt, wordt een USB-kabel gebruikt om de batterij op te laden, zie Fig.4. De LED die aangeeft "opladen bezig" gaat automatisch uit wanneer de batterij weer vol raakt. De laatste stap is om de motoruitgangen aan te sluiten op de motorconnectoren in de controllerkaart. Er zijn 3 motorconnectoren, aangeduid met nummer 16 in Fig.3. In Fig.5 is de linkermotor aangesloten op de meest linkse connector met het label PWM12, en de rechtermotor is aangesloten op de middelste connector. Momenteel is het naar links draaien van een tank (differentieel rijdend voertuig) hard gecodeerd als een afname van het ingangsvermogen van de motor aangesloten op de PWM12-motorpoort. Daarom moet de motor die is aangesloten op de PWM12-poort de linkervoet aandrijven. Ik zal later alle mengfuncties converteren om door de gebruiker te configureren. Door de keuze van de motorconnector te verwisselen of de richting van de motorconnector om te keren, kunnen we het probleem oplossen, zoals het achteruitgaan van de Strandbeest wanneer hem wordt bevolen om vooruit te gaan, de verkeerde richting draaien, onthoud dat de gelijkstroommotor zijn draairichting verandert als de ingangsdraad is in omgekeerde volgorde op de stuurstroom aangesloten.

Stap 4: App-instellingen en bediening

App-instellingen en bediening
App-instellingen en bediening
App-instellingen en bediening
App-instellingen en bediening
App-instellingen en bediening
App-instellingen en bediening
App-instellingen en bediening
App-instellingen en bediening

We downloaden eerst een Android-app uit de Google Play Store, zie Fig.1. Deze app heeft veel andere functionaliteiten die we niet in deze instructable kunnen behandelen, we zullen ons alleen concentreren op de direct gerelateerde onderwerpen voor Strandbeest.

Schakel de hardware Bluetooth-controller in, deze verschijnt in de lijst met detectieapparaten. Een lange klik brengt ons bij de over-the-air downloadfunctie om later te worden "geïnstrueerd". Voordat we klikken en de bediening starten, laten we eerst wat configuraties doen door in de rechterbovenhoek op "Instellingen" te klikken. In Fig.2 is het verborgen onder het … icoon. Fig.3 toont meerdere instellingscategorieën. Deze instellingen, geconfigureerd in de App, worden op drie manieren in werking gezet: 1) sommige instellingen hebben alleen invloed op de werking van de App, zoals rekenkunde om het vermogensregelcommando van elke motor te krijgen van uw stuur- en gascommando. Ze leven in de App. In sommige latere instructables zullen we laten zien hoe we ze vervangen door onze Python/Java-programma's. 2) sommige instellingen worden naar de hardware gestuurd als onderdeel van het besturingsprotocol in de lucht, zoals de omschakeling tussen directe besturing (servo draait precies de gevraagde hoek) en fly-by-wire-besturing (de ingebouwde autonome controller-functiemodule bedient de servo kanaal volgens het gebruikerscommando en de huidige houding) 3) sommige instellingen worden verzonden naar het niet-vluchtige geheugen in de hardwarecontroller. Daarom volgt de hardware deze instellingen elke keer dat deze wordt ingeschakeld zonder te zijn geconfigureerd. Een voorbeeld is de Bluetooth-uitzendingsnaam van het apparaat. Dit soort instellingen heeft een power-cycle nodig om van kracht te worden. De eerste categorie waar we in duiken is de "Algemene instellingen" in Fig.4. De "App-besturingsfunctie" in Fig. 5 definieert welke rol deze app speelt, een controller voor het hardwareapparaat via een directe Bluetooth-verbinding; een brug over intranet/internet voor telepresence controle; en etc. Vervolgens vertelt de pagina "HW-type" in Fig.6 de app dat u met een differentieel rijdend voertuig werkt, dus de "tank"-modus moet worden geselecteerd. We hebben in totaal 6 PWM-uitgangen beschikbaar. Voor de Strandbeest moeten we kanaal 1 t/m 4 configureren volgens Fig.7. Elk PWM-kanaal wordt bediend in een van de volgende modi: 1) servo normaal: RC-servo bestuurd door 1 tot 2 ms PWM-signaal 2) servo-reverse: de controller keert de gebruikersbediening om voor zijn uitgang 3) DC-motor duty cycle: a DC motor of een elektrisch apparaat, kan worden bediend in de duty cycle-modus, 0% is uitgeschakeld, 100% is altijd aan. 4) Inschakelduur gelijkstroommotor: nogmaals, de controller keert de gebruikersbesturing om voor de uitvoer. Aangezien we de gelijkstroommotor gebruiken en de draairichting van de motor regelen door de volgorde van de hardwarebedrading, kiezen we voor kanaal 1 tot 4, zie Afb.8. We moeten ook 2 PWM-kanalen samenvoegen tot 1 H-brug, om bidirectionele besturing mogelijk te maken. Deze stap wordt getoond in Fig.9. In de modus "2 PWM-kanalen naar 1 H-brug" worden kanaal 1, 3 en 5 gebruikt om beide gekoppelde kanalen te besturen. Het introduceert de noodzaak om de gashendel opnieuw toe te wijzen, omhoog-omlaagbediening van de joystick van het standaardkanaal 2 naar kanaal 3. Dit wordt bereikt in de instellingen van Fig.10. Zoals wordt getoond in Fig.11, is elk kanaal geconfigureerd om één willekeurige ingangsbron te gebruiken.

Bingo, nu hebben we de minimaal vereiste configuratie voltooid en kunnen we teruggaan naar de pagina met het zichtbare Bluetooth-apparaat en het verbinden. In Fig.12, probeer de joystick te spelen, en we kunnen plezier hebben met dit Strandbeest. Probeer een helling te beklimmen, onthoud de analyse van wrijving tussen materiaalsoorten en lees de geschatte houding van de vluchtcontroller, die wordt weergegeven in de rij met het label "RPY (deg)", de vier vermeldingen in deze rij zijn rollen, pitch, yaw-hoek geschat door de gyroscoop en versnellingsmeter aan boord; de laatste invoer is kantelgecompenseerde kompasuitvoer.

Toekomstig werk: in de volgende instructables zullen we geleidelijk de programmeerinterface behandelen, je favoriete taal Java of Python kiezen om met de Strandbeest te communiceren en niet langer de strandbeest-status van het scherm van de mobiele telefoon lezen. We zullen ook beginnen met programmeren in de linux-computer van het RaspberryPi-type voor meer geavanceerde programmeeronderwerpen, zie de laatste afbeelding. Check https://xiapeiqing.github.io/doc/kits/strandbeest/roboticKits_strandbeest/ voor de 3D-print mechanische onderdelen en https://github.com/xiapeiqing/m2robots.git voor SDK en voorbeeldcode als je direct aan de slag wilt. Laat me weten wat je gewenste programmeertaal is, zo niet Java of Python, ik kan een nieuwe versie van SDK toevoegen.

Veel plezier met hacken en blijf op de hoogte voor de volgende instructables.

Aanbevolen: