Inhoudsopgave:

3D-geprinte Raspberry Pi Zero-robot - Ajarnpa
3D-geprinte Raspberry Pi Zero-robot - Ajarnpa

Video: 3D-geprinte Raspberry Pi Zero-robot - Ajarnpa

Video: 3D-geprinte Raspberry Pi Zero-robot - Ajarnpa
Video: 15 Brilliant Raspberry Pi Zero projects to learn and try! 2024, Juli-
Anonim
Image
Image
3D-geprinte Raspberry Pi Zero-robot
3D-geprinte Raspberry Pi Zero-robot
3D-geprinte Raspberry Pi Zero-robot
3D-geprinte Raspberry Pi Zero-robot

Heb je ooit een robot willen bouwen, maar had je niet alle materialen om er een te bouwen zonder een onnodig omvangrijk chassis te krijgen? 3D-printers zijn er om de dag te redden! Ze kunnen niet alleen onderdelen maken die compatibel zijn met vrijwel alle hardware, ze kunnen dit ook op een zeer ruimtebesparende manier doen. Hier zal ik je laten zien hoe je een zeer eenvoudige robot kunt maken met 3D-geprinte onderdelen, de Raspberry Pi Zero en de Pi-camera. Ik zou je willen aanmoedigen om te nemen en aan te passen wat ik heb gedaan om aan je praktische of entertainmentbehoeften te voldoen. Om de robot te besturen en de camerafeed te bekijken, heb ik een IOS-app gebouwd (de PiBotRemote-app) die je gerust kunt gebruiken en aanpassen. De echte kracht in projecten als deze zit echter in de diversiteit aan mogelijkheden in zowel hardware als software. Dus ik zou je willen aanmoedigen om creatief te zijn en toe te voegen aan wat ik heb gedaan, afhankelijk van wat je weet hoe te doen. Ik denk bijvoorbeeld dat het gaaf zou zijn om deze robot machine vision te laten gebruiken om zijn omgeving te herkennen en op dezelfde manier te navigeren als een zelfrijdende auto.

Stap 1: Vereisten

Vereisten
Vereisten
  • Materialen

    • Vereist (ongeveer $ 75)

      • Raspberry Pi Nul W ($10)
      • Micro SD-kaart ($ 8,25)
      • 40-pins kop ($ 3,25)
      • Doorverbindingsdraden ($ 6,86)
      • USB-batterij ($ 5,00)
      • 900 RPM Micro-reductiemotor x 2 ($ 12,95 per stuk)
      • Motorstuurprogramma ($ 4,95)
      • Wielen ($ 6,95)
      • 14 mm stalen kogellager ($ 0,62)
      • Schroeven, moeren en afstandhouders (zie hieronder)
    • Optioneel (ongeveer $ 45)

      • LED's
      • Raspberry Pi-camera ($ 29,95)
      • Pi nul camera-adapter ($ 5,95)
      • Servomotor ($ 8,95)
    • Gereedschap

      • 3D-printer en filament
      • Computer (ik gebruik een mac, en je hebt er een nodig als je de PiBot Remote-app wilt gebruiken)
      • iPhone/iPad/iPod Touch (als je de app gaat gebruiken)
      • Oefening
      • Schroevendraaier met verwisselbare punten

