Artikel top billede

(Foto: Computerworld)

Guide: Lav robotter med Raspberry Pi

Vi konstruerer en hær af Pi-robotter. Vov dig indenfor, og forgrib dig på vores teknikker .

Af Torben Okholm, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Robotvidenskab behøver ikke at dreje sig om at bygge humanoide maskiner. Vi kan lave maskiner, som kan udføre alle mulige andre nyttige, instruktive og sjove funktioner. Og for at det ikke skal være løgn, kan man køre dem med Linux.

Man behøver ikke kostbar elektronik til at lave disse enheder. En Raspberry Pi kan klare det. Opgaven behøver heller ikke at være mere avanceret, end det er at bygge en Lego-konstruktion. Der findes masser af færdige sæt, som egner sig til enhver famlende elektronik-entusiast.

Vi viser, hvordan du kan sammensætte din egen robot, og vi henviser dig til et par fikse Python-programmer, så du kan komme i gang. Og hvis du har blod på tanden, hvorfor så ikke lave dine egne robothjælpere fra grunden? Takket være det voksende robotmiljø er alle komponenterne nemme at få fat i.

Hvis du har hang til ekstremer, kan du 3D-printe dine egne skræddersyede dele og føje noget pseudo-menneskelighed til dit værk ved hjælp af en portion maskinlæring-voodoo. Eller bygge dit eget robotkæledyr, så det følger efter dig som en hundehvalp. Mulighederne er uden ende. Tænd for din Pi, anskaf nogle komponenter, og lad os komme i gang med at smække nogle robotter sammen.

En Pi-bots potentiale

Vi taler ikke om at lave en Terminator a la Schwarzenegger i en Pi-udgave, men du skal da endelig ikke holde dig tilbage.

aspberry Pi blev lanceret for seks år siden, og siden da har fænomenet udviklet sig til noget forbløffende. Vi har set fire forskellige hoved-versioner (Zero, 1, 2 og 3) og et par mindre udgaver – den seneste er den stærke 3 B+, der kom i marts 2018.

Pi-forhandleren ModMyPi.com har været med fra begyndelsen og har været så elskværdig at give os nogle godbidder til denne artikel. Grundlæggeren, Jacob Marsh, har sit syn på Pis bemærkelsesværdige succes. “Jeg var ikke klar over, at Raspberry Pi ville blive til det, den er i dag. Det tror jeg ikke engang, at Pi Foundation var. ModMyPi blev undfanget på et kollegieværelse. I dag har vi en global e-shop med mere end 2000 produktserier, en omsætning på 3 millioner pund, syv fuldtidsansatte og et lager på 300 kvadratmeter, som slet ikke rækker. Må den udvikling fortsætte!”

Det, der gør Pi så speciel og bidrager til Jacobs pladsproblemer, er de ubegrænsede muligheder for udvidelse. Tag en lillebitte allround-computer, som man kan slutte til sensorer, motorer eller centralvarmesystemet. Kombiner den med den samlede iderigdom hos open source-miljøet, og inden vi får set os om, har vi alle mulige former for herlige fysiske computeranvendelser. Og en af de mest overbevisende er robotvidenskab. Se et øjeblik væk fra den drabelige illustration ved artiklens begyndelse. Enhver situation, hvor en computerstyret enhed foretager en mekanisk funktion, er i virkeligheden en robot.

Dexters GoPiGo-robot er et populært valg til undervisning.

Robotkøretøjer er særlig populære hos Pi-hobbyfolk i øjeblikket. Umiddelbart ligner de måske blot radiostyrede biler, men de kan meget mere end at drøne rundt om køkkenbordet. Når man har en lille Linux-maskine indeni, åbner der sig verden af muligheder. Med adgang til nogle få brugervenlige komponenter, nogle open source-biblioteker og en lille smule Python-programmering, der binder det hele sammen, er den eneste begrænsning din fantasi. Bevares, du får måske brug for at lodde et par ledninger. Det kan i begyndelsen virke udfordrende, men der er masser af guider på internettet. Du kan se Pi Foundations uddannelseschef, Carrie Anne Philbin, give en fremragende demonstration på https://youtu.be/P5L4Gl6Q4Xo.

