Reklāma
Uzziniet, kā padarīt attālināti skatāmu paneli un slīpuma drošības kameru ar Raspberry Pi. Šo projektu var pabeigt no rīta, izmantojot tikai vienkāršākās detaļas. Šis ir gala rezultāts:
Ko tev vajag
- Aveņu Pi 2 vai 3 ar Micro SD karti
- Arduino UNO vai līdzīgs
- 2 x mikro vai mini hobija servos
- USB tīmekļa kamera
- Vadi no vīrieša uz vīriešu
- Vadi no vīrieša uz sievieti
- Asorti rāvējslēdzēji
Drošības kameras izveidošana
Pievienojiet servo ragu (mazās plastmasas “formas”) katram servo, izmantojot pievienoto skrūvi. Konkrētai formai nav nozīmes, kaut arī jo lielāka, jo labāk. Nepārvelciet skrūvi.
Tagad pievienojiet rāvējslēdzējus, lai piestiprinātu vienu servo otram taisnā leņķī. Viens no tiem būs panorāmas (no kreisās uz labo), bet otrs būs slīps (augšup un lejup). Nav svarīgi, kurš dara ko, to var pielāgot kodā.
Visbeidzot, pievienojiet savu tīmekļa kameru vienai no servo. Šim nolūkam jūs varētu izmantot rāvējslēdzējus, lai gan manai tīmekļa kamerai bija klips, kas pieskrūvēts apakšā - es to noņemu un izmantoju skrūvi, lai to noturētu pie raga. Lai nodrošinātu stabilitāti, ieteicams uzstādīt visu platformu korpusā vai kastē. Vienkārša kartona kārba diezgan labi izdara triku. Jūs varētu izgriezt glītu kvadrātveida caurumu un uzstādīt vienu servo flush virspusē, tomēr pietiks ar rāvējslēdzēju.
Vārds par tīmekļa kamerām
Ne visas USB tīmekļa kameras ir izveidotas vienādi. Pievienojiet savu tīmekļa kameru Pi Pi USB portam un izpildiet šo komandu:
lsusb
Šī komanda parāda informāciju par visām USB ierīcēm, kas savienotas ar Pi. Ja jūsu tīmekļa vietne šeit nav norādīta, iespējams, vēlēsities izmēģināt barotu USB centrmezglu un atkārtot komandu. Ja tīmekļa kamera joprojām netiek atpazīta, jums, iespējams, būs jāiegādājas saderīga tīmekļa kamera.
Servo iestatīšana
Kaut arī servos var šķist drausmīgi un sarežģīti, tos tiešām ir diezgan vienkārši savienot. Servos darbojas impulsa platuma modulācija (PWM), kas ir veids, kā digitālās sistēmas var atdarināt analogos signālus. PWM signāli būtībā ir ātrs ieslēgšanas / izslēgšanas signāls. Signāls, kas ir ieslēgts vai augsts, tiek aprakstīts, izmantojot darba ciklu. Darba ciklu izsaka procentos un apraksta, cik ilgi signāls ir ieslēgts. PWM signāls ar 25% darba ciklu būs ieslēgts 25% laika, un izslēgts atlikušajiem 75%. Signāls sākumā nav ieslēgts un pēc tam izslēgts uz visiem laikiem, tas regulāri tiek pulsēts ļoti īsā laika posmā.
Servos klausās šos impulsus un rīkojas atbilstoši. Izmantojot darba ciklu 100%, būtu tas pats, kas “parastajam” 5v, un 0% būtu tāds pats kā zemes. Neuztraucieties, ja jūs pilnībā nesaprotat, kā darbojas PWM, tomēr joprojām varat kontrolēt servos (Extreme Electronics ir laba vieta, kur uzzināt vairāk).
Ir divi galvenie PWM izmantošanas veidi - aparatūra vai programmatūra. Aparatūras PWM bieži nodrošina zemāku latentumu (cik ilgs laiks no servo, kas saņem komandu un pārvietojas) nekā programmatūras PWM, tomēr Pi ir tikai viens aparatūras PWM spējīgs tapa. Ārējās shēmas ir pieejami, lai nodrošinātu vairākus aparatūras PWM kanālus, tomēr vienkāršs Arduino var arī rīkoties ar uzdevumu, jo viņiem ir vairākas aparatūras PWM tapas.
Šeit ir ķēde:
Vēlreiz pārbaudiet pinout savam Pi, modeļiem tie nedaudz atšķiras. Jums jāizdomā, kā tiek vadītas jūsu servos. Servām ir nepieciešami trīs vadi, lai tos kontrolētu, tomēr krāsas nedaudz atšķiras:
- Sarkans ir pozitīvs, pievienojiet to Pi + 5v
- Brūns vai melns ir negatīvs, pievienojiet to GND uz Pi
- Oranžs vai balts ir signāls, pievienojiet to Arduino tapām 9 un 10
Arduino iestatīšana
Vai esat jauns Arduino uzņēmumā? Sāciet šeit Darba sākšana ar Arduino: rokasgrāmata iesācējiemArduino ir atvērtā koda elektronikas prototipu veidošanas platforma, kuras pamatā ir elastīga, ērti lietojama aparatūra un programmatūra. Tas ir paredzēts māksliniekiem, dizaineriem, hobijiem un ikvienam, kurš ir ieinteresēts radīt interaktīvus objektus vai vidi. Lasīt vairāk .
Kad servo ir savienots, atveriet Arduino IDE savā datorā un augšupielādējiet šo testa kodu. Neaizmirstiet no lappuses atlasīt pareizo paneli un portu Rīki> Dēlis un Rīki> Ports izvēlnes
# iekļaut // Importējiet bibliotēku Servo servoPan, servoTilt; // Izveidojiet servo objektus. int servoMin = 20, servoMax = 160; // Definējiet servos void setup () ierobežojumus () {// Setup servos uz PWM spējīgiem tapām servoPan.attach (9). servoTilt.attach (10); } void loop () {for (int i = servoMin; i servoMin; --i) {// Pārvietojiet servo no maksimālā uz minimālo servoPan.write (i); servoTilt.write (i); kavēšanās (100); // Pagaidiet 100ms} }
Tā kā jums ir labi, jums vajadzētu redzēt, kā abas servos lēnām virzās uz priekšu un atpakaļ. Ievērojiet, kā “servoMin” un servoMax ”tiek definēti kā 20 un 160 grādi (0 un 180 vietā). Daļēji tas notiek tāpēc, ka šīs lētās servodesistēmas nespēj precīzi pārvietot visus 180 grādus, kā arī tīmekļa kameras fiziskā lieluma dēļ neļauj izmantot visu diapazonu. Iespējams, šie iestatījumi būs jāpielāgo.
Ja tie vispār nedarbojas, divreiz pārbaudiet, vai ķēde ir pareizi pievienota. Maizes dēļi dažreiz var atšķirties arī pēc kvalitātes, tāpēc pārbaudiet, vai ieguldāt multimetrā.
Servos ir gandrīz pārāk spēcīgs, lai arduīni varētu darboties, tāpēc viņus darbinās Pi. 5v sliede uz Pi ir ierobežots līdz 750mA, kas tiek piegādāts visam Pi, un Pi ievelk aptuveni 500mA, atstājot 250mA uz servos. Šīs mikro servos ir aptuveni 80 mA, tas nozīmē, ka Pi vajadzētu spēt rīkoties ar diviem no tiem. Ja vēlaties izmantot vairāk servo vai lielākus, modeļus ar lielāku jaudu, iespējams, būs jāizmanto ārējs barošanas avots.
Tagad augšupielādējiet šo kodu Arduino. Tas klausīsies ienākošos sērijas datus (sērijveida kā universālajā Seriāls Kopne vai USB). Pi šos USB datus nosūtīs Arduino, norādot, kur pārvietot servo.
# iekļaut // Importējiet bibliotēku Servo servoPan, servoTilt; // Izveidot servobjektu. Virknes dati = ""; // Saglabāt ienākošās komandas (buferšķīdumā) void setup () {// Iestatīšanas servos uz PWM darbināmām tapām servoPan.attach (9); servoTilt.attach (10); Sērijas.begin (9600); // Sāciet sēriju ar ātrumu 9600 bps (ātrums) } void loop () {while (Serial.avable ()> 0) {// Ja ir dati char singleChar = Serial.read (); // Lasiet katru rakstzīmi, ja (singleChar == 'P') {// Pārvietot pan servo servoPan.write (data.toInt ()); dati = ""; // Notīrīt buferi} cits, ja (singleChar == 'T') {// Pārvietot tilt servo servoTilt.write (data.toInt ()); dati = ""; // Notīrīt buferi} else {data + = singleChar; // Pievienot jaunus datus}} }
Varat pārbaudīt šo kodu, atverot seriālo monitoru (augšā pa labi> Seriālais monitors) un testa datu nosūtīšana:
- 90P
- 0P
- 20T
- 100T
Ievērojiet komandu formātu - vērtību un pēc tam burtu. Vērtība ir servo novietojums, un burts (ar lielajiem burtiem) norāda servo vai slīpā servo. Tā kā šie dati tiek pārsūtīti no Pi sērijveidā, katrs raksturs nāk cauri vienam. Arduino tie ir “jāuzglabā”, līdz visa komanda ir nosūtīta. Pēdējais burts ne tikai norāda servo, bet arī ļauj Arduino zināt, ka šajā komandā nav vairāk datu.
Visbeidzot atvienojiet Arduino no datora un pievienojiet to Raspberry Pi caur parasto USB porta savienojumu.
Pi iestatīšana
Tagad ir laiks iestatīt Pi. Pirmkārt, instalējiet operētājsistēmu Kā instalēt operētājsistēmu Raspberry PiTālāk ir aprakstīts, kā Raspberry Pi instalēt OS un kā klonēt perfektu iestatījumu ātrai ārkārtas atkopšanai. Lasīt vairāk . Pievienojiet tīmekļa kameru un Arduino Pi USB.
Atjauniniet Pi:
sudo apt-get atjauninājums. sudo apt-get jauninājums
Instalēt kustību:
sudo apt-get instalēt kustību
Kustība ir programma, kas paredzēta, lai apstrādātu tīmekļa kameras straumēšanu. Tas apstrādā visu smago celšanu un pat var veikt ierakstīšanu un kustības noteikšanu (mēģiniet kustības uztveršanas drošības sistēmas izveidošana Veidojiet kustību uztveršanas drošības sistēmu, izmantojot Raspberry PiNo daudzajiem projektiem, kurus varat izveidot ar Raspberry Pi, viens no visinteresantākajiem un pastāvīgi noderīgajiem ir kustību uztveršanas drošības sistēma. Lasīt vairāk ). Atveriet kustības konfigurācijas failu:
sudo nano /etc/motion/motion.conf
Šis fails piedāvā daudz iespēju Motion konfigurēšanai. Iestatīšana ir šāda:
- dēmons ieslēgts - palaidiet programmu
- kadru ātrums: 100 - cik kadru vai attēlu sekundē straumēt
- stream_localhost izslēgts - atļaujiet piekļuvi tīklā
- platums 640 - video platums, pielāgojiet savai tīmekļa kamerai
- augstums 320 - video augstums, pielāgojiet savai tīmekļa kamerai
- straume_ports 8081 - ports, kurā izvadīt video uz
- output_picture izslēgts - nesaglabājiet nevienu attēlu
Šis ir diezgan liels fails, tāpēc jūs varētu vēlēties to izmantot CTRL + W meklēt līnijas. Kad esat pabeidzis, nospiediet CTRL + X un pēc tam apstipriniet, lai saglabātu un izietu.
Tagad rediģējiet vēl vienu failu:
sudo nano / etc / noklusējums / kustība
Iestatiet “start_motion_daemon = jā”. Tas ir nepieciešams, lai nodrošinātu Motion kustību.
Tagad uzziniet savu IP adresi:
ifconfig
Šī komanda parādīs tīkla tīkla savienojuma informāciju. Paskaties otrajā rindā, inet addr. Iespējams, vēlēsities iestatīt statisku IP adresi (kas ir statiskais IP? Kas ir statiskā IP adrese? Lūk, kāpēc jums tas nav vajadzīgsStatiskā IP adrese nekad nemainās. Dinamiskās IP adreses mainās. Mēs izskaidrojam, kāpēc jums nav nepieciešama statiskā IP adrese. Lasīt vairāk ), bet pagaidām pierakstiet šo numuru.
Tagad sāciet kustību:
sudo servisa kustības sākums
Jūs varat apturēt vai restartēt kustību, mainot “start” uz “stop” vai “restart”.
Pārslēdzieties uz datoru un pārejiet uz Pi no tīmekļa pārlūka:
http://xxx.xxx.x.xx: 8081
Kur xxx.xxx.x.xx ir Pi IP adrese. Kols, kam seko skaitlis, ir osta, kas tika iestatīta agrāk. Tā kā jums ir labi, jums vajadzētu redzēt straumi no savas tīmekļa kameras! Mēģiniet pārvietoties un redzēt, kā lietas izskatās. Jums, iespējams, būs jāpielāgo spilgtuma un kontrasta iestatījumi konfigurācijas failā. Jums, iespējams, būs jākoncentrē tīmekļa kamera - dažiem modeļiem ap objektīvu ir mazs fokusa gredzens. Pagrieziet to, līdz attēls ir asākais.
Atpakaļ uz Pi izveidojiet mapi un pārejiet tajā:
mkdir drošības kamera. CD drošības kamera /
Tagad instalējiet Twisted:
sudo apt-get instalēt python-savīti
Twisted ir Python rakstīts tīmekļa serveris, kurš uzklausīs komandas un attiecīgi darbosies.
Kad tas ir instalēts, izveidojiet Python skriptu, lai izpildītu komandas (pārvietojiet servo).
sudo nano servos.rpy
Ievērojiet, kā faila paplašinājums ir “.rpy”, nevis “py”. Šis ir kods:
# Importējiet nepieciešamos failus. importēt sēriju. no twisted.web.resource importa Resurss # Arduino iestatīšana pareizajā ātrumā. mēģiniet: arduino = sērijas. Seriāls ('/ dev / ttyUSB0', 9600) izņemot: arduino = sērijas. Sērijas ('/ dev / ttyUSB1', 9600) klase MoveServo (resurss): isLeaf = True def render_GET (pats, pieprasījums): mēģiniet: # Nosūtiet vērtību vairāk sērija Arduino arduino.write (request.args ['vērtība'] [0]) atgriezt 'Veiksme', izņemot: atgriezt 'Failure' resurss = MoveServo ()
Tagad sāciet tīmekļa serveri:
sudo twistd -n web -p 80 - ceļš / mājas / pi / security-cam /
Ļauj to sadalīt - “-p 80” norāda portu (80). Šis ir tīmekļa lapu noklusējuma ports. “–Path / home / pi / security-cam /” stāsta Twisted, lai startētu serveri norādītajā direktorijā. Ja maināt skriptus mapē “security-cam”, jums būs jārestartē serveris (CTRL + X aizvērt, pēc tam vēlreiz palaist komandu).
Tagad izveidojiet tīmekļa lapu:
sudo nano index.html
Šis ir vietnes kods:
Izmantojiet DIY drošības kameru
Mainiet “PI_IP_ADDRESS” (lietots divreiz) uz jūsu Pi reālo IP adresi (raspberrypi.local vajadzētu darboties arī tad, ja izmantojat jaunāko Raspian). Restartējiet tīmekļa serveri un pēc tam no datora dodieties uz Pi, nav jānorāda ports. Jums vajadzētu būt iespējai panoramēt pa kreisi un pa labi un redzēt video straumi:
Tur jums tas ir. Jūsu pašu Pan un Tilt tīkla kamera. Ja vēlaties pakļaut savu tīmekļa kameru internetam, atcerieties to apsveriet briesmas 5 briesmas, kas jāņem vērā, rādot mājas drošības kamerasIr svarīgi rūpīgi apsvērt kameru novietojumu un to, kurās mājas daļās tās norādāt. Ir svarīgi saglabāt lietas drošībā, bet tāpat arī saglabāt savu privātumu. Lasīt vairāk - tad ieskatieties ostas pāradresācija Kas ir ostas pāradresācija un kā tas man var palīdzēt? [MakeUseOf skaidrojumi]Vai jūs mazliet raudājat iekšā, kad kāds saka, ka pastāv ostas pāradresācijas problēma, un kāpēc jūsu spīdīgā jaunā lietotne nedarbosies? Jūsu Xbox neļaus jums spēlēt spēles, jūsu torrent lejupielādes tiek atteiktas ... Lasīt vairāk , tāpēc maršrutētājs zina, kur sūtīt ienākošos pieprasījumus. Jūs varētu pievienot ārējs barošanas avots 3 Raspberry Pi akumulatoru portatīvajiem projektiemRaspberry Pi akumulators var padarīt parastu Pi par portatīvo datoru. Lai sāktu, jums būs nepieciešams viens no šiem akumulatora risinājumiem. Lasīt vairāk un Wi-Fi adapteris patiešām pārnēsājamam aprīkojumam.
Vai esat paveicis kaut ko foršu ar tīmekļa kameru un Pi? Paziņojiet man komentāros, es labprāt redzētu!
Džo ir absolvējis datorzinātnes Linkolna universitātē, Lielbritānijā. Viņš ir profesionāls programmatūras izstrādātājs, un, kad viņš nelido ar droniem un neraksta mūziku, viņu bieži var atrast fotografējot vai producējot video.