Meer info over onderdelen

  • Pi Zero: als je de Pi Zero alleen voor dit project wilt gebruiken, kun je de hele tijd zonder hoofd draaien. Anders moet u, als u ooit een HDMI-uitgang of USB-randapparaat wilt aansluiten, extra adapters aanschaffen. In dit geval is het waarschijnlijk de meest kosteneffectieve optie om een Pi Zero-kit te kopen, zoals deze ($ 24), die ik bij Amazon heb gekocht. Hoewel ik nog steeds een micro SD-kaart moest kopen, werd deze kit geleverd met de Pi Zero, beide benodigde adapters en veel verschillende headers. Dat kan allemaal nuttig zijn.
  • Micro SD-kaart: u kunt elke Micro SD-kaart gebruiken zolang deze minimaal 8 GB aan opslagruimte heeft.
  • Jumper Wires: Ik hou van dit soort jumpers omdat ze als een verbonden bundel worden geleverd. Hierdoor kan ik bijvoorbeeld een 9-draads gedeelte scheiden en de Pi en de motordriver netjes aansluiten.
  • USB-batterij: de batterij die ik van Sparkfun heb gekocht, is sindsdien niet meer leverbaar. Als gevolg hiervan zult u er een ergens anders moeten vinden. Degene die ik heb gekoppeld, leek op de mijne, maar ik heb hem niet gekocht en het kan zijn dat je de afdrukbestanden moet aanpassen aan je batterij. Zorg ervoor dat u een batterij vindt met een aangesloten micro-USB-kabel, omdat u hiermee rechtstreeks op de pi kunt aansluiten zonder overtollige draad.
  • Motor Driver: Ik zou aanraden om de duiker te gebruiken waar ik naar gelinkt heb, aangezien het vrij goedkoop is, en de print is ontworpen om precies op dat board te passen. Bovendien kunnen andere borden anders werken en heb je mogelijk andere resultaten.
  • 14 mm stalen bal: ik heb deze bal gewoon gebruikt omdat ik er toevallig een had liggen. Voel je vrij om andere maten te gebruiken, maar het kan zijn dat je de maat van de socket moet wijzigen. De bal zal dienen als het 3e wiel voor onze robot. Dit is een van de ontwerpgebieden van mijn robot die momenteel het meest problematisch is en de meeste verbetering zou kunnen gebruiken. Hoewel het prima werkt op gladde, harde oppervlakken, heeft het problemen op tapijten en ruwere oppervlakken. Voel je vrij om dit gebied van je ontwerp te veranderen.
  • Schroeven, moeren, afstandhouders: het kan zijn dat u wat moeite moet doen om schroeven te vinden die voor u werken. Ik vond gewoon de schroeven die de Pi bevestigen, evenals de schroeven die de Pi Camera-montage bij elkaar houden in de schroevencollectie van mijn vader. Voor de motorsteunen en -bussen heb ik deze schroeven ($ 2,95) en deze ($ 1,50) moeren gebruikt, die beide verkrijgbaar zijn bij Sparkfun. De afstandhouders en 8 schroeven (ik heb er per ongeluk maar 4 op de afbeelding opgenomen) die de robot bij elkaar houden, heb ik uit de ongebruikte VEX-kits van mijn school gehaald.
  • LED's: Ik weet zeker dat je weet waar je gemakkelijk wat LED's kunt vinden. Kies de kleuren die je voor de functies wilt weergeven: voeding, verbinding, robot-afspeelpad en robot-ontvangstinstructie.
  • Camera en servo: afhankelijk van wat je met je robot wilt doen, kun je ervoor kiezen om de camera en servo niet op te nemen, omdat ze niet nodig zijn voor basisbewegingen, en $ 45 toevoegen aan de kosten van de robot.

Stap 2: Pi Zero Setup

Pi Zero-configuratie
Pi Zero-configuratie

Volg deze link om een headless installatie op je Raspberry Pi Zero W in te stellen

  • Vergeet niet dat de Pi Zero geen verbinding kan maken met een 5GHz wifi-netwerk
  • Zorg ervoor dat u de instructies voor Raspbian Stretch of hoger volgt

Zodra je succesvol verbinding hebt gemaakt via SSH met je pi, voer je

sudo raspi-config