En Pi-robot kan køre Raspbian-Linux. Den kan forbinde trådløse netværk, således at man med SSH kan gå ind og foretage diagnostik, mens robotten kører rundt. En Pi-drevet robot kan også tage billeder, zoome rundt i huset, mens den citerer Shakespeare – eller flyve højt og beundre landskabet. Ved hjælp af OpenCV-biblioteket og lidt billedbehandling kan vi give vores robotcomputer et syn, hvormed den kan finde og følge genstande eller måske endda genkende genstande eller mennesker. Kast dig blot ud i vores guide, og glem ikke at søge inspiration hos www.modmypi.com.

Robot-Platforme

Vi koncentrerer os her om den elementære software, nemlig Raspbian og Python, men der er en række interessante platforme, som man kan køre ovenpå eller ved siden af dem, og man kan også bruge dem i stedet for disse kendte versioner. En sådan platform er Robot OS (ROS, se www.ros.org), der strengt taget slet ikke er et operativsystem, men snarere middleware. ROS er et BSD-licenseret projekt med tusindvis af bidragsydere over hele verden. Man kan bygge det ud fra Raspbian, men da det omfatter pakker til Pi-versionen af Ubuntu MATE, er denne platform den foretrukne basis.

ROS’ formål er at være en allround-robotsoftware, der virker på mange platforme og lægger op til samarbejde. Vi er også imponerede over indsatsen fra Dexter Industries (www.dexterindustries.com), der laver robotbilen GoPiGo. GoPiGo henvender sig til klasseværelset, og den bliver programmeret ved hjælp af Bloxter, som er et browser-baseret sprog, der minder om Scratch. Med Blockly-interfacet kan mere kvalificerede elever også programmere i Python.

Fans af Lego kan få glæde af Dexters BrickPi, som forbinder Raspberry Pi med det populære Lego Mindstorms. Som om det ikke var nok, laver firmaet også Grove Pi, der er et sæt med 12 sensorer til udforskning af IoT-programmer.

DiddyBorg for sjov

Robotkonstruktion er langt mere enkel, end man skulle tro. Se blot her.

De flinke folk hos ModMyPi har sendt os en Diddy-Borg v2, som vi kan lege med. Det er vi glade for. Borg-serien blev designet af PiBorgs Timothy Freeburn, der siger, at “DiddyBorg er en robot på seks hjul og en hyldest til Mars-køretøjet Sojourner Rover”. PiBorg slog sig sammen med ModMyPi i oktober 2017. Jacob Marsh siger om samarbejdet: “Tim og jeg var begge med, da grundstenen til den oprindelige Raspberry Pi B blev lagt. Jeg lavede kabinetter, og Tim udviklede motor-controllere og LED-dingenoter (www.piborg.org/ledborg/). Da ModMyPi udviklede sig til en større salgsorganisation, var Tims produkter derfor nogle af de første, vi tog med.”

“Efterhånden som markedet udviklede sig i årenes løb, erkendte vi et behov for mere udviklingsarbejde i firmaet, og Tim kunne se værdien i at bruge vores distributionsnet til sine produkter. Så kunne han nemlig bruge mere tid på nye og cool projekter, og vi kunne bruge mere tid på at sælge og afsende sagerne. Vi arbejder begge godt med vores forskellige mål, og kemien er god. Det var derfor oplagt at slå os sammen.”

Vores Diddyborg omfatter seks kraftige 12 V-motorer på 100 omdrejninger i minuttet, der er drevet af 10 AA-batterier. Senere vil vi se på alternative strømkilder. Strømmen bliver fordelt af et ThunderBorg-kort, der kan håndtere 5 A pr. motor. Det har et mangefarvet LED (nyttigt til overvågning af batteristatus), og vi er sikre på, at folk synes, at det ser godt ud. I stedet for at bruge nogle komplicerede servo-arrangementer til styring, kører DiddyBorg ved at dreje sine hjul ved forskellige hastigheder.

Disse borgs og mange andre robotter bliver solgt som gør det selv-sæt. I nogle tilfælde kan processen være ganske krævende; den kan omfatte små dele, lodning og enkelte eder. Det tager et par timer at bygge en Diddy fra start til slut, og du kan finde anvisninger på www.piborg.org/blog/build/diddyborg-v2-build/diddyborg-v2-build-instructions. Det ville være fjollet at gengive dem i deres helhed her, men læs i hvert fald vores guide til robotbyggeri på næste side. Vi har bygget den på DiddyBorg, fordi vi har sådan en, men konstruktion af andre robotter følger et tilsvarende mønster.

