IoT: Raspberry Pi Robot med Video Streamer och Pan/Tilt kamera fjärrkontroll över internet (6 / 10 steg)
Steg 6: Installera servon på RPi
- Anslut den servo data signalen till RPI som visas på diagrammet.
- Ansluta den + V i båda servon på en separat drivaleverantören än RPi (naturligtvis båda GND måste anslutas). När du vill installera den Pan/Tilt mekanismen till roboten, kan du använda samma batteri (9V) som användes med DC-motorer. I det här fallet blir en 6V spänningsregulator nödvändigt.
För att testa servon, använda Servoblaster befalla "ekot". Du kan använda vinkel värden eller procent. Testa det bästa sortiment för din Pan/Tilt mekanism:
Tilt Servo intervall:
echo P1 - 11 = 20% >/dev/servoblaster (titta ner)
echo P1 - 11 = 60% >/dev/servoblaster (tittar fram)
echo P1 - 11 = 90% >/dev/servoblaster (tittar)
Pan Servo intervall:
echo P1 - 16 = 30% >/dev/servoblaster (ser rätt)
echo P1 - 16 = 62% >/dev/servoblaster (tittar center)
echo P1 - 16 = 90% >/dev/servoblaster (tittar vänster)
Vi kan skriva bash-skript för att styra servo är position enkelt. Före start, låt oss komma ihåg det är en god idé att ha en specifik katalog för de program som används och kallar det "bin". Så, om du vill spara skript som vi kommer att använda i projektet, vi kommer att skapa en katalog som kommer som innehåller alla körbara skript (eller binära filer).
Till exempel, låt oss gå för vår webbsida directory:
CD/var/www
och under den, skapa en katalog med skript, som vi kallar cgi-bin:
sudo mkdir /var/ www/cgi-bin
Vi kommer använda ".cgi" för skript, som filändelsen. CGI betyder "Common Gateway Interface". Det är ett standardiserat sätt för webbservrar att samverka med körbara program installerade på en server som genererar webbsidor dynamiskt. Sådana program kallas CGI-skript eller helt enkelt cgi; de är oftast skrivna på ett skriptspråk, men kan skrivas i alla programmeringsspråk. Låt oss skapa en katalog under var/www, där skripten ska sparas:
sudo mkdir cgi-bin
Som vi diskuterade på den första delen av detta projekt, IoT - kontrollera en Raspberry Pi Robot över internet med HTML och shell skript endast. skriptets filer är i huvudsak oformaterad text. När en textfil görs ett försök att bli avrättad, kommer att skal analysera igenom dem för ledtrådar om huruvida de är skript eller inte, och hur man hanterar allt ordentligt. På grund av detta finns det några riktlinjer du behöver veta.
- Varje skript bör att vara med "#! / bin/bash" (The Hash-Bang hacka}
- Varje ny rad är ett nytt kommando
- Kommentarrader börja med en #
- Kommandon är omgivna av)
När ett skal tolkar genom en textfil, mest direkta sättet att identifiera filen som ett skript är genom att göra din första raden: #! / bin/bash (The Hash-Bang hacka). Om du använder en annan shell, ersätta sin väg här. Kommentarrader börja med hash-värden (#), men att lägga till bang (!) och shell vägen när det är en slags hacka som kommer att kringgå denna kommentar regel och kommer att tvinga skriptet ska köras med skal som den här raden pekar på.
Till exempel skapa ett skalskript för att placera kameran "ser framsidan", baserat på ovanstående servo varierar som du hittat, vi måste skapa den fil nedan (Använd den bästa redigeraren för dig. Jag använder NANO för det):
sudo nano cam_view_front.cgi
#! / bin/bash
ECHO P1 - 11 = 60% >/dev/servoblaster
ECHO P1 - 16 = 62% >/dev/servoblaster
.
När skriptet har skapats, måste vi ge den behörighet som ska köras:
sudo chmod 755 cam_view_front.cgi
Nu, att köra skriptet:
./cam_view_front.cgi
Flytta kameran för alla positioner med echo-kommandot och efter att köra den nya skriften. Du kommer se att kameran blir förgiftad automatiskt sin framifrån position.
Gå på, måste samma idé tillämpas för andra möjliga kamera lägen.
För min webbsida väljer jag att skapa 5 mellanliggande positioner för Tilt och 5 mellanliggande positioner för PAN. Du kan också valde att använda "sliders" för en mer kontinuerlig förändring position. Det är till dig.
Med samma princip som beskrivs för skriptet "cam_view_front.cgi" skapar vi 10 nya skript:
- leftpan.cgi == > 90%
- leftcenterpan.cgi == > 76%
- centerpan.cgi == > 62%
- rightcenterpan.cgi == > 46%
- rightpan.cgi == > 30%
- downtilt.cgi == > 20%
- downcentertilt.cgi == > 40%
- centertilt.cgi == > 60%
- upcentertilt.cgi == > 75%
- uptilt.cgi == > 90%