Raspberry Pi Web kontrollerad / autonom Robot



Introduktion (uppdaterad 26/12/15)

Detta är min första någonsin försök att bygga en web styrd robot med inbyggd i fristående läge. Projektet började som en Arduino Nano baserat kollision undvikande robot byggd för att inspirera lågstadiebarn och utveckla ett intresse för datorer och elektronik.

Roboten var först en enkel kollision undvikande robot som jag sedan till en Raspberry Pi. Kopplade till Pi var PIR rörelsedetektor och en Logitech C270 webbkamera, allt monterat på toppen. Jag satte ihop ett litet python program med fswebcam för att ta bilder med webbkamera när PIR rörelsedetektor upptäckt rörelse, som var hela tiden att roboten skulle flytta. De stilla bilderna ersattes senare med en direktuppspelad video, fulländade ett python program kallas MJPG-Streamer.

Efter en hel del forskning var Pi ansluten till Nano över i2c följetong (två tråd) gränssnitt till tjäna en webbsida som kan användas för att skicka och ta emot kommandon för att kontrollera förflyttning av roboten och Visa videoströmmen.

Detta är fortfarande ett pågående arbete och är långt ifrån färdig men jag tyckte det var på tiden att jag skapat en blogg på bygga. Om jag får tid senare jag kommer att göra en steg för steg, i den tiden gärna ställa mig frågor och om jag kan ska jag hjälpa.

Reservdelslista:

1. raspberry Pi modell B

2. Logitech C270 webbkamera

3. Arduino Nano AT-Mega328P (kinesisk kopia)

4. PIR detektor (överflödig i den senast bygga)

5. EasyAcc 10000mAh USB-batteripack (att driva Raspberry Pi)

6. LiPo 7.4v uppladdningsbart batteri

7. WiFi Dongle

8. HC-SR04 Ultrasonic Sensormodul

9. L298N dubbla "H" bro Motor förare ombord

10. 9g Micro Servo

10. plexiglas chassi (med 2 x DC-motorer och Caster Wheel)

11. rävar kex och G Shock klocka tenn

12. hane till hane och manliga till kvinnliga startkablar

13. Lödfritt set av brödunderläggen

Bygget

Inledningsvis, som jag nämnde ovan, roboten började i livet till följd av behovet av att bygga en kollision undvikande robot för en skola robotics klubb. Tanken var att identifiera delar billigt nog att byggnaden av en robot överkomliga för klubbmedlemmar som var i Y5 och Y6 på grundskola som jag för närvarande utbildning. Den första roboten baserades på en Arduino Nano AT-Mega328P, att hålla kostnaderna nere. Det ingår även ett plexiglas chassi Kit som ingår 2 x DC motorer och ett hjul hjul. Kollision upptäckt var etablerad där en Ultrasonic Sensor och en dubbel H bro Motor används för att kontrollera motorerna. Power lämnades inledningsvis från 1 x PP3 9v batteri (ingen forskning gjort på batterier och effektbehovet på denna punkt).

Denna ursprungliga plan var för Ultrasonic Sensor monteras på 9g Micro Servo men fattiga och un-forskat batteri valet visat sig vara otillräckliga att köra allt med servo bifogas.

Med servo utelämnas roboten fungerade beundransvärt och visade sig vara en favorit och förblev den versionen köpt och byggdes av barnen.

Effektbehovet

Som nämnts ovan var inledningsvis Roboten drivs med ett 9v PP3 batteri. Detta var bra för att driva bara motorer och ultrasonic sensor emellertid, för att denna version av roboten ska ha en ultrasonic sensor monterad på en roterande servo det skulle behöver ett bättre nätaggregat. Efter att ha forskat effektbehovet på låt oss göra robotar, fick jag rådet att dike 9v PP3 (som för övrigt är avsedda för mycket låg konsumtion föremål som röker avkännare) och välja AA-batterier, helst uppladdningsbart med runt ett 2000mAh betyg. Jag blev tillsagd att använda 6 som laddningsbara AA utgång runt 1.2V i stället för 1,5 v utgång av den icke - laddningsbara typ.

Ett annat alternativ som jag blev tillsagd att fullfölja var att använda litium Polymer (LiPo) batterier, vanligen används bland robotics broderskap. Även om batterierna är rimligt prissatta (ca £11 för en 2 Cell Pack - 7.4v) du kommer också behovet av en balans laddare som är dyra. Detta är en hög initial utgift men är en en av kostnaden.

Till slut köpte jag en 7.4v (Turnigy) LiPo-batteri:

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

Och en Imax B6ACBalance laddare:

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

Det rekommenderas också att du får en LiPo laddning väska som är brand bevis, dessa batterier är ganska säkert men om man är skadad och debiteras de kan vara besläktad med ljus ett fyrverkeri i ditt hus!

Att använda detta batteriet med laddaren jag hade att löda på en annan kontakt i änden av batteriet.

Detaljer för hur batteriet är ansluten behandlas nedan.

Raspberry Pi drivs med hjälp av en USB-laddningsbara Power Pack, i mitt fall använde jag en EasyAcc 10000mAh packa som när fullt ut sista för åldrar (inte en teknisk enhet av åtgärd men du får min drift).

Chassi-uppgradering

Att ge det en kropp och ändra den visuella aspekten av roboten jag monterade en rävar kex tenn utöver de perspex chassin och inrymt alla av elektronik inne i den. Ultrasonic sensorn var monterad inuti en tin som kom med en ny Casio G Shock. Tenn skars med en blandning av tenn Snips, sax och Stanley kniv, när snittet var försiktig eftersom kanterna är knivskarpa, jag slipat dem men också täckte dem med PVC tejp.

Mikroprocessorer

I skrivande stund denna robot har två mikroprocessorer, en Raspberry Pi och en Arduino Nano. Arduino Nano driver DC-motorer och ultraljud sensorn och RPi tillhandahåller WiFi / Web Control, kör en webbkamera och har förmåga att ytterligare förbättra / expandera denna robot.

Nano och RPi förbinds med en ic2 två tråd anslutning, Nano är inställt som en slav enhet och RPi är mästare. Med Nano för att driva motorer och sensorer på detta sätt undviker trämaterial Pis GPIO stiften som säkerställer expansionsmöjligheter.

Som nybörjare, ställa in i2c tog en hel del forskning och även om det fungerar det motoriska kontrollerar fortfarande behöver finjustering.

Elektronik

2 x likströmsmotorer är anslutna till en L298N H bro Motor förare ombord, dessa styrelser aktiverar kontroll av DC-motorer att driva dem framåt och bakåt. L298 kommer också med en onboard 5v spänningsregulator. L298 är ett billigt alternativ men lider av ett stort spänningsfall så se till att batteriet är mer än tillräckligt stor.

Batteriet är anslutet till L298 via en enkel Single Pole enda kasta (SPST) strömbrytare. L298 sedan ger 5v ström till den Lödfritt set av brödunderläggen som i sin tur ger makt till HC-SR04 Ultrasonic Sensor, 9g Micro Servo på som sensorn är monterad och Arduino Nano.

Hur det fungerar

RPi är setup med fjärråtkomst och när påslagen jag logga in på det genom att använda SSH (Secure Shell) och starta Python program som fungerar som i2c master programmet att kontrollera Arduino. Från i Python programmet ett bash-script är kör som börjar ett annat Python program att fungera en webbsida med WebIOPi ett Python program för webb-kontroll, detta kräver också en annan Python Program, mjpg-streamer som kopplar på webcam och strömmar mjpg ramar som visas på webbsidor av WebIOPi. Webbsidan som jag skapade innehåller en helt enkelt kontrollpanel med knappar märkta framåt, bakåt, vänster, höger och stopp. Jag lade också till ett par knappar för att aktivera servo som huvudet är monterad på.

När roboten själv slås på Nano eldar upp och börjar lyssna efter kommandon kommer in över i2c gränssnittet från Pi (när en knapp trycks på Kontrollpanelen webbsida). Jag har också setup en "autonoma läge" som väntar på en angiven tidsperiod och om inga kommandon tas emot av robot startar automatiskt navigera runt dess miljö.

Koden

Det finns tre program associeras till detta projekt, HTML, Python och skiss.

HTML-filen är webbsidan betjänas av Pi med WebIOpi, Python kod startar i2c master programmet, startar WebIOPi och anropar mjpg-streamer för att strömma video foder. Skiss koden laddas upp till Arduino att ställa upp som en slav och invänta och action kommandon tas emot från Pi samt ge den autonoma läget.

YouTube

Här är en länk till en kort YouTube video av roboten i aktion (endast autonomt läge), han krascha några tid men jag redigerade dem :-)

Aktuella frågor

Vid tiden för uppdateringen finns två problem med den aktuella versionen:

1. rörelse (speciellt vänster och höger). Kontrollen över webbgränssnittet ytterligare arbete, om du klickar på en kontroll på Kontrollpanelen webbsida (en .html mus ner händelse) orsakar roboten att flytta, det finns för mycket fördröjning mellan e-stoppkommandot (mus upp händelsen när användaren släpper musknappen) och roboten stoppa den aktuella kommandot. Detta är inte särskilt märkbar när du flyttar framåt och bakåt, när roboten aktiverar gäller ca 270 grader varje gång vilket gör fina kontroll omöjlig. Mer arbete krävs?

2. autonoma läge. Autonoma läge sparkar i efter ungefär en minut av inaktivitet men när användaren försöker att ta kontroll igen ganska det autonoma läge upphör, bär det på vilket resulterar i en kamp mellan användaren och robotarna AI för kontroll! Förmodligen en enkel fix men återigen mer arbete krävs.

Jag har setup en GitHub konto till värd koden men jag har aldrig använt Git NAV innan så jag kämpar för att fungera det ut allt så fort jag gör jag kommer lägga upp länken till olika koden som används i detta projekt.

Jag hoppas du gillar denna blogg / projekt och om du behöver hjälp med det du välkommen att lämna en kommentar eller hitta mig på LMR.

Relaterade Ämnen

Web kontrollerade multifunktionella RoboT

Gör en web kontroll multi funktionell robot byggd med minimal hårdvara och grundläggande programmering bygga på populära open source plattform dvs raspberry pi. Förutom grundläggande motorisk kontroll syftar denna handledning till att integrera popul...

Web kontrollerade rover

Bygga och leka med robotar är min huvudsakliga guilty pleasure i livet. Andra spelar golf eller skidor, men jag bygga robotar (eftersom jag inte kan spela golf eller åka skidor:-). Jag tycker det är avkopplande och roligt! För att göra de flesta av m...

Internet kontrollerad Telepresence Robot

I denna tutorial kommer jag visa dig hur man bygger en Internet-kontrollerade Telepresence Robot med en robotarm för under $100.Steg 1: Grundläggande material För denna tutorial finns det några måste:1. en Arduino ombord (jag använder Arduino Uno R3...

Bita hinder autonom Robot «Sanglier» (vildsvin)

helhetskonceptVår första idé var att skapa en spårad robot möjlighet att klättra trappor och många andra hinder, att nå en bra fart (runt 10 eller 15 km/h) samtidigt som filmar och överföra data. Det kommer att själv besluta om den kan gå igenom ett...

Arduino kontrollerade Servo Robot (serbiska)

vad bättre sätt för att börja experimentera med öppen källkod mikro-styrenheter ( Arduino ) då genom att bygga din egen öppen källkod robot ( CC (SA-av))?Vad till gör med din Serbiska?(här) - Hur ansluta din serbiska till internet och köra det över e...

Carlitos' projekt: Trådlös tal-kontrollerade Arduino Robot

Vi alla drömmer om att ha apparater och maskiner som kan lyda våra röstkommandon. Nåväl, låt oss ta det första steget mot att göra detta hända och bygga en tal-kontrollerade Arduino-baserad mobil robot.Du kanske tänker att göra sådan robot måste vara...

Infraröd Sensor guidade Arduino kontrollerade L293D Robot (del 2)

Här är del 2 av Arduino kontrollerade L293D Robot.Del 2 innehåller IR Sensors.This ingår i en serie av instructables leder till en rad efterföljare Robot.QRD1114 Infrarödsensor kopplad till ArduinoSteg 1: Ledningar IR sensorn till ArduinoNegativ från...

Web kontrollerad Wifi LED Tower

Detta projekt är en web kontrollerad LED tower som använder Arduino och Wifi sköld för att ansluta till en webbserver att få kommandon in av användarna. Målet var att göra projektet mobil så det kan tas till visar och ändå tillåta kontroll från webbe...

DIY Johansson - bara en autonom Robot

Johanssons koncept är inte bara om att göra en Rover.. .blindly som jag berätta för dig att och lura runt... dess mer än bara att göra en Robot... jag har införlivat de flesta av min lära från de senaste 6 månaderna till detta projekt... allvarligt t...

Intellekten IoT Edison web kontrollerad LED

Detta instructable visar hur kombinera Arduino IDE med node.js, tillgänglig som standard på Edisons Yocto linux, för att fjärrstyra Arduino element, via ett webbgränssnitt. För att uttrycka det enkelt, kan du trycka på en knapp från alla webbläsare a...

Giant Web kontrollerade Rover - inskickad av BayLab för Instructables Sponsring programmet

detta Instructable visar dig hur du sätter en PowerWheels bil till en web kontrollerade rover. Jag ska visa dig hur du sätter även den äldsta, junkiest PowerWheels bil till en snabb telepresence bil.Steg 1: Prepping bilen PowerWheels bilar är inte så...

MICBot autonom Robot hinder Deviance

MICBot är en autonom robot för hinder detektering och avvikande beteende och går runt,det fungerar inomhus eller utomhus.Steg 1: Ultraljud Sensor SFR05 Därför denna lösning använder ultrasonic sensor som ett mått på avstånd och gör det möjligt att st...

Hur till hacka en trådlös Xbox handkontroll för att göra en autonom robot!

Introduction:Detta projekt kom när jag försöker göra en låg kostnad autonom robot för användning iutbildning. Tanken är att eleverna skulle kunna identifiera sig med Xbox-handkontrollenoch njut hacking det till något långt mer intressant!En dag var j...

Radiosände kontrollerade tumlande Robot mekanism

här är en video av min radio kontrollerade tumlande robot. Det går ganska långsamt eftersom jag inte vet hur man fungerar servon som de ändra riktningar varje gång det rullar över. För att bygga det använde jag två 360 graders servon och några akryl...

Web kontrollerade uttaget av Arduino

Jag gjorde en Web kontrollerade uttaget av Taiwan klonade Arduino, som baseras av Arduino Pro Mini och ESP8266-1, är den officiella webbplatsen för denna klon: Webduino = Web x ArduinoVi kan programmera det av enkel HTML, CSS och JavaScript, den har...

LinkitONE Web kontrollerad LED

Någonsin velat göra dig egen web kontrollerade LED? Fick en LinkitONE styrelse? Vill du göra mer än så? då är denna handledning rätt för dig!Här ska jag visa dig steg för steg hur man gör en web kontrollerade ledde med hjälp av LinkitONE styrelsen.St...

Nybörjare autonom robot (delvis)

Alla delvis nr programmering robotens jag såg krävs spdt växlar som kan få lätt aktiveras, men jag hade inte den lyxen. Så jag gjorde en enkel och lätt att göra delvis autonom robot.Steg 1: Gå och hämta grejer2 x Bo motors ca 150 rpm. (passform och g...

K-9 2.0. WiFi kontrollerade och autonom Robot hund.

OBS:I steg 22, har jag postat en uppdatering, förklarar några senaste förändringar/förbättringar som jag har gjort, främst på K-9's elsystem och sensor array som du kan ha nytta.FunktionerRobust trä (MDF) och akryl designHelt mikroprocessorstyrda anv...

Ännu en annan Exploration Rover web-kontrollerade (med Raspberry Pi och Arduino. Android, Iphone, PC, MAC compatible)

Här är en annan exploration rover, byggt i 1 timme eller mindre, utan det krävs. Everthing du behöver finns i förpackningen! Det ger dig grund att bygga och förbättra din egen rover.RaspberryPi med wifi USB-adapter, USB-webbkamera, web-server (apache...