Hvis du kan, er det en god ide at arrangere din Pi så godt, du kan, før du begynder på byggeriet. Man kan naturligvis SSH’e til robotten, når den er bygget og justere sagerne (forudsat at du på forhånd har fortalt den om dit trådløse netværk), men tung, trådløs belastning vil dræne batterikraft, som ellers kunne have været brugt til at drøne rundt på kontorgulvet og genere kollegerne. Hvis du har en anden Raspberry Pi og er fiks på fingrene, kan du tage SD-kortet ud efter byggeprocessen og foretage justeringer på den anden enhed.

1 Organiser din arbejdsplads

Vi ved, hvor fristende det er at springe ud i det og hælde alle posernes indhold ud på dit i forvejen rodede bord. Lad være med det. Ryd i stedet et godt arbejdsområde, læs anvisningerne grundigt, og placer alle de nødvendige stykker værktøj på den ene side. Hvis du skal lodde noget, bør du sørge for, at det finder sted på et godt ventileret område. Hav noget aflodningstråd indenfor rækkevidde.

2 Montér beslagene

Motorerne bliver som regel monteret på chassisets underside ved hjælp af vinklede beslag. Find de rigtige huller, og monter disse beslag med passende møtrikker og skruer. DiddyBorg bruger støtte-skruer til at sikre beslagene. Glem ikke at bruge pakninger, hvis chassiset har brug for dem. Det er med til at fordele belastningen og beskytter mod revner i chassiset.

3 Monter motorer og controller

Sæt motorerne på plads med de rette skruer. DiddyBorg bruger fjederpakninger til at sikre friktionen, selv hvis fikseringsskruen bliver løsnet. Ingen ønsker at se motoren falde af, mens robotten er i gang. Monter nu motorcontrolleren på chassiset, eller monter eventuelle afstandsskruer og monter så controlleren. Bemærk controllerens placering her.

4 Lod og montér

Klip de krævede stykker ledning, og fjern isolering fra enderne. Vi kan ikke lære dig at lodde i denne lille tekstboks, men vær omhyggelig. Lod de røde ledninger (hvis det er påkrævet) til motorernes positive sider og de sorte til de negative. Brug et stykke stanniol til at fange eventuelle dråber og beskyt chassiset. Slut ledningerne til de rette controller-terminaler.

5 Tilslut din Pi og batterier

Fastgør batterisættet og kontakten til chassiset, og forbind dem så til controlleren. Ved stærkere robotter kan dette omfatte kraftig kabelføring til motorerne. Sørg for, at SD-kortet sidder i din Pi (og at Raspbian er indstillet til at bruge dit trådløse netværk og din Bluetooth-controller), og monter Pi på chassiset. Pas på ikke at stramme skruerne for meget.

6 Gør projektet færdigt

Forbind controlleren til de rette GPIO-pins på din Pi (sørg for, at stikkene vender den rigtige vej). Monter eventuelt robot-ekstraudstyr (såsom sensorer eller kameraer). Placer hjulnavene til motorerne sikkert med grubskruer, og tjek, at der er tilstrækkelig plads til, at de kan dreje frit. Til sidst sætter du hjulene på navene og skruer dem omhyggeligt på plads.

Beskæftig din robot

Det, du kan gøre med din robot, er kun begrænset af din fantasi og din koncentrationsevne. Her får du et par forslag til inspiration.

Da vi havde konstrueret vores Diddy, ville vi vide mere om, hvad den kunne gøre. PiBorg er ikke tilfreds med kun at lave fortræffelig hardware; man har også skrevet nogle glimrende kodeeksempler, der kan få dig i gang. De kræver nogle justeringer, hvis de skal virke på anden hardware, men de kan give dig en ide om, hvordan man taler med hardwaren i Python.
Robotsæt leverer scripts, der kan klare al kommunikation på lavt niveau.

I vores tilfælde bliver det gjort via filen ThunderBorg.py (se www.piborg.org/blog/build/thunderborg-build/thunderborg-examples). Den håndterer al den rå I2C-kodning, således at man ikke behøver at bekymre sig om det. Den rummer også langt mere menneskevenlige funktioner såsom SetMotor1() , der indstiller hastigheden på de venstre hjul.

Webkontrol

Hvis vi antager, at din Pi er forbundet til et trådløst netværk, kan man styre den ved at lade den køre en lille webserver med en HTML-styreform. Hvis din robot er udstyret med et kamera, kan du streame videoen til denne webside og opnå en herlig video-køreoplevelse.

Det er mindre kompliceret, end man skulle tro, at oprette en streaming video-processor i Python. Men det er alligevel for kompliceret til at blive dækket i dette overblik. Du kan i stedet studere det DiddyBorg-webeksempel, man kan finde på www.piborg.org/blog/build/diddyborg-v2-build/diddyborg-v2-examples-web-ui, og se, hvordan magien finder sted. Hvis du er så heldig, at du er ejer af en DiddyBorg, kan du kopiere dette script til den.

Borg-serien

Monsterborg kan køre ved høj hastighed og er ikke bange for offroad-kørsel.

PiBorgs Borg-serie består af tre robotter: DiddyBorg, MonsterBorg og YetiBorg. DiddyBorgs karakteristiske flade top betyder, at man kan montere al muligt på den. For eksempel en frygtindgydende robotklo. Man kan omkonfigurere den med Multifunction Top, således at man kan montere en ekstra Pi, eller bruge Touch Top til at inddrage den officielle Raspberry Pi-touchscreen. Man kan også udstyre den med for- og bag-Pi Camera, og man kan bruge ultrasoniske sensorer til at undgå forhindringer. Så er der MonsterBorg. Den maskine skal man ikke kimse ad.

Med sine solide 4”-hjul kan den pløje sig igennem offroad-terræn. PiBorg organiserer Formula Pi-racerløbet, og race er det, MonsterBorg er bedst til. Dens 3 milli-meter tykke aluminium-chassis sikrer, at den kan overleve næsten ethvert crash. Endelig har vi den adrætte YetiBorg. Den bliver styret af en Pi Zero (der er inkluderet) og et enkelt 9 V-batteri. YetiBorg bruger den specielle ZeroBorg-motorcontroller. Den muliggør uafhængig kontrol af de fire motorer. Man kan bruge den i to forskellige konfigurationer: low-profile og offroad. Hvis den triller rundt, kan den i low-profile-tilstand selv fortsætte kørslen med maven i vejret. Hvis der er brug for lidt mere plads, kan offroad-tilstand sørge for, at chassiset undgår bump, og beskytte elektronikken imod pytter.

Gamepad-kontrol

Det er lidt nemmere at forholde sig til at styre din robot med en gamepad. Men vi har konstateret, at sådan en kan kræve lidt overtalelse for at fungere, når der ikke kører et GUI (for eksempel når din Pi ikke er sluttet til en skærm). I teorien kunne du arrangere dette på forhånd, eller du kunne fjerne SD-kortet fra robotten og boote den i en anden Pi – indstillingerne bør ligge i erindringen. Hvis de ikke gør det, kan vi arrangere det ved at SSH’e ind i vores robot.

Vi skal overvinde to forhindringer: det aktuelle Bluetooth-par og den efterfølgende indstilling af enheds-nodes. Sidstnævnte bliver håndteret af joystick -pakken (eller evdev som den er afhængig af) og førstnævnte af bluetoothctl -kommandoen (den bliver installeret som standard). Efter at have installeret joystick -pakken kører du bluetoothctl . Dette starter en konsol, hvor vi kan scanne, parre og tilslutte vores controller. Først sætter du enheden i parringstilstand, hvorefter du initierer en scan med scan on . Du bør nu se en liste over alle nærliggende Bluetooth-enheder og deres MAC-adresser. Forhåbentlig er din controller med her, og i så fald kopierer du adressen. Deaktiver scanningen med scan off . Dernæst parrer du med pair <MAC address> , tilslutter med connect <MAC address> og tager afsked med exit .

Kør nu evtest , der hilser dig med en liste over genkendte inputenheder. Vælg din ønskede controller, og tamp løs på knapperne. Du bør se en ny kryptisk respons for hver knap. DiddyBorg omfatter et eksempel-script til joypadkontrol, som bruger PyGame-bibliotekerne til at lytte til de relevante knap-handlinger.

Det er nemt at arrangere Bluetooth-gamepads fra Pixel-desktoppen. Gid det var så enkelt fra kommandolinjen.

Billedgenkendelse

I denne udgave af Alt om DATA finder du også en feature om maskinlæring. Hvis du har læst den, ved du, at vi nævner det at køre Tensorflow på en Pi. Det kan ske takket være Sam Abrahams, der har givet os prækompilerede wheel-filer til Python 2.7 og 3.4. Det er godt nyt, hvis du kører den næstseneste version af Raspbian (Jessie), fordi den omfatter Python 3.4. Hvis du derimod kører den seneste version (Stretch, der bruger Python 3.5), er du nødt til at bruge Python 2.7.

Det er fint nok at have to forskellige versioner af Python (Raspbian leverer dem begge som standard), men man kan ikke have 3.4 og 3.6 installeret samtidig, og 3.4-wheel virker ikke sammen med 3.6. Før vi går i gang, skal du være opmærksom på, at Tensorflows modellager er stort, og vi løb mere end én gang tør for plads med et SD-kort på 8 GB. Det er der råd for, hvis man fjerner større pakker såsom LibreOffice og Wolfram Alpha, men vi vil anbefale at bruge et kort på 16 GB. De følgende kommandoer arrangerer alt det, du har brug for:

$ wget https://github.com/samjabrahams/tensorflow-
on-raspberry-pi/releases/download/v1.1.0/tensorflow-
1.1.0-cp27-none-linux_armv7l.whl
$ sudo apt install python-pip python-dev python-pil
python-matplotlib python-lxml
$ sudo pip install tensorflow-1.1.0-cp27-none-linux_
armv7l.whl
$ git clone https://github.com/tensorflow/models.git

Dette sidste trin indleder en download på omkring 1 GB, så du skal være beredt. Hvis du løber tør for plads, kan du gentage processen: Efter at du har ryddet op, kører du git checkout -f HEAD fra models/ directory. Når det er afsluttet med held, tester du det med:

$ cd models/tutorials/image/imagenet
$ python2 classify_image.py

Dette burde identificere det bundlede pandabillede (der er blevet udpakket til /tmp/imagenet/cropped_panda.jpg). Scriptet kan også tage en --image-file -parameter og identificere brugerleverede billeder. Med en smule hokus-pokus kan vi tilpasse sagerne, tage et foto og prøve at identificere det. Eftersom hele processen tager omkring 10 sekunder på en Pi 3 (det kan man speede op ved at lade programmet køre i en løkke ved hjælp af C++ eller med en mere strømlinet Tensorflow-model), har vi faktisk ikke noget håb om at klassificere sagerne i realtid.

Tensorflow mente, at dette var en kanin, men ombestemte sig: Var der i virkeligheden tale om en kartoffel?

Hertil kommer, at det er sandsynligt, at et foto, der er taget ved jordens overflade med et Pi Cam, bliver svært at genkende for scriptet. Men det er helt i orden, det er blot en del af morskaben. Alt, hvad vi skal gøre, er at justere classify_image.py en smule. Kopier denne fil til classify_photo.py, og rediger så den nye fil. Du skal importere modulet picamera fra begyndelsen og derefter i funktionen main(_) erstatte den linje, der begynder med image = med noget i retning af:

cam = picamera.PiCamera()
cam.capture(‘/tmp/picam.jpg’)

Til sidst skal du ændre kaldet run_inference_on_image() , så det kører på vores nyligt gemte picam.jpg. Har du blod på tanden? Hvorfor ikke knytte det nye script til en knap-begivenhed? Man kan nemt tilpasse det controllerscript til DiddyBorg, som vi har behandlet tidligere.

Følg bolden

OpenCV er et stærkt framework til computersyn, der omfatter Python-bindings. Det bliver brugt til at tegne billedet i det førnævnte Web UI-eksempel, men vi kan bruge det til mere avancerede formål. Det er i stand til at genkende objekter i et billede, og det betyder, at vi kan få vores robot til at køre hen mod dem. Hvis disse objekter bevæger sig, vil den følge dem. Hvis det skal fungere, skal disse objekter være ret klare, for eksempel en bold med stærke farver. Du kan finde netop sådan et eksempel på www.piborg.org/blog/diddyborg-v2-examples-ball-following.

Vi skal konvertere billedet til HSV, således at OpenCV bedre kan genkende eventuelle genstande, der ligner røde bolde.

Udstyr til din robot

Der findes en hel verden af sært og sjovt ekstraudstyr, som kan føje funktionalitet til din robot og gøre den sjovere.

En simpel Pi-robot behøver ikke stort andet end chassis, strømkilde og hjul. Men det hele bliver sjovere, hvis man pifter basiskonstruktionen op med noget ekstraudstyr. Vi kan bruge velkendt Pi-udstyr såsom kamera og touchscreen på nye og innovative faconer, eller vi kan bruge andre enheder – sensorer, højttalere, servoer og andet – til for alvor at skrue op for festlighederne.

Anskaf en controller

Det kan være meget godt at styre en robot via et webinterface, men selv på et hurtigt netværk vil man uvægerlig komme ud for en vis grad af latens, der gør kørslen lidt slingrende. En kabelforbundet controller vil fungere driftssikkert, men det nytter ikke, hvis man ikke kan følge med sin robot.

Med en Bluetooth-controller kan man opnå langt mere nøjagtig kontrol over sin robotven. PlayStation 3-joypads er meget populære, når de bliver parret med sixpair-funktionen. Find flere oplysninger på www.piborg.org/blog/rpi-ps3-help. Der findes dog en række muligheder, og mange af dem fungerer uden videre med Raspbian. Class 1 Bluetooth-enheder har i teorien en rækkevidde på op til 100 meter, men de kan blive påvirket af interferens og dropouts.

Hvis du ikke har en Pi 3 eller en Bluetooth-adapter, er dette imidlertid ikke en mulighed, og det kan derfor være en ide at overveje en anden form for transmission og modtagelse. Den oplagte mulighed her er at bruge radiofrekvens (RF) i 2,4 GHz-båndet. Det kræver en kraftigere sender af den type, der bliver brugt i droner og andre radiostyrede luftfartøjer.

Denne fikse lille Bluetooth-gamepad viste sig at være
forbavsende praktisk i forbindelse med denne artikel.

Montér et Pi Camera

Uanset hvad du vil have din robot til at gøre, kan det aldrig skade at give den synets gave. Det kan du nemt gøre med Pi Camera-kortet, som du kan få hos alle gode udbydere. Pi Camera Module blev lanceret i 2013, og det var en af de første officielle add-ons til Pi. Den har fundet vej til alle mulige slags forbløffende projekter. Der kom en ny otte megapixel-udgave i 2016, og den blev fulgt af en miniudgave til Pi Zero.

Disse kameraer bliver forbundet via et båndkabel til det specielle CSI-interface. Det betyder, at systemets GPIO-pins kan bruges til andre sager. Med et beslag kan man nemt og sikkert montere kameraet, hvor det skal sidde, og hvis der er behov for fleksibilitet, findes der en række sæt, som gør det muligt at styre kameraet i forskellige retninger. Man kan også få udstyr til telefoto, fiskeøje og vidvinkel. Vi har på de foregående sider set, hvordan biblioteker som OpenCV kan bruges til at genkende genstande ved hjælp af kamera-input. Hvis du vil inddrage Pi Camera i dine kameraprojekter, kan du finde hjælp her:

$ sudo apt install python-picamera

Tilføj bevægelse ved hjælp af servoer

Servoer er motorer, som ofte har en begrænset rækkevidde. De kan for eksempel bevæge roret på en radiostyret båd. Andre kan foretage vedholdende rotation.
Servoer bliver styret af pulsbreddemodulation (PWM). Disse pulse skal være temmelig nøjagtige, ellers bliver servoerne forvirrede. For eksempel kan en servo have tre forskellige positioner: venstre, op og højre. Positionen bliver bestemt af hver puls’ længde: En puls på 1 ms kan angive den venstre position, en puls på 1,5 ms kan stå for op, og en puls på 2 ms kan flytte den til højre. Der er altså ikke megen plads til fejl.

En af Pis GPIO-pins bliver sluttet til en hardware-pulsgenerator, således at disse pulse kan blive genereret uden at skulle afbrydes, og uden at de bliver forlænget af et travlt styresystem. Imidlertid er en pulsgenerator sommetider ikke nok, og det er almindeligt at tilføje et HAT eller et andet udvidelseskort (muligvis en helt ny microcontroller som for eksempel en Arduino), der kan håndtere flere PWM-enheder. Du kan se, hvordan UltraBorg klarer det over et webinterface, på www.piborg.org/blog/build/ultraborg-build/ultraborg-examples-web-ui.

Forbedret batterikraft

Pi kan selv formidle strøm til små enheder via sine GPIOpins. Men de er begrænset til 3,3 V og kan kun transportere ganske lidt strøm. Derfor giver det ingen mening at levere strøm til kraftige motorer eller lygter gennem dem og med Pi forbundet til en standard-USB-strømkilde. Vi har set, at DiddyBorg får sin strøm fra 10 AA-batterier. Men den for tiden foretrukne porterbare strømkilde er afgjort litium-ion-batterier. De giver længere batteritid og mere kraft end deres nikkel-metalhydrid-slægtninge.

Skræm livet af dine kolleger ved at forsyne din DiddyBorg med en MeArm robotklo.

Batterier lider under drop i spændingen, når de nærmer sig slutningen på deres levetid, og det er der nogle komponenter (ikke mindst selv Pi), der er ret følsomme overfor. Derfor er en af de vigtige opgaver for Thunder-Borg, der forbinder DiddyBorgs batterisæt til Pi, at regulere strømforsyningen. Hvis der bliver registreret for lav spænding, mens kortet er tændt, slår det sig selv fra.

Tim Freeburn fortalte os lidt mere om denne fikse anordning: “Vi er meget stolte af ThunderBorg. Den store spændvidde, når det gælder spænding, var en central del af udviklingen fra begyndelsen. ThunderBorg har en lang række beskyttelsesmekanismer såsom slukning ved for lav spænding, kortslutningsbeskyttelse, varmebeskyttelse og beskyttelse mod for megen strøm. Takket være disse funktioner er det meget svært at ødelægge en enhed, blot man sørger for at tilslutte strømforsyningen i den rette rækkefølge.”

ThunderBorg har et meget klart (og eventuelt farverigt) LED, der visuelt oplyser om batteriets status.

Ultrasoniske sensorer

Foruden at bruge et kamera til at vurdere omgivelserne kan vores robot også opføre sig som en flagermus og bruge ultrasonske lyde til at orientere sig. En ultrasonisk sensor som HC-SR04 udsender periodiske, højfrekvente pulse, som kan opfanges, når de bliver reflekteret fra genstande i nærheden. Sensorerne måler den tid, der går, fra pulsen bliver udsendt, til dens refleksion bliver målt af sensoren.

Et litium-ion-batteri driver denne lille UPS HAT og sikrer, at ens Pi aldrig løber tør for strøm.

Sensoren ved, at lydens hastighed er omkring 340 meter i sekundet, og den kan således måle afstanden med rimelig nøjagtighed. Vores DiddyBorg omfatter et sæt til montering af tre sensorer i hvert hjørne. Man ville kunne bruge sådan en sensor til automatisering af
parallelparkering.

Man kan forsyne DiddyBorg med fire ultrasoniske sensorer, der fortæller, om der er forhindringer på vej.




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
Ed A/S
Salg af hard- og software.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
Compliance og strategisk it-sikkerhed efter DORA

Finansielle koncerner har i snit 85 sikkerhedsløsninger i drift – men er i snit op til 100 dage om at opdage et igangværende cyberangreb. Ydermere viser øvelser, at det typisk tager 4-6 uger at rense og genetablere sikker drift af centrale systemer efter et stort angreb. Fokus for dagen vil derfor være på henholdsvis governance samt om, hvordan du som it-leder i den finansielle sektor skal kunne håndtere fremtidens cybertrusler og arbejde effektivt med sikkerhed på et strategisk niveau.

04. april 2024 | Læs mere


EA Excellence Day

Hvad er det, der gør it-arkitektens rolle så vigtig? Og hvad er det for udfordringer inden for områder som cloud, netværk og datacentre, som fylder hos nogle af landets bedste it-arkitekter lige nu? Det kan du her høre mere om og blive inspireret af på denne konference, hvor du også får lejlighed til at drøfte dette med ligesindede.

16. april 2024 | Læs mere


IAM - din genvej til højere sikkerhed uden uautoriseret adgang og datatab

På denne dag udforsker vi de nyeste strategier, værktøjer og bedste praksis inden for IAM, med det formål at styrke virksomheders sikkerhedsposition og effektiviteten af deres adgangsstyringssystemer og dermed minimere risikoen for uautoriseret adgang og datatab. Og hvordan man kommer fra at overbevise ledelsen til rent faktisk at implementere IAM?

18. april 2024 | Læs mere