en wijzig de volgende configuraties:

  • Wijzig uw wachtwoord. Het is erg gevaarlijk om het standaardwachtwoord Raspberry te laten staan. Zorg ervoor dat u dit wachtwoord onthoudt.
  • Wijzig in Netwerkopties de hostnaam van raspberrypi in iets korters zoals pizero of pibot. Ik zal pibot gebruiken voor de rest van deze tutorial. Vergeet niet te onthouden wat je hier hebt neergezet.
  • In Boot options -> Desktop / CLI, selecteer Console Autologin
  • Ga naar interface-opties en schakel de camera in

Selecteer Voltooien en start het apparaat opnieuw op.

Stap 3: het AdHoc-netwerk instellen

Door een AdHoc-netwerk op te zetten, kunnen we ons besturingsapparaat rechtstreeks op de robot aansluiten zonder tussenpersonen. Dit zorgt voor snellere streaming van video en een lagere latentie van controle. Deze stap is echter niet nodig omdat alles nog steeds via een normaal wifi-netwerk werkt.

Eerst moet je alle benodigde bestanden van GitHub downloaden en uitpakken. Navigeer in terminal naar de gedownloade map en stuur de PiBotRemoteFiles-map naar de pi met de opdracht:

scp -r PiBotRemoteFiles/ [email protected]:Desktop/

Deze stuurt alle benodigde bestanden naar de robot die hem bestuurt en het AdHoc-netwerk opzet. Zorg ervoor dat de bestanden zich in een map met de naam "PiBotRemoteFiles" bevinden die zich op het bureaublad bevindt; anders zullen veel dingen onderweg niet werken. Als je de PiBot Remote-app gaat gebruiken, kun je in de app-instellingen schakelen tussen normaal wifi en een AdHoc-netwerk. Anders kunt u het handmatig wijzigen via SSH met een van de volgende opdrachten:

sudo bash adhoc.sh

sudo bash wifi.sh

Zorg er natuurlijk voor dat u naar de map PiBotRemoteFiles bent genavigeerd voordat u de voorgaande opdrachten uitvoert. Elke wijziging tussen AdHoc en Wi-Fi wordt pas van kracht na de volgende herstart. Als een AdHoc is ingesteld, zou u een PiBot-netwerk moeten zien verschijnen wanneer de Pi Zero opstart.

Stap 4: Voeg een Power-LED toe

Voeg een Power-LED toe
Voeg een Power-LED toe

Hoewel het zeker niet nodig is, kan het handig zijn om een aan/uit-lampje te hebben. Om dit te activeren, SSH in de Pi Zero en voer de opdracht uit:

sudo nano /etc/bash.bashrc

En voeg de volgende regel toe aan het einde van het bestand:

python /home/pi/Desktop/PiBotRemoteFiles/startup.py

We zullen later de GPIO-pin wijzigen die is gekoppeld aan de power-LED.

Stap 5: RPi Cam-webinterface instellen

RPi Cam-webinterface instellen
RPi Cam-webinterface instellen
RPi Cam-webinterface instellen
RPi Cam-webinterface instellen

Om gebruik te maken van de videostream van Raspberry Pi Camera's, gebruiken we de RPi-Cam-Web-Interface. Informatie over deze module is hier te vinden en hun code staat op GitHub. Om de module te installeren, moeten we eerst onze Pi updaten. Dit kan tot ongeveer 10 minuten duren.

sudo apt-get update

sudo apt-get dist-upgrade

We moeten dan git installeren:

sudo apt-get install git

En we kunnen eindelijk de module installeren:

git kloon

RPi_Cam_Web_Interface/install.sh

Nadat de module is geïnstalleerd, verschijnt een configuratievenster. Als je een gebruikersnaam en wachtwoord wilt toevoegen, zorg er dan voor dat je dezelfde gebruikersnaam en hetzelfde wachtwoord gebruikt als je pi-account. Anders kan de PiBot Remote-app de camerastream niet ontvangen.

Als je nu naar een browser gaat op een apparaat op hetzelfde netwerk als de Pi en als de camera is aangesloten op de pi, kun je de stream ontvangen door naar https://pibot.local/html/# te gaan. De RPi-interface zorgt voor eenvoudige bediening van de camera en door op de video te tikken of te klikken, kan deze op volledig scherm worden weergegeven. We zullen dit later gebruiken met de PiBot remote app.

We zijn nu klaar met het instellen van de Pi Zero, op naar de leuke dingen!

Stap 6: alles afdrukken

Alles afdrukken
Alles afdrukken
Alles afdrukken
Alles afdrukken

Hoewel ik een Dremel 3D-printer met PLA-filament heb gebruikt, voel je vrij om je eigen printers en materialen te gebruiken. Alle STL-bestanden bevinden zich in de map die u hebt gedownload van GitHub. Ik kon alles in vier batches uitprinten: de bovenplaat, de onderplaat, alle houders en doppen, en de ring. Wees creatief in uw kleurkeuze en profiteer optimaal van de mogelijkheden van 3D-printers. Mijn printer had geen dubbele extrusie of dergelijke luxe functies, maar als ik toegang heb tot zo'n printer, zou ik aanraden om de decoraties op de bovenkant van de bovenplaat in een contrasterende kleur af te drukken. U zult waarschijnlijk moeten vijlen en boren om sommige stukken te laten passen.

Voel je vrij om de bovenplaat te schilderen om LED-symbolen en decoraties zichtbaar te maken.

Je hebt misschien twee bevestigingen aan de uiteinden van de bodemplaat opgemerkt die lijken op het GoPro-montagesysteem. Voel je vrij om deze te gebruiken om wat je maar wilt aan de voor- of achterkant van de robot te bevestigen. In het blenderbestand kun je een droog uitwisbare markeringsbevestiging vinden die ik heb gebruikt, evenals een sjabloonobject dat je kunt aanpassen om je object vast te houden.

Voel je ook vrij om elke richting als vooruit te definiëren; Ik heb tot nu toe minstens drie keer gewisseld.

Stap 7: Soldeer op de headers

Soldeer op de headers
Soldeer op de headers
Soldeer op de headers
Soldeer op de headers
Soldeer op de headers
Soldeer op de headers

Hoewel ik ervoor heb gekozen om headers op de PiZero te solderen, kun je je draden rechtstreeks op de pi solderen. Als je ervoor kiest om headers te solderen zoals ik deed, raad ik je aan er een te gebruiken met een rechte hoek zoals de mijne. Het houdt de draden veel meer verborgen en zorgt ervoor dat alles er veel netter uitziet.

Nu is het tijd om de motordriver te solderen. De bodemplaat is speciaal ontworpen voor deze Sparkfun-motordriver en biedt ruimte voor de for pin-header om uit de bodem te steken. Hierdoor kunnen motorpinnen eenvoudig worden verwisseld, zodat u links en rechts en vooruit en achteruit kunt wisselen. Hoewel ik nu de volgende stap opneem, raad ik je ten zeerste aan om een paar stappen te wachten totdat je precies weet hoe lang je draden moeten zijn. Knip een 9-draads gedeelte van jumperpinnen af die compatibel zijn met de headerpinnen die u zojuist in de pi hebt gesoldeerd. Soldeer elke draad zorgvuldig zodat de groep samen plat kan liggen en om de batterij kan worden gewikkeld. Meet vooraf de lengte van de draad af, zodat u niet te weinig of te veel krijgt.

Eindelijk is het tijd om de LED's te solderen. Plak ze op hun respectievelijke locaties op de bovenplaat en vouw alle grondpennen op elkaar. Soldeer één draad aan de grond en één draad aan elke LED. Van links naar rechts zijn de functies van de LED's: robotvoeding, app-connectiviteit met de robot, de robot speelt een opgeslagen pad opnieuw af en instructies worden ontvangen door de robot.

Soldeer ook draden aan elke motor, zodat ze kunnen worden aangesloten op de headers die van de motordriver komen.

Stap 8: Schroef de motor en socket vast

Schroef de motor en socket vast
Schroef de motor en socket vast
Schroef de motor en socket vast
Schroef de motor en socket vast
Schroef de motor en socket vast
Schroef de motor en socket vast
Schroef de motor en socket vast
Schroef de motor en socket vast

Plaats eerst elke motor in een motorsteun. Steek vervolgens elke schroef gedeeltelijk in, net totdat de punt het oppervlak van de houder of het stopcontact bereikt. Houd vervolgens voor elke schroef een moer aan de andere kant van de plaat op zijn plaats terwijl u elke schroef vastdraait. Vergeet niet om het lager tussen de twee bussen te plaatsen terwijl u de tweede vastschroeft. Plaats de motoraandrijving op zijn plaats en sluit de motoren aan. Het maakt niet uit welke motor op elke uitgang is aangesloten, want u kunt deze eenvoudig wijzigen zodra de robot aan de gang is.

Stap 9: Maak de camera en servo klaar

Maak de camera en servo klaar
Maak de camera en servo klaar
Maak de camera en servo klaar
Maak de camera en servo klaar
Maak de camera en servo klaar
Maak de camera en servo klaar
Maak de camera en servo klaar
Maak de camera en servo klaar

Steek het Pi Zero-adapterlint in de camera en schroef de camerabehuizing in elkaar. Plaats de servo op zijn plaats. U kunt de schroefgaten voor de servo boren, maar het is voldoende knus genoeg. Bevestig de camera op de servo op de manier die u het beste vindt. Momenteel heb ik twee gaten in de houder, met een nietje dat door de servohoorn en de camerabehuizing gaat. Dat laat echter veel speelruimte over, dus misschien wilt u superlijm gebruiken. Richt de camera in de gewenste richting en schroef de servohoorn op zijn plaats. Steek het cameralint door de gleuf bij de framboos en steek het in de pi. Vouw ten slotte het lint om het plat tegen de batterij te houden.

Stap 10: Alles samenbrengen

Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten

Het is eindelijk tijd dat alles één geheel wordt. Steek de draden van de LED's, motordriver en servo zo in de Pi dat je alleen geldige pinnen gebruikt, maar houd ze dicht bij hun uitgang. Plaats vervolgens de draden door hun sleuven en schroef de pi op zijn plaats. Dit is ontworpen om strak te zitten om alles netjes te houden, dus geef niet op als het lijkt alsof er niet genoeg ruimte is voor die grote springpinnen.

Schroef elke afstandhouder in de bodemplaat zodat ze allemaal stevig vast zitten. Plaats de batterij en zorg ervoor dat de stroomkabel door de sleuf en in de stroompoort van de Pi Zero past. Wikkel de draden van de motoraandrijver eromheen en plaats de ring rond alles. Zodra je alle draden in de ruimte tussen de batterij en de bovenplaat hebt geperst, kleine richel op de bodemplaat in de ring en de twee hoge punten op de ring in de bovenplaat. Je kunt nu de bovenplaat vastschroeven en je hebt je robot gebouwd!

Stap 11: Open het Xcode-project

Open het Xcode-project
Open het Xcode-project
Open het Xcode-project
Open het Xcode-project
Open het Xcode-project
Open het Xcode-project

De volgende paar stappen zijn alleen van toepassing als u de PiBot Remote-app gaat gebruiken, waarvoor een Mac en een IOS-apparaat nodig zijn.

Omdat ik goedkoop ben en geen betaald Apple Developer-account heb, kan ik alleen het Xcode-project delen, niet de app zelf. U kunt het project vervolgens zelf openen, de ondertekening wijzigen en het op uw eigen apparaat starten.

Als je Xcode nog niet hebt, download het dan uit de app store op je Mac. Zodra Xcode is geladen, kiest u "Open een ander project" in de rechterbenedenhoek en navigeert u naar de map "PiBot Remote" in de GitHub-download.

Zodra het project is geopend, klikt u op het rootbestand in de weergave uiterst links genaamd "PiBot Remote".

Verander de "Bundle Identifier" in iets unieks. Je zou mijn naam kunnen vervangen door de jouwe, of iets aan het einde kunnen toevoegen.

Verander het Team, naar uw eigen persoonlijke account. Als je er nog geen hebt, selecteer je 'Een account toevoegen'.

Druk op command-B om te bouwen en hoop dat alles correct werkt. Nadat u het project met succes hebt gebouwd, sluit u uw apparaat aan op uw computer. Klik op de knop rechts van de afspeel- en stopknoppen in de linkerbovenhoek en selecteer uw apparaat.

Druk op command-R en de app zou op je apparaat moeten starten. Uw apparaat moet mogelijk identiteiten verifiëren voordat het wordt uitgevoerd en heeft alleen op dit moment internettoegang nodig.

Stap 12: Laatste aanpassingen

Laatste aanpassingen
Laatste aanpassingen

Je kunt de pinnummers voor alles aanpassen, behalve de power-LED in de PiBot Remote-app. Om de pin voor de power-LED te veranderen, SSH in de PI, en voer de opdracht uit:

/home/pi/Desktop/PiBotRemoteFiles/startup.py

Verander de twee instanties van 36 in de GPIO-pin die je hebt gebruikt. Druk dan op control-X, y, enter.

De app en server zijn beide gevoelig voor fouten. Gebruik de console in debug-modus om erachter te komen wat er aan de hand is. Probeer bij twijfel de Pi opnieuw op te starten en/of de app opnieuw op te starten. Soms kan de app na een codefout geen verbinding meer maken omdat het adres al in gebruik is. Verander in dit geval gewoon de poort en de app zou verbinding moeten maken.

Wanneer u de robot bestuurt met het gaspedaal op uw apparaat, moet u ook enkele onhandige gebaren gebruiken om te kalibreren, te stoppen/starten, de camera aan te passen en de tabbalk te tonen/verbergen

  • Kalibreren: Tik en houd 0,5 sec met twee vingers vast (als uw apparaat dit ondersteunt, voelt u haptische feedback zodra het apparaat is gekalibreerd
  • Camera aanpassen: het meest lastige gebaar, doe wat eerder is beschreven om te kalibreren, sleep vervolgens uw vingers omhoog om de camera omhoog te bewegen en sleep naar beneden om de camera omlaag te bewegen. De aanpassing wordt gemaakt zodra u uw vingers optilt.
  • Stop/Start-omschakelen: wanneer u naar de weergave van de versnellingsmeter gaat, is de robot aanvankelijk ingesteld om bewegingsopdrachten te negeren. Dubbeltik met twee vingers om deze instelling te wijzigen.
  • Tabbalk tonen/verbergen: om weergave op volledig scherm mogelijk te maken tijdens het rijden met de versnellingsmeter, wordt de tabbladbalk na een paar seconden automatisch verborgen. Veeg omhoog om het opnieuw weer te geven. Veeg naar beneden om het te verbergen.

Als je gefrustreerd raakt door de problemen en ongemakken van mijn app, onthoud dan dat ik geen formele opleiding in programmeren heb gehad. Dus graag advies en suggesties. Voel je vrij om mijn GitHub-bestanden te forken.

Als ik aanpassingen maak op GitHub, pas ze dan toe op de robot door de bestanden te downloaden en ze via recursieve SCP naar de Pi op de juiste locatie te sturen. Als je het Xcode-project hebt gekloond, trek je gewoon de wijziging door. Anders kunt u het project downloaden en stap 11 volgen om de app op uw apparaat te openen.

Als je iets interessants doet met deze tutorial, laat het me dan weten in de comments, ik ben geïnteresseerd om te zien hoe het kan worden gebruikt als een sjabloon voor allerlei fascinerende projecten.

Aanbevolen: