Inhoudsopgave:

Bouw een Telepresence-robot die via wifi wordt bestuurd - Ajarnpa
Bouw een Telepresence-robot die via wifi wordt bestuurd - Ajarnpa

Video: Bouw een Telepresence-robot die via wifi wordt bestuurd - Ajarnpa

Video: Bouw een Telepresence-robot die via wifi wordt bestuurd - Ajarnpa
Video: Een robot bouwen | Het LAB | National Geographic 2024, Juli-
Anonim
Image
Image

Dit project gaat over het bouwen van een robot die kan communiceren met een externe omgeving en kan worden bestuurd vanuit elk deel van de wereld met behulp van wifi. Dit is mijn laatste jaar engineeringproject en ik heb er veel geleerd over elektronica, IoT en programmeren. Dit project is gericht op mensen met een motorische handicap, omdat ze zich moeilijk kunnen verplaatsen, zodat een telepresence-robot hen gemakkelijk kan helpen.

Er zijn 2 systemen binnen het project om het succesvol te maken. Bewegingsbediening van uw hand om de robothand en mobiele app te bewegen die de basis van de motor bestuurt.

Hieronder vindt u het document en de presentatie van Telepresence V1, zodat u meer inzicht krijgt.

Tijd om het te bouwen!

Benodigdheden

Voor dit project zijn veel gereedschappen en componenten nodig. Het kostte me ongeveer 1000 AED (270 $), dus zorg ervoor dat je dat budget hebt. Dit zijn de componenten die je nodig hebt: -

  1. Knooppunt MCU x 3
  2. L298N DC-motorstuurprogramma x 1"
  3. 12V voeding x 1
  4. LM2596 Step-Down Spanningsregelaar x 1
  5. MPU9250 IMU-sensoren x 2
  6. Servomotoren (10-20kg koppel) x 4
  7. lichtgewicht hout 1x1m
  8. 8M metalen staven met schroefdraad 1m x 2
  9. 3D-printer (30x30cm)
  10. houthakker en boor
  11. Elektrische draden, jumperdraden en breadboard
  12. Volledige arm mouw
  13. 12V DC-motor (25kg.cm) x 2
  14. 3-inch zwenkwiel x 1"
  15. 6 cm rubberen wiel met schroefbevestiging x 2"
  16. Soldeer kit

Stap 1: Hoe werkt het?

Ontwerp
Ontwerp

Dit is het communicatiestroomschema om u te laten begrijpen hoe componenten met elkaar communiceren. We gebruiken het Data Transfer Network, PubNub genaamd, als een IoT-platform dat realtime berichten kan verzenden in slechts 0,5 seconden! Dat is de snelste reactie die we kunnen krijgen en dit is nog belangrijker in ons project, omdat we onze hand zullen gebruiken om de arm van de robot in realtime te besturen.

Alle Nodemcu's worden gebruikt voor het verzenden en ontvangen van data. Er zijn hier 2 afzonderlijke systemen bij betrokken waarbij Nodemcu on arm de bewegingssensorgegevens naar PubNub stuurt en die door Nodemcu op de robotarm worden ontvangen. voor basisbeweging verzendt de mobiele app de gegevens voor x, y-coördinaat van joystick en die wordt ontvangen door Nodemcu op de basis die de motor via de bestuurder kan besturen. Dat is het voor nu.

Stap 2: Ontwerp

Het bovenstaande ontwerp geeft u een idee over hoe de structuur eruit ziet. U kunt de CAD-bestanden downloaden om er beter uit te zien. De basis van de rover wordt ondersteund door 3 wielen waarvan 2 DC-motoren aan de achterkant en een zwenkwiel aan de voorkant. Vanwege de beweging van de robotarm merkte ik instabiliteit op de basis op, dus je zou kunnen overwegen om vooraan 2 zwenkwielen toe te voegen. Onder- en bovenhouten basis worden ondersteund door draadstangen die zijn ingeklemd door moeren. Zorg ervoor dat u een borgmoer gebruikt, omdat deze voor de lange termijn permanent vastzit.

Ontwerpbronbestand downloaden - Telepresence Design

Stap 3: 3D-printen van arm- en koppelberekening

3D-printen van arm- en koppelberekening
3D-printen van arm- en koppelberekening

De arm van telepresence-robot is een eenvoudig ontwerp in de vorm van de doos, zodat deze gemakkelijk kan worden 3D-geprint met een minimale hoeveelheid filament. De lengte is ongeveer 40 cm, wat zo lang is als een menselijke arm. De lengte van de robotarm is gebaseerd op het koppel dat door de servomotoren wordt opgeheven. U kunt de koppelberekening op de bovenstaande afbeelding vinden, samen met de specificaties van de servomotor die ik heb gebruikt, zodat u het ontwerp aan uw behoeften kunt aanpassen. Maar vermijd het gebruik van het maximale koppel van de servomotor, omdat dit op de lange termijn de motor zal beschadigen.

Download de 3D Printing-bestanden hieronder, print ze uit en ga verder.

Stap 4: fabricage en montage van de basis

Fabricage en montage van de basis
Fabricage en montage van de basis
Fabricage en montage van de basis
Fabricage en montage van de basis
Fabricage en montage van de basis
Fabricage en montage van de basis

Hier zijn de stappen die u kunt volgen voor fabricage: -

  1. Snijd de metalen staaf met schroefdraad in het midden met een zaag;
  2. Maak met houthakker 2 stukken hout van 40x30cm
  3. Boor de nodige gaten aan de boven- en onderkant zoals de bovenstaande tekening
  4. Begin met het bevestigen van de gelijkstroommotor en zwenkwielen op de onderste basis
  5. Voor het maken van een rechthoekig gat op de bovenste basis, maak eerst een cirkelvormig gat met de boormachine en steek dan de houthakker door het gat en trim het over de randen om een rechthoek te maken.

als je je afvraagt waarom het gat rechtsboven naar achteren is geplaatst, dan komt dat omdat ik niet zeker wist of ik de robotarm in de rechterhoek in het midden zou plaatsen. Het in het midden plaatsen was een betere keuze vanwege de gewichtsbalans.

Stap 5: Montage van robotarm

Montage van robotarm
Montage van robotarm

De montage van de robotarm vereist speciale aandacht. Afgezien van mechanische montage, moet u ervoor zorgen dat de servomotor in de juiste hoek staat wanneer deze wordt gemonteerd. Volg het bovenstaande diagram om u een idee te geven van de hoek waarin de servomotor op alle motoren moet worden ingesteld voordat u er iets bovenop monteert. Probeer dit onderdeel goed te krijgen, anders moet je het weer in elkaar zetten.

Gebruik de onderstaande codesjabloon om de exacte servohoek in te stellen met behulp van Arduino of Nodemcu. Er is al veel informatie hierover online, dus ik zal niet in detail treden.

#erbij betrekken

Servo-servo;

int-pin =; // zet het pinnummer waar de servo-gegevenspin op arduino is bevestigd

ongeldige setup() {

servo.bevestigen (pin);

}

lege lus() {

int-hoek =; //hoek waarop je moet instellen

servo.schrijven (hoek);

}

Stap 6: Circuit van armcontroller

Circuit van armcontroller
Circuit van armcontroller
Circuit van armcontroller
Circuit van armcontroller

De montage van de armcontroller is eenvoudig te doen. Ik gebruikte een lange mouw en bevestigde de sensoren, Nodemcu & breadboard met naaien. Zorg ervoor dat de richting van de sensor in dezelfde richting is als de bovenstaande afbeelding van de controller. Volg ten slotte het schakelschema en download de onderstaande code.

Stap 7: Circuit van Telepresence-robot

Circuit van Telepresence-robot
Circuit van Telepresence-robot
Circuit van Telepresence-robot
Circuit van Telepresence-robot
Circuit van Telepresence-robot
Circuit van Telepresence-robot

Volg het schakelschema op dezelfde manier. Controleer de pin-outs van de voeding die u gebruikt om kortsluiting te voorkomen. Stel de uitgangsspanning van de buck-converter in op 7V, want dat is de gemiddelde spanning van alle servomotoren. De enige plaats die u kunt solderen, zijn de klemmen van de basis-DC-motor, omdat deze veel stroom verbruikt, dus moet worden vastgemaakt met een iets dikkere elektrische draad. Zodra het circuit is voltooid, uploadt u later de 'arm_subscriber.ino' naar Nodemcu die verbinding maakt met arm en 'base.ino' om te worden geüpload naar de basis Nodemcu.

Stap 8: Mobiele app

Applicatie voor de mobiele telefoon
Applicatie voor de mobiele telefoon

Dit is de mobiel om de motoriek te besturen. Wanneer u de joystick beweegt, stuurt deze de X-, Y-coördinaten op de joystickcirkel naar Pubnub en wordt ontvangen door Nodemcu aan de basis. Deze X, Y-coördinaat wordt omgezet in de hoek en met behulp hiervan kunnen we bepalen in welke richting de robot zal gaan. Beweging wordt gedaan door aan / uit te zetten en van richting te veranderen van de twee motoren. Als het commando Vooruit is, gaan beide motoren op volle snelheid vooruit, als ze naar links gaan, gaat de linkermotor achteruit en de rechtermotor vooruit, enzovoort.

de bovenstaande functie kan eenvoudig worden gedaan met knoppen in plaats van een joystick, maar ik kies een joystick om ook de snelheid van de motor te regelen. Mijn enable-pin werkte echter niet met Nodemcu, dus ik verliet dat deel. Ik heb een snelheidsregelingscode toegevoegd in base.ino voor het geval dat als opmerking.

U kunt het bronbestand.aia hieronder downloaden dat kan worden bewerkt met de MIT-app-uitvinder. Je zult een basisconfiguratie in de app moeten doen die ik in de volgende stap zal vertellen.

Stap 9: Maak een account aan op Pubnub en verkrijg de sleutels

Maak een account aan op Pubnub en ontvang de sleutels
Maak een account aan op Pubnub en ontvang de sleutels

Nu is het tijd om de laatste stap te doen, namelijk het configureren van uw IoT-platform. Pubnub is de beste omdat gegevensoverdracht in realtime plaatsvindt en slechts 0,5 seconden duurt om over te zetten. Bovendien kun je 1 miljoen datapunten per maand verzenden, dus het is mijn persoonlijke favoriete platform.

Ga naar PubNub en maak je account aan. Ga vervolgens naar de Apps-menu's in het linkermenu en klik op de knop "+Nieuwe app maken" aan de rechterkant. Nadat u uw app een naam heeft gegeven, ziet u de bovenstaande afbeelding van de uitgever en abonneesleutel. Dat is wat we zullen gebruiken om de apparaten aan te sluiten.

Stap 10: Voeg de sleutels toe aan de code en upload

Voeg de sleutels toe aan de code en upload
Voeg de sleutels toe aan de code en upload
Voeg de sleutels toe aan de code en upload
Voeg de sleutels toe aan de code en upload

We hebben 4 dingen nodig zodat het apparaat met elkaar kan communiceren: - pubkey, subkey, channel & wifi.

pubkey & subkey blijven hetzelfde op alle Nodemcu en mobiele apps. 2 apparaten die met elkaar communiceren, moeten dezelfde kanaalnaam hebben. Omdat de mobiele app en het basisstation communiceren, heeft dat dezelfde kanaalnaam, vergelijkbaar met de controller en de robothand. Ten slotte moet je wifi-inloggegevens op elke Nodemcu zetten, zodat deze in het begin verbinding kan maken met wifi. Ik heb de kanaalnaam al toegevoegd, dus wifi en pub/sub-sleutel is wat je moet toevoegen vanuit je account.

Opmerking: - Nodemcu kan alleen verbinding maken met wifi die toegankelijk is zonder webpagina als tussenpersoon. Zelfs voor mijn eindpresentatie moest ik mobiele hotspot gebruiken omdat wifi op de universiteit slepend was.

Stap 11: Conclusie

Conclusie
Conclusie

Als je tot hier bent gekomen, dan GEWELDIG! Ik hoop dat je iets waardevols uit dit artikel hebt gehaald. Dit project heeft kleine beperkingen die ik je wil vertellen voordat je het uitvoert. Hier zijn enkele hieronder: -

Abrupte beweging van robotarm: -

Er is veel plotselinge beweging van de robotarm. Dit komt door een vertraging van 0,5 seconden voordat de sensorinformatie wordt overgedragen als een servobeweging. Ik heb zelfs 2 van de servomotor beschadigd, dus beweeg je arm niet te snel. U kunt dit probleem oplossen door tussenstappen tussen de oorspronkelijke beweging toe te voegen om een vloeiende beweging te creëren.

Geen stoppen van basisbeweging: -

als ik de robot via een mobiele app in één richting laat bewegen, blijft de robot in dezelfde richting bewegen, zelfs als ik mijn vingers optil. Dit was vervelend omdat ik altijd de stroom moest uitschakelen om de beweging te stoppen. Ik heb de stopcode in de app ingevoerd, maar het werkte nog steeds niet. Het kan een probleem zijn in de app zelf. Misschien kun je proberen het op te lossen en laat het me weten.

Geen videofeed: -

Zonder de videofeed die van robot naar persoon komt, kunnen we nooit ver van de gebruiker vandaan implementeren. Ik wilde dit in eerste instantie toevoegen, maar zou meer tijd en investeringen vergen, dus verliet ik het.

Jullie kunnen dit project verder brengen door het bovenstaande probleem op te lossen. Als je dat doet, laat het me dan weten. Afscheid

Voor meer projecten bezoek mijn portfolio website

Robotica-wedstrijd
Robotica-wedstrijd
Robotica-wedstrijd
Robotica-wedstrijd

Tweede plaats in de robotica-wedstrijd

Aanbevolen: