Inhoudsopgave:

Dog Bot: Lego Robot Rover met webcam - Ajarnpa
Dog Bot: Lego Robot Rover met webcam - Ajarnpa

Video: Dog Bot: Lego Robot Rover met webcam - Ajarnpa

Video: Dog Bot: Lego Robot Rover met webcam - Ajarnpa
Video: Introducing Unitree Go2 - Quadruped Robot of Embodied AI from $1600 2024, Juli-
Anonim
Image
Image

Hier leest u hoe u een Lego-robot maakt die u vanaf elk scherm via wifi kunt bedienen. Het heeft ook een webcam zodat je kunt zien waar je heen gaat en led-verlichting voor de ogen! Dit is een geweldig project om met je kinderen te doen, omdat ze het logo kunnen bouwen en je ze kunt betrekken bij zoveel van de elektronica als ze willen. Er is veel flexibiliteit in de manier waarop je dit project implementeert, en dit betekent dat je kan het gemakkelijk uit elkaar halen en opnieuw ontwerpen. Ik vond het handig, toen ik vast kwam te zitten om gewoon opnieuw te beginnen. Als je dit een paar keer hebt gedaan, is het vrij eenvoudig en snel van de grond af opnieuw op te bouwen. Het mooie hiervan is dat je je geen zorgen hoeft te maken over het "breken" van iets, omdat je de vaardigheden zult ontwikkelen om gemakkelijk opnieuw op te bouwen.

Wat je nodig hebt

  • Raspberry Pi B+
  • Basis- en motorkit
  • Lego grondplaat
  • Superlijm met industriële sterkte
  • Oefening
  • Hobbymesje
  • Soldeerapparatuur
  • SD-kaart
  • SD-kaartlezer
  • Motor controller kit
  • 2 LED's
  • midden geprijsde webcam (je zou een goedkope kunnen proberen)
  • PC en een tablet/telefoon
  • Wifi-router waartoe u beheerderstoegang heeft
  • Veel stukjes Lego
  • Telefoonoplader voor noodgevallen
  • 4 startdraden met elk minstens 1 vrouwelijke aansluiting
  • 4 AA batterijen (oplaadbaar is goed)

Stap 1: Bereid de basis voor

Ik begon met een basis en 2 motoren zoals deze motorset bij Amazon

Pak de perspex bodem en lijm er een dunne Lego bodemplaat op. Ik heb hiervoor superlijm van industriële sterkte gebruikt die binnen enkele minuten droogt en supersterk is. Wanneer de lijm is gefixeerd, snijdt u de overtollige Lego-basisplaat weg zodat deze de lijn van de perspex-basisplaat volgt. boor vervolgens gaten door de Lego-plaat die overeenkomen met de perspex-basis. Ik boorde de gaten als en wanneer ik ze nodig had. Je hebt nu de basis voor het bouwen van je Lego-structuur.

Stap 2: Monteer de wielen

Monteer de wielen
Monteer de wielen

Monteer nu de wielen. Volg hier de instructies van de fabrikant. De wielen die ik kocht hadden alle instructies in het Chinees, die ik niet kan lezen, maar het was vrij eenvoudig om erachter te komen van de foto's. Eenmaal gemonteerd bevestig de draden aan de motoren met een kleine klodder soldeer.

Stap 3: Bevestig de wielen aan de basis

Wielen aan de basis bevestigen
Wielen aan de basis bevestigen

Bevestig vervolgens de wielen op de bodemplaat, indien nodig kunt u gaten in de bodem boren. U zult waarschijnlijk tegen het einde van het project ontdekken dat u de draden ergens anders door de basis wilt laten leiden, maar u kunt altijd een nieuw gat boren en later verplaatsen.

Stap 4: Bereid de Pi. voor

Bereid de Pi. voor
Bereid de Pi. voor

Maak nu de PI klaar. Ik gebruikte een model B+ met een USB wifi-dongle. Ik gebruikte de volledige bureaubladafbeelding op basis van Debian Jessie die je kunt downloaden van de Raspbian Pi-site. Het is de moeite waard om de SD-kaart helemaal opnieuw te maken en de schijfkopie bij de hand te houden, want je kunt gemakkelijk opnieuw beginnen. Mogelijk moet u een beetje googelen om erachter te komen hoe u de schijfkopie op uw pc kunt maken. Ik heb mijn afbeelding met Ubuntu als volgt gemaakt: Klik met de rechtermuisknop op de schijfkopie en selecteer "openen met schijfkopieschrijver". Schrijf de afbeelding naar de SD-kaart. De schijfkopie is vrij klein, dus als je een grotere SD-kaart hebt (bijvoorbeeld: 30 GB), kun je partitioneringssoftware zoals GParted gebruiken om alle beschikbare ruimte op te nemen. Als je eenmaal hebt bedacht hoe je dit moet doen, duurt het ongeveer 5 minuten, en het is echt de moeite waard, alsof je de software verknoeit die je gewoon opnieuw kunt installeren.

Stap 5: Monteer de controllerkaart

Monteer de controllerkaart
Monteer de controllerkaart

Vervolgens heb je een motorcontrollerkaart nodig. Ik heb de kit van RyanTek gebruikt. Het wordt geleverd met een uitstekende soldeergids, maar ik denk dat je het ook voorgesoldeerd kunt krijgen. Als je nog niet eerder hebt gesoldeerd, maak je geen zorgen, doe het rustig aan en oefen een beetje voordat je op het motorbord begint.

Bevestig nu het batterijpakket (met 4 AA-batterijen) en de motoren tot aan de controllerkaart en bevestig vervolgens de controllerkaart op de GPIO-pinnen van de Pi. Nogmaals, de controllerkaart zal u meer details geven. Maak je geen zorgen over het krijgen van de juiste motordraden in de juiste sleuven, zolang ze niet zijn aangesloten op de gelijkstroom-sleuven. Ik lijm of schroef de Pi of het batterijpakket niet op het Lego-bord, omdat dit je meer flexibiliteit geeft bij het ontwerpen van de Lego-body. U kunt uw ontwerp ook gemakkelijk wijzigen terwijl u bezig bent.

Stap 6: Begin met het bouwen van de Lego Body

Begin met het bouwen van de Lego-body
Begin met het bouwen van de Lego-body
Begin met het bouwen van de Lego-body
Begin met het bouwen van de Lego-body

Nu is het tijd om wat Lego te bouwen. Op dit punt kun je echt jonge kinderen erbij betrekken, zolang ze maar een stukje Lego kunnen vasthouden! We zijn begonnen met slechts een eenvoudige vierkante behuizing totdat alles werkte en werden toen avontuurlijker met de hondenbot. Het mooie hier is dat je het robotlichaam zo vaak kunt herbouwen als je wilt. Begin met het creëren van een huis voor de Pi. Vergeet niet om ruimte te laten voor de USB-poorten en de stroomkabels. Bouw een behoorlijke hoeveelheid losheid in elke behuizing die u bouwt. Het is oké dat dingen een beetje rammelen en je kunt niet al te nauwkeurig zijn met Lego.

We hebben Lego-vensters gebruikt om toegang te bieden tot de USB-poorten die je later nodig hebt.

Stap 7: Bereid de Pi. voor

Het is nu een goed moment om de Pi op te starten en de robot in beweging te krijgen.

Ik heb de code ontwikkeld om met dit project te gebruiken bij Git hub. De Lees mij op de git hub-pagina's leiden je door de instructies voor het installeren van alle software op de Pi, maar ik zal je ook door de stappen leiden hier.

Start eerst de Pi op, door de stroomkabel in het stopcontact te steken. Je moet de HDMI-kabel aansluiten op een tv en een USB-toetsenbord en -muis gebruiken. Het eerste is om verbinding te maken met uw wifi. dit doe je door op het icoontje rechtsboven op het Raspian-bureaublad te klikken en de details te bewijzen. Eenmaal verbonden met wifi kun je al het andere doen vanaf de opdrachtregel, dus als je wilt, kun je verbinding maken met de Pi via ssh, maar voor nu, omdat we verbonden zijn met een tv, kunnen we een terminal openen vanaf de Raspian-desktop.

Stap 8: Installeer de software op de Pi

Open de terminal op de Pi en typ de volgende opdrachten.

sudo apt-get update

Hiermee wordt Raspian bijgewerkt met de nieuwste software.

Installeer vervolgens de webcamsoftware

sudo apt-get install motion

U moet op dit punt ook beweging configureren. Ik heb op de github-pagina's vermeld wat er in welke bestanden moet worden bijgewerkt. Er is ook een instructie om een webcam op je Pi te laten werken. Leer de instellingen kennen en speel ermee als u eenmaal vertrouwd bent met de installatie.

sudo apt-get install python-dev python-pip

Dit installeert Python-bibliotheken en ook de python-softwareverpakkingsmanager.

sudo pip install 'pubnub>=4.1.2'

Hiermee wordt Pubnub geïnstalleerd, de software die de berichten tussen het bedieningspaneel en uw draadloze robot beheert.

Het duurt even om dit onderdeel te installeren dus ga maar eens een kopje thee zetten!!

Stap 9: Installeer de robotsoftware

Nu je alle afhankelijke stukjes en beetjes van de software hebt geïnstalleerd, is het tijd om de code te installeren die nodig is om de robot te laten werken.

git kloon

dit zal een lego-robot-map maken in je thuismap.

Voordat u de robotcode kunt uitvoeren, moet u een PubNub-account maken en een publicatie- en abonnementssleutel krijgen. u kunt dit doen door de instructies om nu aan de slag te gaan op PubNub te volgen. Zodra je klaar bent, moet je de twee bestanden openen:

  • lego-robot/server/keys.py
  • lego-robot/client/keys.js

en vervang de pub- en subsleutels door uw sleutels die u van het pubnub-dashboard kunt krijgen.

Merk op dat de kanaalwaarde van alles kan zijn, zolang deze maar overeenkomt met de client en de server.

Stap 10: Installeer de controllersoftware en controleer of alles werkt

Installeer de controllersoftware en controleer of alles werkt
Installeer de controllersoftware en controleer of alles werkt
Installeer de controllersoftware en controleer of alles werkt
Installeer de controllersoftware en controleer of alles werkt

Kloon op een pc de git hub-code op dezelfde manier als op de robot.

git kloon

Het kan zijn dat je git niet op je pc hebt geïnstalleerd. Als dit niet het geval is, volg dan de instructies op git hub.

Je hebt ook de mogelijkheid om de code als zip-bestand te downloaden, hoewel ik zou adviseren om GIT te installeren en de bestanden te kopiëren door de repository te klonen.

je moet het lego-robot/client/keys.js-bestand bijwerken met je persoonlijke publicatie- en abonnementssleutels.

Als je klaar bent, open je het lego-robot/client/buttons.html-bestand in een webbrowser. U zou nu uw robot moeten kunnen besturen met behulp van de bedieningsknoppen.

Het bovenstaande diagram laat zien wat er gebeurt:

  • Wanneer u op een knop klikt, wordt een bericht naar pubnub gestuurd (met uw publicatiesleutel)
  • PubNub stuurt vervolgens door naar de robot die …
  • Luistert (met de abonneertoets) naar berichten
  • De robot vertaalt dit vervolgens naar een actie.

Ik gebruikte pubNub als gratis, snel (realtime) en vereenvoudigt het verzenden en ontvangen van berichten enorm met behulp van een hele mooie API.

U kunt in de client- en servercode graven en de berichten zien die worden verzonden met behulp van eenvoudige toetsen zoals "vooruit" en "achteruit".

Er is ook een joystick-achtige controller op lego-robot/client/joystick.html.

Ik zal deze controllers verbeteren en steeds nieuwe toevoegen, dus als je ooit software wilt updaten, kun je het commando "git pull" gebruiken. Voel je ook vrij om bij te dragen aan de git-repository en gebruiksvriendelijkere besturingselementen te creëren.

Nu zijn jullie allemaal klaar om te controleren of de beweging goed werkt. Verander op de Pi-terminal de directory in lego-robot/server en typ:

sudo python robot.py

dit start een python-script om te luisteren naar inkomende berichten van Pubnub.

Probeer nu op enkele knoppen op de controller te drukken, je zou deze reacties moeten zien ontvangen op de Pi Terminal (zoals weergegeven in de afbeelding hierboven) en de robot.py vertaalt deze berichten naar bewegingen door ze in kaart te brengen naar signalen op de Pi GPIO.

Je zou de robot moeten kunnen verplaatsen.

Stap 11: Bereid de webcam en led-verlichting voor

Bereid de webcam en led-verlichting voor
Bereid de webcam en led-verlichting voor
Bereid de webcam en led-verlichting voor
Bereid de webcam en led-verlichting voor

Je kunt elke webcam gebruiken die compatibel is met Linux (de meeste zijn dat wel). Ik zou gaan voor een mid-range (ongeveer £ 15) omdat ik een heel goedkope probeerde en er geen duidelijk beeld van kon krijgen. De eerste stap is om de webcam te demonteren, zodat je alleen het basisbord en de camera hebt.

Als je verlichting wilt installeren, neem dan een LED-lamp en sluit twee springdraden aan op elke terminal. Ik heb springdraden gebruikt die aan het ene uiteinde een vrouwelijke aansluiting hebben, zodat je deze later gemakkelijk op de Pis GPIO-pinnen kunt aansluiten. Het andere uiteinde van de draad moet u strippen om de terminal te verwijderen. Ook hier kun je solderen om een veilige verbinding te maken. Ik heb ook wat krimpfolie gebruikt, die je kunt gebruiken om elke draad te bedekken, hoewel ik me geen zorgen zou maken om er al te goed werk van te maken totdat je blij bent dat alles werkt, dan kun je het afmaken en verbeteren. Het is ook een goed idee om een weerstand te gebruiken om te voorkomen dat uw LED doorbrandt.

Er is hier een gedetailleerde instructie waarin wordt beschreven hoe u LED's bedraden.

Zoals de afbeelding laat zien, gebruik ik een Lego-blok met een gat erin als een gemakkelijke manier om de LED op de kop van de robot te monteren.

Stap 12: Maak het hoofd met Nose-cam en Lights

Creëer het hoofd met Nose-cam en Lights
Creëer het hoofd met Nose-cam en Lights
Creëer het hoofd met Nose-cam en Lights
Creëer het hoofd met Nose-cam en Lights
Creëer het hoofd met Nose-cam en Lights
Creëer het hoofd met Nose-cam en Lights

Maak een kopbehuizing voor de camera. Ik zal hier niet te specifiek zijn, want het is tijd voor jou om creatief te zijn. U moet echter wel om de camera heen bouwen. Dogbot integreert de camera in zijn neus en heeft de ogen als LED's. Zorg ervoor dat u een gat aan de achterkant van het hoofd laat om de draden naar buiten te leiden.

Stap 13: Voltooi het lichaam

Voltooi het lichaam
Voltooi het lichaam
Voltooi het lichaam
Voltooi het lichaam
Voltooi het lichaam
Voltooi het lichaam

Nu je blij bent dat de hondenbot in principe in beweging is, kun je een behuizing maken voor de batterijpakketten. Ik gebruikte een pakket van 4 AA-batterijen (meegeleverd met de wielen en basis) en een oplader voor noodgevallen. De AA-batterijen zijn voor de DC-motoren voor de wielen en het mobiele telefoonpakket is voor de Pi. Het is een goed idee om de batterijen gemakkelijk toegankelijk te maken, omdat u ze nodig hebt om ze op te laden en te vervangen.

Als je eenmaal gelukkig bent, leg dan een dak over de Pi. Ik maak me niet al te veel zorgen over het verbergen van de draden en circuits, want dat maakt deel uit van het beeld van de robot. Maar het is allemaal aan jou op dit punt. Je zou kunnen overwegen hoe zwaar je bot wordt, hoe zwaarder hoe langzamer hij beweegt.

Stap 14: Monteer de kop

Monteer het hoofd
Monteer het hoofd
Monteer het hoofd
Monteer het hoofd
Monteer het hoofd
Monteer het hoofd

Het is tijd om alles aangesloten te krijgen.

Sluit de USB-kabel van de webcam aan op de voorkant van de bot, met behulp van de toegangsgaten die u hebt gemaakt. Je kunt draad aan de robot bevestigen door een Lego-behuizing te maken. Ik heb ook het USB-snoer ingekort door het te knippen en opnieuw te solderen, maar doe dit alleen als je echt de neiging hebt om 4 kleine draadjes aan elkaar te solderen. Misschien is het gemakkelijker om een korte USB-kabel te kopen en deze opnieuw op de achterkant van de camera aan te sluiten.

U moet ook de LED-lampjes aansluiten op de Pis GPIO-pinnen die niet worden gebruikt door de motorkaartcontroller. Dit zijn GPIO-pinnen 20 en 21 en de twee reserve-aardingspinnen in de buurt. Gebruik de reserve aardpennen in de buurt. Als het licht niet werkt, probeer dan om de aarde te schakelen met de GPIO-uitgang. OM uit te zoeken welke pinnen moeten worden aangesloten op Google, een goed GPIO-diagram.

Stap 15: Test de LED's en de neuscamera

Test de LED's en de Nose Cam
Test de LED's en de Nose Cam

Om het webcamsoftwaretype te starten:

sudo beweging

Zorg er ook voor dat u het robot.py-script hebt gestart (zoals beschreven in de vorige instructie):

sudo python robot.py

U zou nu de lichtschakelaar op de controller moeten kunnen gebruiken om de lichten aan en uit te zetten.

De webcam moet uitzenden op uw Pis IP-adres op poort 8080, dus typ bijvoorbeeld het volgende in uw webbrowser.

192.168.1.2:8081

Ik vond het Pi IP-adres door als beheerder in te loggen op mijn router en naar de aangesloten apparaten te kijken. Instructies over hoe u dit moet doen, staan meestal op de achterkant van de router, of u kunt online de instructies van uw router raadplegen.

u kunt de configuratie-instellingen van de bewegingssoftware verkennen, zoals beschreven in de vorige stap. Ik merk dat de streaming soms pauzeert, maar over het algemeen werkt het goed.

Je hebt toegang tot deze videostream vanuit alles met een browser die is verbonden met je wifi-netwerk.

Stap 16: Afwerking

Online toegang

U zou de robot nu moeten kunnen besturen vanuit een browser op een pc. Het is echter leuk om de bot vanaf elk aanraakapparaat zoals iPad of telefoon te kunnen bedienen.

Om dit te doen moet u de clientbestanden (buttons.html etc) op een webserver hosten.

Ik begon met het installeren van een webserver op de Pi, die goed werkt. Het is echter gemakkelijker om het HTML-bestand gewoon naar een andere webserver te uploaden. Ik heb het HTML-bestand eenvoudig naar mijn openbare blauwe hostaccount gekopieerd. Misschien wilt u de toegang tot deze bestanden beveiligen, omdat ze de pub-subsleutels voor uw pub-nub-kanaal bevatten. Zodra je dit hebt gedaan, heb je vanaf elk apparaat toegang tot de controller, zelfs van buiten je huis.

Automatische startup

Een ander handig ding om te doen is het \etc\rc.local-script op je Raspberry Pi te updaten; deze twee regels toevoegen:

  • sudo beweging
  • nohup sudo python /home/pi/lego-robot/server/robot.py &

Deze worden uitgevoerd elke keer dat de Pi opstart, dus u hoeft de opdracht niet handmatig uit te voeren.

Stap 17: Veel plezier

Veel plezier !
Veel plezier !

Dat is alles.

Voel je vrij om opmerkingen achter te laten als je vastloopt en als je een van de software wilt verbeteren, draag dan bij aan de github-repository. Ik zal aan dit project blijven werken en hier zijn enkele ideeën:

  • Een "big trak" -stijlcontroller waarbij je een reeks opdrachten programmeert zoals "links 10, vooruit 6, terug 2 …" en vervolgens op "rennen" drukt en de robot voert de opdrachten uit.
  • Een kantelbare nek, zodat je met de webcam naar boven kunt kijken
  • Een spreker die tekst van de controller vertaalt naar spraak
  • Spraakgestuurde bediening

Proost

Peter

Aanbevolen: