Raspberry Pi Web gecontroleerde / autonome Robot


Inleiding (bijgewerkt 26/12/15)

Dit is ooit mijn eerste poging tot het bouwen van een web controlled robot met gebouwd in autonome modus. Het project begon als een Arduino Nano gebaseerd botsing vermijden robot gebouwd voor basisschool kinderen inspireren en de ontwikkeling van een belang in computer- en elektronica.

Aanvankelijk was de robot een simpele botsing vermijden robot waaraan ik dan een Raspberry Pi toegevoegd. Aangesloten op de Pi was een PIR-bewegingsmelder en een Logitech C270 Web Cam, alle gemonteerd op de top. Ik samen een kleine python programma fswebcam gebruiken om foto's met behulp van de Web-Cam, wanneer de PIR-bewegingsmelder gedetecteerd motion, die was de hele tijd dat de robot bewoog. De stilstaande beelden werden later vervangen door een live video-stream, uitgevoerd met behulp van een programma van de python genaamd MJPG-Streamer.

Na veel onderzoek was de Pi aangesloten op de Nano via een i2c seriële (twee draad) interface voor webpagina's die kunnen worden gebruikt voor het verzenden en ontvangen van commando's naar controle van de beweging van de robot en de videostroom bekijkt.

Dit is nog steeds een work in progress en is verre van voltooid, maar ik vond het tijd die ik heb een blog op de bouw gemaakt. Als ik krijg keer op een later tijdstip die zal ik een stap voor stap, in de tussentijd voel je vrij om te vragen mij vragen en als ik kan zal ik helpen.

Onderdelenlijst:

1. de raspberry Pi Model B

2. Logitech C270 webcam

3. Arduino Nano AT-Mega328P (Chinese kopie)

4. PIR Detector (Redundant in de laatste build)

5. EasyAcc 10000mAh USB Battery Pack (voor het aandrijven van de Raspberry Pi)

6. LiPo 7.4V accu

7. WiFi Dongle

8. HC-SR04 ultrasone Sensormodule

9. L298N Dual 'H' Bridge Motor Driver Board

10. 9g Micro Servo

10. perspex Chassis (met 2 x gelijkstroommotoren en Caster wiel)

11. foxes biscuit en G-Shock horloge tin

12. man-man en Male naar vrouwelijke Jumper Kabels

13. solderless Breadboard

De bouwstijl

In eerste instantie, zoals ik hierboven vermeld, de robot begon in het leven als gevolg van de noodzaak een botsing te vermijden om robot te bouwen voor een school robotica club. Het idee was om het identificeren van onderdelen goedkoop genoeg is het bouwen van een robot om betaalbaar te maken voor clubleden die in Y5 en Y6 op de basisschool waartegen ik ben momenteel de opleiding waren. De eerste robot was gebaseerd op een Arduino Nano AT-Mega328P, om de kosten omlaag. Het verwerkt ook een Perspex Chassis Kit die 2 x gelijkstroommotoren en een wiel Castor opgenomen. Botsingdetectie opgericht met behulp van een ultrasone Sensor en een Dual H brug Motor Driver gebruikt om te controleren van de motoren. Macht werd in eerste instantie verstrekt van 1 x PP3 9v batterij (geen onderzoek gedaan inzake batterijen en stroomvereisten op dit punt).

Dit eerste plan was om de ultrasone Sensor te worden gemonteerd op de 9g Micro Servo echter de keuze van de arme en on-onderzocht batterij bleek ontoereikend is om te rijden van alles met de servo gekoppeld.

Met de servo weggelaten de robot functioneerde bewonderenswaardig en bleek te zijn een favoriet en bleef de versie gekocht en gebouwd door de kinderen.

Stroomvereisten

Zoals hierboven vermeld werd de robot aanvankelijk aangedreven door een 9v PP3 batterij. Dit was fijn om alleen de motoren en de ultrasone sensor echter te drijven, om deze versie van de robot te hebben een ultrasone sensor gemonteerd op een roterende servo het zou moeten een betere voeding. Na onderzoek stroomvereisten op Robots laten maken, werd ik geadviseerd te sloot de 9v PP3 (die overigens zijn ontworpen voor zeer laag stroom verbruik items zoals rookdetectors) en kiezen voor AA batterijen, bij voorkeur oplaadbare met rond een 2000mAh rating. Ik kreeg te horen te gebruiken 6 als oplaadbare AA uitgang rond 1.2V in tegenstelling tot 1.5V output door het niet - oplaadbare-type.

Een andere optie die ik te horen kreeg te voeren moest gebruiken Lithium-polymeer (LiPo) accu's, gebruikte onder de Robotica broederschap. Terwijl de batterijen zijn redelijk geprijsd (ongeveer £11 voor een 2 cellen Pack - 7.4V) u zal ook nodig een evenwicht lader die zijn duur. Dit is een hoge aanloopkosten maar is een eenmalige kosten.

Uiteindelijk kocht ik een 7.4V (Turnigy) LiPo oplaadbare batterij:

http://www.hobbyking.com/hobbyking/Store/__9172__T...

En een Imax B6ACBalance lader:

http://www.hobbyking.com/hobbyking/Store/__58285 __...

Het is ook aanbevolen dat je een LiPo opladen tas die brand is bewijs, deze batterijen zijn redelijk veilig, maar als een beschadigd is en betaalt dat kunnen zij verwant aan het licht een vuurwerk in uw huis!

Deze batterij met deze lader die ik had om te solderen op een andere connector op het einde van de batterij.

Hieronder vindt u details van hoe de batterij is aangesloten.

De Raspberry Pi wordt aangedreven met behulp van een USB oplaadbare Power Pack, in mijn geval ik gebruikte een EasyAcc 10000mAh pack die als volledig belast laatste leeftijden (niet een technische eenheid van maatregel, maar je krijgt mijn drift).

Chassis Upgrade

Wijzigen het visuele aspect van de robot te geven het een lichaam ik een tin vossen biscuit bovenop de perspex chassis gemonteerd en al de elektronica binnenkant van van het gehuisvest. De ultrasone Sensor was ingebouwd in een tin die kwam met een nieuwe Casio G-Shock. De tin werd gesneden met behulp van een mix van Tin Snips, schaar en een Stanley mes, zodra knippen voorzichtig als de randen haarscherp zijn, ik hen geschuurd, maar hen ook bedekt met PVC-tape.

Microprocessors

Op het moment van schrijven van deze robot beschikt over twee microprocessoren, een Raspberry Pi en een Arduino Nano. De Arduino Nano drijft de DC-motoren en de ultrasone Sensor en de RPi biedt de WiFi / webbesturingselement, loopt een webcamera en kunnen verder verbeteren / uitbreiden van deze robot heeft.

De Nano en de RPi worden verbonden met een ic2 twee draads verbinding, de Nano is ingesteld als een slave-apparaat en de RPi is de meester. Met behulp van de Nano te rijden van de motoren en de sensoren op deze manier vermijdt Koppelverkoop up de Pis GPIO pinnen die zorgt voor uitbreidbaarheid.

Als een beginner, het opzetten van de i2c nam een grote hoeveelheid onderzoek en hoewel het werkt de motorische controle moet nog fijn afstemmen.

Elektronica

De 2 x gelijkstroommotoren zijn aangesloten op een L298N H brug Motor Driver moederbord, deze platen inschakelen de controle van gelijkstroommotoren om ze te rijden voorwaarts als achteruit. De L298 is tevens voorzien van een ingebouwde 5v spanningsregelaar. De L298 is een goedkope optie maar heeft te kampen met een grote spanningsval dus zorg ervoor dat uw batterij meer dan groot genoeg is.

De batterij is aangesloten op de L298 via een eenvoudige één Pole één gooien (SPST) aan / uit schakelaar. De L298 biedt dan 5v stroom naar het solderless breadboard waarin op zijn beurt macht naar de HC-SR04 ultrasone Sensor, de 9g Micro Servo op die de sensor wordt gemonteerd en de Arduino Nano.

Hoe het werkt

De RPi is opstelling met RAS en zodra ingeschakeld ik inloggen met behulp van SSH (Secure Shell) en start het Python programma dat fungeert als de i2c master programma om te controleren de Arduino. Van binnen het Python programma dat een bash-script wordt uitgevoerd die een ander Python programma om te dienen een webpagina met behulp van WebIOPi een Python programma voor webbesturingselement begint, daarom ook een ander Python programma, mjpg-streamer die schakelaars op het Web Cam en stromen mjpg frames die worden weergegeven op de webpagina's geserveerd door WebIOPi. De web-pagina die ik heb gemaakt bevat een eenvoudig bedieningspaneel met knoppen gemarkeerd vooruit, achteruit, links, rechts en Stop. Ik voegde ook een paar knoppen te draaien van de servo dat het hoofd is gemonteerd op.

Wanneer de robot zelf is ingeschakeld de Nano branden op en begint te luisteren naar opdrachten komen via de i2c-interface van de Pi (wanneer een knop wordt ingedrukt op het bedieningspaneel van web-pagina). Ik heb ook opstelling een 'autonome Mode', die voor een opgegeven periode wacht en als er geen commando's zijn ontvangen de robot begint met auto navigeren aan zijn omgeving.

De Code

Er zijn drie programma's die zijn gekoppeld aan dit project, HTML, Python en schets.

Het HTML-bestand is de webpagina's geserveerd door de Pi met behulp van WebIOpi, de Python-code de i2c master programma wordt gestart, start WebIOPi en roept mjpg-streamer voor het streamen van de video-feed. De code van de schets is geüpload naar de Arduino deze instellen als een slaaf te wachten en actie opdrachten ontvangen van de Pi, alsmede de autonome modus bieden.

YouTube

Hier is een link naar een YouTube filmpje van de robot in actie (alleen op de autonome modus), hij verpletterde een paar tijd maar ik bewerkten die :-)

Actuele thema 's

Er zijn twee kwesties met de huidige versie op het tijdstip van deze update:

1. verkeer (vooral links en rechts). Controle over de webinterface moet verdere werkzaamheden, te klikken op een knop op het bedieningspaneel van web-pagina (een .html muis omlaag gebeurtenis) zorgt ervoor dat de robot te bewegen, er is al te veel vertraging tussen het verzenden van de opdracht stop (de muis omhoog gebeurtenis wanneer de gebruiker de muisknop loslaat) en de robot stoppen de huidige opdracht. Hoewel dit niet met name merkbaar wanneer vooruit en achteruit, als elke keer prima waardoor ongeveer 270 graden draaien van de robot draait controle niet onmogelijk. Meer werk vereist?

2. autonome modus. Autonome modus begint na ongeveer een minuut van inactiviteit echter wanneer de gebruiker probeert om de controle weer eerder dat autonome modus ophouden, het draagt op wat resulteert in een gevecht tussen de gebruiker en de robots AI voor controle! Waarschijnlijk een simpele fix echter opnieuw meer werk nodig.

Ik heb opstelling een GitHub account naar host de code, maar ik nooit Git Hub gebruikt heb voordat dus ik moeite om het allemaal uit werken zodra ik doen ik van de link naar de verschillende code die wordt gebruikt in dit project posten zal.

Ik hoop dat je deze blog / project en als u hulp nodig heeft met het gelieve te voelen vrij om een reactie achterlaten, of me vinden op LMR.

Gerelateerde Artikelen

Web gecontroleerde multifunctionele RoboT

Web gecontroleerde multifunctionele RoboT

Het maken van een web control multi functionele robot gebouwd met minimale hardware en elementaire programmering bouwen met populaire open source platform dwz raspberry pi. Afgezien van fundamentele motorische controle, deze tutorial is gericht op he
Web gecontroleerde rover

Web gecontroleerde rover

Bouwen en spelen met robots is mijn belangrijkste schuldig plezier in het leven. Anderen spelen golf of ski, maar ik het opbouwen van robots (omdat ik niet golfen of ski's:-). Ik vind het ontspannen en leuk! Ik gebruik te maken van de meeste van mijn
Internet gecontroleerde Telepresence Robot

Internet gecontroleerde Telepresence Robot

In deze tutorial zal ik u tonen hoe te bouwen van een Internet-gecontroleerde Telepresence Robot met een robotachtig wapen voor onder $100.Stap 1: Basismaterialen Voor deze tutorial zijn er sommige must-have:1. een Arduino board (ik ben met behulp va
Arduino gecontroleerd Servo Robot (SERVISCH)

Arduino gecontroleerd Servo Robot (SERVISCH)

wat een betere manier om te experimenteren met opensource micro-controllers ( Arduino ) dan door het bouwen van uw eigen bron robot open ( CC (SA-door))?Wat te doen met uw Servische?(hier) - hoe uw Servische verbinden met het internet en het rijden o
MICBot autonome Robot obstakel deviantie

MICBot autonome Robot obstakel deviantie

MICBot is een autonome robot voor obstakels opsporing en deviantie en gaat rond,het werkt indoor of outdoor.Stap 1: Ultrasound Sensor SFR05 Dus, deze oplossing maakt gebruik van de ultrasone sensor als een maatregel van afstand en in staat stelt om t
Sparky - DIY Web-Based Telepresence Robot

Sparky - DIY Web-Based Telepresence Robot

de naam Sparky is gebaseerd op een acroniem voor zelf portret artefact Roving Chassis ik een lastige titel voor een kunstproject begonnen in de vroege jaren 90. Sinds die tijd Sparky geëvolueerd van een oversized RC speelgoed met een paar baby monito
Bijten obstakels autonome Robot «Sanglier» (zwijnen)

Bijten obstakels autonome Robot «Sanglier» (zwijnen)

Algemeen conceptOnze eerste idee was om een robot bijgehouden om te klimmen trappen en tal van anderen kunnen belemmeringen, voor het bereiken van een goede snelheid (ongeveer 10 of 15 km/h) tijdens het filmen en overbrengen van gegevens. Het zal zel
Web gecontroleerde vakantie huis verlichting

Web gecontroleerde vakantie huis verlichting

Dit is een uitbreiding van een eerdere Instructable op permanente vakantie LED-verlichting voor huis.Nu dat alle de LEDs zijn bekabeld, krijgt de uitdaging die er elke vakantie wijzigen het patroon. U kon toevoegen sommige drukknoppen om te kiezen tu
LinkitONE Web gecontroleerde LED

LinkitONE Web gecontroleerde LED

Ooit wilde om je eigen web gecontroleerde LED? Heb je een LinkitONE bord? Wilt u meer doen dan dat? dan is deze tutorial is geschikt voor u!Hier ik zal u stap voor stap tonen hoe maak je een web gecontroleerde geleid met behulp van de LinkitONE Raad
Web gecontroleerde Wifi LED Tower

Web gecontroleerde Wifi LED Tower

Dit project is dat een web gecontroleerde LED toren die een Arduino en het schild van de Wifi verbinding met een webserver maakt om opdrachten afkomstig van gebruikers. Het doel was het project mobiel maakt, zodat het kan worden genomen naar shows en
Manier voor kappen een draadloze Xbox controller om een autonome robot!

Manier voor kappen een draadloze Xbox controller om een autonome robot!

Introduction:Dit project kwam over toen proberen te maken van een low-cost autonome robot voor gebruik inonderwijs. Het idee dat studenten zou kunnen identificeren met de Xbox-controlleren geniet van het hacken van iets veel interessanter!Op een dag
Autonome Robot met LinkitONE

Autonome Robot met LinkitONE

Ooit vroeg zich af hoe autonome robots worden gemaakt? Wilde maken van een cool project? Heb je een bord Linkit? Dan bent u aan het juiste adres!Hier zal ik het maken van een robot met LinkitONE met een aantal lokale robotic delen en servomotoren.Lat
Beginner autonome robot (gedeeltelijk)

Beginner autonome robot (gedeeltelijk)

Alle van de no gedeeltelijk programmeren van de robot ik zag vereist spdt schakelaars die kunnen krijgen gemakkelijk geactiveerd, maar ik heb niet die luxe. Dus ik maakte een eenvoudige en gemakkelijk te maken van gedeeltelijk autonome robot.Stap 1:
DIY JAAR - zomaar een autonome Robot

DIY JAAR - zomaar een autonome Robot

JAAR van concept is niet alleen over het maken van een Rover.. .blindly als ik je te vertellen en gek rond... zijn meer dan alleen het maken van een Robot... ik heb opgenomen allermeest mijn leren van de afgelopen 6 maanden aan dit project... serieus