Skelbimas
Sužinokite, kaip padaryti nuotoliniu būdu matomą panoraminį ir pakreipiamąjį fotoaparatą naudojant „Raspberry Pi“. Šį projektą galima baigti ryte, naudojant tik paprasčiausias dalis. Štai toks galutinis rezultatas:
Ko tau reikia
- Raspberry Pi 2 arba 3 su „Micro SD“ kortele
- Arduino UNO ar panašiai
- 2 x mikro ar mini hobio servos
- USB kamera
- Vyrų ir vyrų sujungimo laidai
- Vyrų ir moterų sujungimo laidai
- Įvairūs užtrauktukai
Apsaugos kameros kūrimas
Prie kiekvieno servo pritvirtinkite servo ragelį (mažas plastikines „formas“), naudodamiesi pridedamu varžtu. Konkreti forma neturi jokios reikšmės, nors kuo didesnė, tuo geriau. Neperveržkite varžto.
Dabar naudokite užtrauktukus, kad pritvirtintumėte vieną servo prie kito stačiu kampu. Vienas iš jų bus apverstas (iš kairės į dešinę), o kitas bus pakreiptas (aukštyn ir žemyn). Nesvarbu, kuris iš jų ką daro, jis gali būti koreguojamas kode.

Galiausiai pritvirtinkite savo internetinę kamerą prie vieno iš servų. Tam galite naudoti užtrauktukus, nors mano internetinės kameros apačioje buvo pritvirtintas spaustukas - aš jį pašalinau ir varžtą prilaikiau prie rago. Siekdami stabilumo, galite sumontuoti visą platformą prie dėklo ar dėžutės. Paprasta kartoninė dėžutė apgaulę atlieka gana gražiai. Galite iškirpti tvarkingą kvadratinę skylę ir pritvirtinti vieną servo plokštumą prie paviršiaus, tačiau pakaks užtrauktuko.

Žodis apie internetines kameras
Ne visos USB kameros sukurtos vienodai. Prijunkite savo internetinę kamerą prie „Pi“ USB prievado ir paleiskite šią komandą:
lsusb
Ši komanda rodo informaciją apie visus USB įrenginius, prijungtus prie „Pi“. Jei jūsų internetinė kamera čia neišvardyta, galbūt norėsite išbandyti maitinamą USB šakotuvą ir pakartoti komandą. Jei internetinė kamera vis dar neatpažįstama, gali tekti įsigyti suderinama interneto kamera.
„Servo“ sąranka
Nors servos gali atrodyti baisios ir sudėtingos, jas iš tikrųjų gana paprasta prijungti. Servos veikia impulsų pločio moduliavimu (PWM) - tai būdas skaitmeninėms sistemoms imituoti analoginius signalus. PWM signalai iš esmės yra greitas įjungimo ir išjungimo signalas. Įjungtas arba AUKŠTAS signalas aprašomas naudojant darbo ciklą. Darbinis ciklas išreiškiamas procentais ir apibūdina, kiek laiko signalas įjungtas. 25% darbo ciklo PWM signalas bus įjungtas 25% laiko, o OFF - likusius 75% laiko. Signalas įjungimo metu nėra įjungtas, o paskui visam laikui IŠJUNTAS, jis reguliariai impulsuojamas per labai trumpą laiką.
„Servos“ klausosi šių impulsų ir atitinkamai elgiasi. Naudoti 100% darbo ciklą būtų tas pats, kas „įprastą“ 5v, o 0% būtų tas pats, kas įžeminti. Nesijaudinkite, jei ne iki galo suprantate, kaip veikia PWM, vis tiek galite valdyti servo aparatus („Extreme Electronics“ yra gera vieta sužinoti daugiau).
Yra du pagrindiniai PWM naudojimo būdai - aparatinė ar programinė įranga. Techninės įrangos PWM dažnai suteikia mažesnį delsą (kiek laiko tarp serverio, gaunančio komandą ir persikelia) nei programinės įrangos PWM, tačiau Pi turi tik vieną aparatūros PWM palaikantį PIN kodą. Išorinės grandinės yra tiekiami keliems aparatinės įrangos PWM kanalams, tačiau paprastas Arduino taip pat gali atlikti užduotį, nes jie turi kelis aparatinės PWM kaiščius.
Čia yra grandinė:

Dar kartą patikrinkite pinout savo Pi, skirtinguose modeliuose jie šiek tiek skiriasi. Turite išsiaiškinti, kaip sujungti jūsų servos. Norint valdyti „Servos“, reikia trijų laidų, tačiau spalvos šiek tiek skiriasi:
- Raudona yra teigiama, prijunkite tai prie Pi + 5v
- Rudas arba juodas yra neigiamas, prijunkite tai prie GND, naudodami Pi
- Oranžinė arba balta yra signalas, prijunkite tai prie „Arduino“ 9 ir 10 kaiščių
„Arduino“ sąranka
Naujas Arduino? Pradėkite čia Darbo pradžia „Arduino“: vadovas pradedančiajam„Arduino“ yra atvirojo kodo elektronikos prototipų kūrimo platforma, pagrįsta lanksčia, lengvai naudojama aparatine ir programine įranga. Jis skirtas menininkams, dizaineriams, mėgėjams ir visiems, besidomintiems interaktyvių objektų ar aplinkos kūrimu. Skaityti daugiau .
Kai serveriai bus prijungti, savo kompiuteryje atidarykite „Arduino IDE“ ir įkelkite šį bandymo kodą. Nepamirškite iš dešinės pasirinkti tinkamą plokštę ir prievadą Įrankiai> Lenta ir Įrankiai> Prievadas meniu
# įtraukti // Importuoti biblioteką „Servo servoPan“, „servoTilt“; // Kurkite servo objektus. int servoMin = 20, servoMax = 160; // Apibrėžkite servos void setup ribas () {// Setup servos ant PWM palaikančių kaiščių servoPan.attach (9); „servoTilt.attach“ (10); } void loop () {for (int i = servoMin; i servoMin; --i) {// Perkelkite „servos“ iš didžiausios į minimalią „servoPan.write“ (i); servoTilt.write (i); vėlavimas (100); // Palaukite 100ms} }
Visi gerai būdami turėtumėte pamatyti, kad abi servos lėtai juda pirmyn ir atgal. Atkreipkite dėmesį, kaip „servoMin“ ir „servoMax“ yra apibrėžiami kaip 20 ir 160 laipsnių (vietoje 0 ir 180). Iš dalies taip yra todėl, kad šios pigios serijos nesugeba tiksliai judėti visu 180 laipsnių kampu, taip pat dėl fizinio internetinės kameros dydžio neleidžia naudoti viso diapazono. Jums gali reikėti juos koreguoti nustatant.
Jei jie neveikia, dar kartą patikrinkite, ar tinkamai prijungta grandinė. Duonos lentų kokybė taip pat kartais gali skirtis, todėl patikrinkite investavę į multimetrą.
Servos yra beveik per daug galingi Arduino, kad jie būtų maitinami Pi. 5v bėgis ant Pi yra apribota iki 750 mA, teikiama visam Pi, o Pi traukia maždaug 500 mA, paliekant 250 mA servos. Šios mikro servos traukia maždaug 80 mA, tai reiškia, kad Pi turėtų sugebėti valdyti dvi iš jų. Jei norite naudoti daugiau ar daugiau servo, didesnio galingumo modelius, jums gali tekti naudoti išorinį maitinimo šaltinį.
Dabar įkelkite šį kodą į „Arduino“. Bus klausomasi gaunamų serijinių duomenų (serijiniai, kaip ir universaliųjų Serijinis Magistralė arba USB). „Pi“ siųs šiuos duomenis per USB „Arduino“, nurodydamas, kur perkelti servas.
# įtraukti // Importuoti biblioteką „Servo servoPan“, „servoTilt“; // Sukurti servo objektą. Styginių duomenys = ""; // Saugoti gaunamų komandų (buferio) void setup () {// Nustatymo servos PWM palaikančiuose kaiščiuose servoPan.attach (9); „servoTilt.attach“ (10); „Serial.begin“ (9600); // Pradėkite seriją 9600 bps (greitis) } void loop () {while (Serial.avable ()> 0) {// Jei yra duomenų char singleChar = Serial.read (); // Perskaitykite kiekvieną ženklą, jei (singleChar == 'P') {// Perkelkite visos servo servoPan.write (data.toInt ()); duomenys = ""; // Išvalyti buferį} dar, jei (singleChar == 'T') {// Perkelti pakreipiamąjį servo servoTilt.write (data.toInt ()); duomenys = ""; // Išvalyti buferį} else {data + = singleChar; // Pridėti naujų duomenų}} }
Galite išbandyti šį kodą atidarę serijinį monitorių (viršuje dešinėje> Serijos monitorius) ir kai kurių bandymų duomenų siuntimas:
- 90P
- 0P
- 20T
- 100T
Atkreipkite dėmesį į komandų formatą - reikšmę, tada raidę. Reikšmė yra servo padėtis, o raidė (didžiosiomis raidėmis) nurodo serijinę arba pakreipiamąją pavarą. Kai šie duomenys perduodami iš Pi nuosekliai, kiekvienas simbolis gaunamas po vieną. Arduino turi juos „saugoti“, kol nebus perduota visa komanda. Galutinėje raidėje ne tik nurodomas servo elementas, bet ir pranešama Arduino, kad šioje komandoje nėra daugiau duomenų.
Galiausiai atjunkite Arduino nuo kompiuterio ir Prijunkite jį prie „Raspberry Pi“ per įprastą USB jungtį.
Pi sąranka
Dabar laikas nustatyti „Pi“. Pirmas, įdiegti operacinę sistemą Kaip įdiegti operacinę sistemą „Raspberry Pi“Štai kaip įdiegti operacinę sistemą „Raspberry Pi“ ir kaip klonuoti tobulą sąranką, kad greitai atsigautumėte. Skaityti daugiau . Prijunkite internetinę kamerą ir „Arduino“ prie „Pi USB“.
Atnaujinkite Pi:
„sudo apt-get“ atnaujinimas. „sudo apt-get“ atnaujinimas
Įdiekite judesį:
sudo apt-get įdiegti judesį
„Motion“ yra programa, skirta valdyti internetinės kameros transliaciją. Tai tvarko visus sunkius kėlimus ir netgi gali atlikti įrašymą ir judesio aptikimą (pabandykite judesio fiksavimo apsaugos sistemos sukūrimas Sukurkite „Motion Capture“ apsaugos sistemą naudodami „Raspberry Pi“Iš daugelio projektų, kuriuos galite sukurti naudodamiesi „Raspberry Pi“, vienas įdomiausių ir nuolat naudingiausių yra judesių fiksavimo apsaugos sistema. Skaityti daugiau ). Atidarykite judesio konfigūracijos failą:
sudo nano /etc/motion/motion.conf
Šiame faile yra daug „Motion“ konfigūravimo galimybių. Sąranka taip:
- demonas įjungtas - paleiskite programą
- kadrų dažnis: 100 - kiek kadrų ar vaizdų per sekundę srautas
- „stream_localhost off“ - leisti prieigą visame tinkle
- plotis 640 - vaizdo įrašo plotis, pritaikykite savo internetinei kamerai
- aukštis 320 - vaizdo įrašo aukštis, pritaikykite savo internetinei kamerai
- „stream_port 8081“ - prievadas, iš kurio galima perduoti vaizdo įrašą
- output_picture off - neišsaugokite jokių vaizdų
Tai gana didelis failas, todėl galbūt norėsite jį naudoti CTRL + W ieškoti eilučių. Baigę paspauskite CTRL + X tada patvirtinkite, kad išsaugotumėte ir išeitumėte.
Dabar redaguokite dar vieną failą:
sudo nano / etc / numatytasis / judesys
Nustatykite „start_motion_daemon = taip“. Tai reikalinga norint užtikrinti, kad „Motion“ veikia.
Dabar sužinokite savo IP adresą:
ifconfig
Ši komanda parodys „Pi“ tinklo ryšio duomenis. Pažvelkite į antrą eilutę, inet addr. Galbūt norėsite nustatyti statinį IP adresą (kas yra statinis IP? Kas yra statinis IP adresas? Štai kodėl jums to nereikiaStatinis IP adresas niekada nesikeičia. Dinaminiai IP adresai keičiasi. Paaiškiname, kodėl jums nereikia statinio IP adreso. Skaityti daugiau ), bet kol kas atkreipkite dėmesį į šį numerį.
Dabar pradėkite „Motion“:
„sudo“ tarnybos judesio pradžia
Galite sustabdyti arba paleisti judesį pakeisdami „start“ į „stop“ arba „restart“.
Perjunkite į kompiuterį ir žiniatinklio naršyklėje eikite į Pi:
http://xxx.xxx.x.xx: 8081
Kur xxx.xxx.x.xx yra Pi IP adresas. Dvitaškis, einantis po skaičiaus, yra prievadas, kuris buvo nustatytas anksčiau. Kad būtų gerai, turėtumėte pamatyti srautą iš savo internetinės kameros! Pabandykite judėti ir pažiūrėkite, kaip viskas atrodo. Gali reikėti koreguoti ryškumo ir kontrasto parametrus konfigūracijos faile. Jums gali tekti sutelkti kamerą - kai kurie modeliai aplink objektyvą turi mažą fokusavimo žiedą. Sukite tai tol, kol vaizdas bus ryškiausias.
Atgal į Pi, sukurkite aplanką ir eikite į jį:
mkdir apsaugos kamera. CD saugojimo kamera /
Dabar įdiekite „Twisted“:
sudo apt-get install python-twisted
Susuktas yra žiniatinklio serveris, parašytas Python'e, kuris klausys komandų ir atitinkamai elgsis.
Įdiegę sukurkite „Python“ scenarijų komandoms vykdyti (perkelkite servas).
sudo nano servos.rpy
Atkreipkite dėmesį, kaip failo plėtinys yra „.rpy“, o ne „py“. Štai kodas:
# Importuokite reikalingus failus. importuoti seriją. iš „twisted.web.resource“ importo. Šaltinis # „Arduino“ sąranka tinkamu greičiu. pabandykite: arduino = serialas. Serialas („/ dev / ttyUSB0“, 9600) išskyrus: arduino = serijinis. Serijos ('/ dev / ttyUSB1', 9600) klasė „MoveServo“ (šaltinis): isLeaf = True def render_GET (savarankiškai, prašymas): bandykite: # Siųsti vertę per serija Arduino arduino.write (request.args ['vertė'] [0]) grąžina 'Sėkmė', išskyrus: grąžinti 'Gedimas' resursas = „MoveServo“ ()
Dabar paleiskite žiniatinklio serverį:
sudo twistd -n web -p 80 - kelias / namai / pi / apsaugos kamera /
Leidžiame ją suskaidyti - „-p 80“ nurodo prievadą (80). Tai yra numatytasis tinklalapių prievadas. „–Path / home / pi / security-cam /“ nurodo „Twisted“ paleisti serverį nurodytame kataloge. Jei pakeisite scenarijus, esančius aplanke „security-cam“, turėsite paleisti serverį iš naujo (CTRL + X uždaryti, tada dar kartą paleiskite komandą).
Dabar sukurkite tinklalapį:
sudo nano index.html
Štai tinklalapio kodas:
Pasinaudokite „pasidaryk pats“ apsaugos kamera

Pakeiskite „PI_IP_ADDRESS“ (naudojamas du kartus) į tikrąjį „Pi“ IP adresą (raspberrypi.local taip pat turėtų veikti, jei naudojate naujausią „Raspian“). Iš naujo paleiskite žiniatinklio serverį ir tada eikite į „Pi“ iš savo kompiuterio, nereikia nurodyti prievado. Turėtumėte mokėti stumti į kairę ir į dešinę ir pamatyti vaizdo įrašo srautą:

Ten tu tai turi. Jūsų pati „Pan and Tilt“ tinklo kamera. Jei norite savo internetinę kamerą atskleisti internete, nepamirškite apsvarstykite pavojus 5 pavojai, į kuriuos reikia atsižvelgti žymint savo namų apsaugos kamerasSvarbu atidžiai apsvarstyti, kur išdėstysite savo kameras ir į kurias savo namų dalis nukreipiate. Svarbu išlaikyti dalykus, tačiau taip pat ir privatumą. Skaityti daugiau - tada pažvelk į uosto ekspedijavimas Kas yra uosto ekspedijavimas ir kaip jis gali man padėti? [„MakeUseOf“ paaiškina]Ar jūs šiek tiek verkiate, kai kas nors jums sako, kad yra prievadų peradresavimo problema, todėl jūsų naujoji blizgi programa neveiks? „Xbox“ neleis jums žaisti žaidimų, jūsų torrentų atsisiuntimai atsisako ... Skaityti daugiau , taigi jūsų maršrutizatorius žino, kur siųsti gaunamas užklausas. Galėtum pridurti išorinis maitinimo šaltinis 3 „Raspberry Pi“ baterijų paketai nešiojamiems projektams„Raspberry Pi“ baterija gali padaryti įprastą „Pi“ nešiojamąjį kompiuterį. Norėdami pradėti, jums reikės vieno iš šių akumuliatorių sprendimų. Skaityti daugiau ir „Wi-Fi“ adapteris tikrai nešiojamajam įrenginiui.
Ar padarėte ką nors nuostabaus su kamera ir „Pi“? Praneškite man komentaruose, norėčiau pamatyti!
Džo yra baigusi kompiuterių mokslą Linkolno universitete, JK. Jis yra profesionalus programinės įrangos kūrėjas, o kai jis neskraido dronais ar nerašo muzikos, jį dažnai galima rasti fotografuojant ar kuriant vaizdo įrašus.