INHOUDSOPGAWE:
- Stap 1: Voorvereistes
- Stap 2: Die installering van die CribSense -sagteware
- Stap 3: Maak u hardeware gereed: koppel u kamera aan
- Stap 4: Maak u hardeware gereed: IR LED
- Stap 5: Maak u hardeware gereed: onderstel
- Stap 6: Maak u hardeware gereed: monteer
- Stap 7: Kalibrasie
- Stap 8: Demonstrasie
- Stap 9: Probleemoplossing
Video: CribSense: 'n kontaklose, videogebaseerde babamonitor: 9 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
CribSense is 'n videogebaseerde, kontaklose babamonitor wat u self kan maak sonder om die bank te breek
CribSense is 'n C ++-implementering van video-vergroting wat ingestel is op 'n Raspberry Pi 3 Model B. Oor 'n naweek kan u u eie bababordmonitor opstel wat alarm maak as u baba ophou beweeg. As 'n bonus is al die sagteware gratis vir nie-kommersiële doeleindes te gebruik en kan dit maklik uitgebrei word.
Die volledige bewaarplek met bronlêers en dokumentasie kan gevind word op
Alhoewel ons dink dat CribSense baie lekker is, is dit belangrik om te onthou dat dit nie eintlik 'n gesertifiseerde, onfeilbare veiligheidsapparaat is nie. Dit wil sê, dit moet behoorlik gekonfigureer wees en 'n goed beheerde omgewing hê om te kan werk. Byvoorbeeld, as dit nie goed gekalibreer is nie en/of die omgewing in die video nie bevorderlik is vir videogrootte nie, kan u dit moontlik nie gebruik nie. Ons het dit as 'n prettige projek gemaak om te sien hoe goed ons sagteware soos rekenaarvergroting op rekenaar-beperkte hardeware soos 'n Raspberry Pi kan gebruik. Enige werklike produk verg baie meer toetse as wat ons gedoen het. Dus, as u hierdie projek gebruik, neem dit vir wat dit is: 'n kort verkenning van video -vergroting op 'n Pi.
Wat u benodig:
Raspberry Pi + kamera + konfigurasiehulpmiddels:
- Framboos Pi 3 Model B
- 5V 2.5A mikro -USB -kragbron
- Raspberry Pi NoIR -kameramodule V2
- MicroSD -kaart (ons het 'n 16 GB -klas 10 -kaart gebruik)
- Flex -kabel vir Raspberry Pi -kamera (12 ")
- Luidsprekers met ingang van 3,5 mm
- HDMI monitor
- USB -sleutelbord
- USB -muis
- [opsioneel] Raspberry Pi Heatsink (as u bekommerd is oor hitte, kan u een hiervan op u Pi plak)
IR LED-stroombaan vir lae lig:
- [3x] 1N4001 Diodes
- 1 Ohm, 1W weerstand
- 1W IR LED
- 2 drade om die LED aan die Pi te koppel
- Soldeerbout
Onderstel:
- Toegang tot 'n 3D -drukker (minimum bouvolume = 9,9 "L x 7,8" B x 5,9 "H) om ons onderstel te druk, maar bou gerus u eie.
- Gom (enige tipe gom sal werk, maar warm gom word aanbeveel vir prototipering).
Stap 1: Voorvereistes
Voordat u ons stap-vir-stap gids begin, moes u reeds die nuutste weergawe van Raspbian op u SD-kaart geïnstalleer het en seker gemaak het dat u Pi funksioneel is. U moet ook die kameramodule aktiveer voordat u toegang tot die kamera kan kry.
Stap 2: Die installering van die CribSense -sagteware
CribSense is afhanklik van autoconf, libtool, OpenCV en libcanberra, sowel as algemene sagteware -instrumente.
- autoconf en libtool word gebruik om makefiles outomaties op te stel en scripts vir CribSense op baie platforms te bou (soos Linux, OSX en die Raspberry Pi).
- OpenCV is 'n kragtige rekenaarvisie -pakket wat gebruik word om beeldverwerking te verrig en is die basis van die video -vergroting en bewegingsopsporingskode. Dit het uitstekende ondersteuning, is maklik om te gebruik en het goeie prestasie.
- libcanberra is 'n eenvoudige biblioteek om gebeurtenisgeluide te speel. Dit word gebruik om die alarmklank vir CribSense te speel.
Besoek hul individuele bladsye om volledige besonderhede te kry.
Installeer hierdie deur 'n terminale op u Pi te open en te hardloop:
sudo apt-get install git build-essential autoconf libtool libopencv-dev libcanberra-dev
Vervolgens moet u die bestuurder van die kamera outomaties instel deur bcm2835-v4l2 by '/etc/modules-load.d/modules.conf' te voeg. Jou modules.conf moet so lyk:
# /etc /modules: kernmodules om tydens opstart te laai.
# # Die lêer bevat die name van kernmodules wat tydens opstart gelaai moet word, een per reël. Lyne wat met '#' begin, word geïgnoreer. i2c-dev bcm2835-v4l2
Nadat die lêer gewysig is, moet u u Pi herlaai. Hierdie bestuurder word deur CribSense gebruik om rame direk uit die NoIR -kamera te trek.
Dan kan u die bewaarplek kloon deur die volgende uit te voer:
git -kloon
Gaan dan na die bewaarplek en bou die sagteware deur te hardloop
cd CribSense
./autogen.sh --prefix =/usr --sysconfdir =/etc-disable-debug maak sudo maak installeer sudo systemctl daemon-herlaai
Baie geluk, u het al die nodige sagteware geïnstalleer!
Konfigurasie
CribSense kan aanpas deur middel van 'n eenvoudige INI -konfigurasie lêer. Nadat u 'installeer' uitgevoer het, is die konfigurasielêer op /etc/cribsense/config.ini geleë. U kan hierdie parameters bekyk en wysig deur te hardloop
sudo nano /etc/cribsense/config.ini
'N Kort uiteensetting van elke parameter word in die standaardkonfigurasie gegee, maar meer besonderhede is beskikbaar op https://lukehsiao.github.io/CribSense/setup/config/. Ons sal ook kalibrasie en konfigurasie aan die einde van hierdie gids bespreek.
Begin CribSense
CribSense is ontwerp om by die aanvang te begin met behulp van 'n systemd -diens. Terwyl u met u sleutelbord en muis aan u Raspberry Pi gekoppel is, moet u seker maak dat die konfigurasieparameters vir u krip werk. Miskien moet u hierdie parameters herinstel as u dit skuif.
Terwyl u die parameters instel, kan u cribsense na willekeur vanaf die opdragreël uitvoer deur te hardloop
cribsense --config /etc/cribsense/config.ini
As u tevrede is, kan u outomaties begin deur te hardloop
sudo systemctl aktiveer cribsense
U kan keer dat cribsense outomaties loop deur te hardloop
sudo systemctl skakel cribsense uit
Sagteware Oorsig
Die CribSense -sagteware is die hart en siel van hierdie projek. Ons het 'n paar van die groot demo's van videobegroting van MIT gesien, en wou 'n soortgelyke algoritme op 'n Raspberry Pi probeer uitvoer. Dit het meer as 'n 10x versnelling vereis van die werk van tbl3rd oor sy C ++ implementering van video-vergroting om intyds op die Pi te werk. Die vereiste optimalisering het ons ontwerp van die sagteware gelei.
Op 'n hoë vlak ry CribSense herhaaldelik deur 'n sagteware -staatmasjien. Eerstens verdeel dit elke 640x480, grysskaalvideorame in 3 horisontale gedeeltes (640x160) vir 'n beter kaslokasie. Dit vergroot dan elke band in 'n aparte draad en monitor die beweging wat in die raam gesien word. Nadat die beweging etlike sekondes gemonitor is, bepaal dit die primêre bewegingsgebied en sny die raam daarby. Dit verminder die totale aantal pixels wat die algoritme moet verwerk. Dan monitor CribSense die hoeveelheid beweging in die geknipte stroom en lui 'n alarm as daar geen beweging gedurende 'n instelbare tyd waargeneem word nie. Van tyd tot tyd sal CribSense weer sy aansig oopmaak om die volle raam te monitor, ingeval die baba beweeg en weer in die nuwe primêre bewegingsgebied sny.
Video -vergroting word gebruik om die sein -geraas -verhouding van subtiele bewegings soos asemhaling by kinders te verhoog. Dit sou nie nodig wees vir groter bewegings nie, maar dit kan help vir baie subtiele bewegings. Let daarop dat ons implementering losweg gebaseer is op die algoritme wat in MIT se artikels beskryf word, en dat dit nie so goed presteer as hul eie kode nie.
Optimalisasies soos multithreading, adaptive cropping en samestelleroptimalisering het ons onderskeidelik ongeveer 3x, 3x en 1.2x versnel. Dit het ons in staat gestel om die 10x-versnelling te behaal wat nodig was om intyds op die Pi te werk.
Volledige besonderhede kan gevind word op die sagteware -argitektuur -bladsy van die CribSense -bewaarplek.
As u belangstel in video -vergroting, besoek die MIT -bladsy.
Stap 3: Maak u hardeware gereed: koppel u kamera aan
Eerstens moet u die 6 "-kabel wat by die kamera bygevoeg is, met die 12" -kabel omruil. Om dit te kan doen, kan u hierdie instruksie volg oor hoe u die kamerakabel vervang.
Samevattend sien u 'n stoot/trek -oortjie aan die agterkant van die kamera wat u kan uittrek om die buigkabel los te maak. Vervang die kort kabel met die langer kabel en druk die oortjie weer in.
U sal sien dat ons 'n 24 "kabel in ons foto's het. Dit was te lank. Die 12" kabel op die materiaallys is 'n baie meer redelike lengte.
Stap 4: Maak u hardeware gereed: IR LED
CribSense is relatief maklik om te bou en bestaan grotendeels uit in die handel beskikbare onderdele. Soos gesien in die figuur hierbo, is daar 5 hoof hardeware -komponente, waarvan slegs 2 op maat gemaak is. Hierdie bladsy gaan deur hoe om die IR LED -stroombaan te bou, en die volgende bladsy gaan oor hoe om die onderstel te bou.
Vir hierdie deel moet u u soldeerbout, drade, diodes, IR -LED en weerstand kry. Ons bou die stroombaan wat in die 2de figuur getoon word. As u nog nie soldeer nie, is hier 'n goeie gids wat u sal inhaal. Terwyl hierdie gids soldeer met 'n gat bespreek, kan u dieselfde basiese tegnieke gebruik om hierdie komponente aan mekaar te koppel as in die 3de figuur.
Om in die nag voldoende beligting te bied, gebruik ons 'n IR -LED, wat nie vir die menslike oog sigbaar is nie, maar sigbaar is vir die NoIR -kamera. Die IR -LED verbruik nie veel krag in vergelyking met die Raspberry Pi nie, dus laat ons die IR -LED om eenvoudig te bly.
In vorige weergawes van die Pi was die maksimum stroomuitset van hierdie penne 50mA. Die Raspberry Pi B+ het dit verhoog tot 500mA. Ons gebruik egter net die 5V -kragpenne vir eenvoud, wat tot 1,5A kan lewer. Die voorspanning van die IR LED is ongeveer 1,7 ~ 1,9V volgens ons metings. Alhoewel die IR -LED 500mA kan trek sonder om homself te beskadig, verminder ons die stroom tot ongeveer 200mA om hitte en algehele kragverbruik te verminder. Eksperimentele resultate toon ook aan dat die IR -LED helder genoeg is met 200mA se insetstroom. Om die gaping tussen 5V en 1.9V te oorbrug, gebruik ons drie 1N4001 -diodes en 'n 1 Ohm -weerstand in serie met die IR -LED. Die spanningsval oor die draad, diodes en weerstand is onderskeidelik ongeveer 0.2V, 0.9V (vir elkeen) en 0.2V. Die spanning oor die IR -LED is dus 5V - 0.2V - (3 * 0.9V) - 0.2V = 1.9V. Die hitte -afvoer oor die LED is 0.18W en 0.2W oor die weerstand, alles binne hul maksimum waardes.
Maar ons is nog nie klaar nie! Om 'n beter pas in die 3D -gedrukte onderstel te kry, wil ons hê dat die IR LED -lens uit ons onderstel moet steek en dat die printplaat gelyk met die gat moet wees. Die klein fotodiode regs onder in die pad val. Om dit op te los, desolder ons dit en draai dit na die teenoorgestelde kant van die bord soos in die laaste twee foto's. Die fotodiode is nie nodig nie, aangesien ons wil hê dat die LED altyd aan moet wees. As u dit eenvoudig na die teenoorgestelde kant oorskakel, bly die oorspronklike LED -kring onveranderd.
As u aan die drade soldeer, moet u seker maak dat die drade minstens 12 sentimeter lank is en speldopskrifte het wat oor die Pi se GPIO's kan gly.
Stap 5: Maak u hardeware gereed: onderstel
Bron lêers:
- Saak STL
- Case Makerbot
- Omslag STL
- Omslag Makerbot
Ons het 'n eenvoudige 3D -gedrukte onderstel gebruik om die Pi, die kamera en die LED te huisves. Dit is opsioneel om ons onderstel te gebruik, maar dit word aanbeveel om te voorkom dat jong kinders blootgestelde elektroniese stroombane raak. Elke wieg is anders, dus bevat ons onderstel geen monteerbeugel nie. Verskeie monteeropsies kan die volgende insluit:
- Kabel bande
- 3M dubbele slot
- Klittenband
- Band
As u toegang tot 'n MakerBot Replicator (5de generasie) het, kan u eenvoudig die.makerbot -lêers vir die saak aflaai en dit op u MakerBot Replicator aflaai en druk. Dit neem ongeveer 6 uur om die omslag te druk en 3 uur om die omslag te druk. As u 'n ander tipe 3D -drukker gebruik, moet u aanhou lees.
'N Minimum bouvolume van 9,9 "(L) x 7,8" (W) x 5,9 "(H) is nodig om CribSense te druk. As u nie toegang tot 'n 3D -drukker met hierdie bouvolume het nie, kan u 'n aanlyn 3D -drukwerk gebruik diens (soos Shapeways of Sculpteo) om CribSense af te druk. Die minimum drukresolusie is 0,015 ". As u 'n 3D -drukker van 'n gesmelte filament vervaardig, beteken dit dat u spuitstukdiameter 0,015 duim of kleiner moet wees. Drukkers met 'n laer drukresolusie (groter spuitstukdiameters) werk moontlik, maar die Raspberry Pi pas moontlik nie in die onderstel nie. Ons beveel PLA (polimelksuur) aan as die voorkeur drukmateriaal. Ander plastiek kan werk, maar die Raspberry Pi pas moontlik nie in die kas as die termiese uitbreidingskoëffisiënt van die gekose plastiek groter is as dié van PLA. As u 3D -drukker 'n verhitte bouplaat, skakel die verwarmer af voordat u verder gaan.
Dit is van kritieke belang om die model op die bouplaat van u drukker te oriënteer vir 'n suksesvolle afdruk. Hierdie modelle is sorgvuldig ontwerp sodat hulle nie met ondersteunende materiaal gedruk hoef te word nie, wat plastiek bespaar en die kwaliteit van die druk verbeter. Laai die 3D -lêers vir die omhulsel en omslag af voordat u verder gaan. By die druk van hierdie modelle moet die nek van CribSense plat op die bouplaat lê. Dit verseker dat alle oorhanghoeke op die modelle nie 45 grade oorskry nie, wat die vereiste vir ondersteuningsmateriaal uitskakel. Raadpleeg die handleiding wat by u 3D -drukker gelees is vir instruksies oor die oriëntasie van 3D -modelle in die bouvolume van u drukker. Voorbeelde vir die bou -oriëntasie van die omhulsel en omslag word hierbo getoon.
Behalwe dat u die nek van CribSense plat teen die bouplaat sit, kan u ook agterkom dat die modelle om die vertikale as gedraai word. Dit kan nodig wees om die model in die bouvolume van u 3D -drukker te pas. Hierdie rotasie is opsioneel as die lengte van u bouvolume lank genoeg is om CribSense te akkommodeer.
Stap 6: Maak u hardeware gereed: monteer
Sodra u al die hardeware gereed het, kan u begin monteer. Enige gom kan in hierdie proses gebruik word, maar ons beveel warm gom aan om twee hoofredes. Warm gom droog vinnig, sodat u nie lank hoef te wag totdat die gom droog word nie. Boonop is warm gom verwyderbaar as u 'n fout maak. Om gedroogde warm gom te verwyder, week die warm gom in vryf (isopropyl) alkohol. Ons beveel 90% konsentrasie of hoër aan, maar 70% konsentrasie sal steeds werk. Deur die gedroogde warm gom in isopropylalkohol te week, verswak die band tussen die gom en die onderliggende oppervlak, sodat u die gom skoon kan verwyder. As die gom in isopropylalkohol geweek word, moet die Raspberry Pi afgeskakel word en die stekker ontkoppel word. Laat alles droog word voordat u warm gom weer aanbring en die Raspberry Pi begin.
Al die foto's vir hierdie stappe is in orde en volg saam met die teksstappe.
- Steek die Raspberry Pi in die onderstel. U sal dit 'n bietjie moet buig om die klankpoort in te kry, maar sodra dit in is, hou die klankaansluiting dit op sy plek. Sodra dit op sy plek is, moet u seker maak dat u nog toegang tot al die poorte het (byvoorbeeld, u kan die kragkabel aansluit).
- Gebruik dan warm gom om die Pi op sy plek vas te maak en heg die kamera aan die Pi. Daar is ook skroefgate as u dit verkies.
- Plak nou die LED en kamera op die voorblad (op die foto). Begin deur die NoIR -kamera warm aan die kameragat vas te plak. Maak seker dat die kamera styf en in lyn is met die onderstel. Moenie te veel gom gebruik nie; anders kan u die kamera nie in die hoes pas nie. Skakel die Pi aan en kyk na die kamera (byvoorbeeld 'raspistill -v') om seker te maak dat dit goed gekantel is en 'n goeie gesigsveld het. As dit nie die geval is nie, verwyder die warm gom en plaas dit weer.
- Plak dan die IR -LED aan die gaatjie op die nek van die omslag. Die nek is teen 'n hoek van 45 grade teenoor die krip, wat meer skaduwees in situasies met 'n lae lig tot gevolg het. Dit gee meer kontras aan die beeld, wat dit makliker maak om beweging op te spoor.
- Bevestig die IR LED -drade aan die koppenne van die Raspberry Pi, soos in die skematiese prentjie getoon.
- Pak die kabels in die onderstel op 'n manier wat dit nie vou of druk nie. Ons het uiteindelik die kabel trekklavierstyl gevou omdat ons kamera se flexkabel te lank was.
- Met alles ingedruk, warm gom om die rande waar die twee stukke bymekaarkom, en verseël dit op hul plek.
Stap 7: Kalibrasie
Besonderhede oor konfigurasieparameters kan gevind word in die CribSense -bewaarplek -dokumentasie. Kyk ook na die video om 'n voorbeeld te sien van hoe u CribSense kan kalibreer nadat u alles opgestel het.
Hier is 'n voorbeeld van die konfigurasielêer:
[io]; I/O -opset
; invoer = pad_to_lêer; Invoerlêer om input_fps = 15 te gebruik; invoer per sekonde (40 maks., 15 word aanbeveel as u kamera gebruik) full_fps = 4,5; fps waarby volledige rame verwerk kan word crop_fps = 15; fps waarby gesnyde rame verwerk kan word kamera = 0; Kamera om breedte te gebruik = 640; Breedte van die ingang video hoogte = 480; Hoogte van die invoervideo time_to_alarm = 10; Hoeveel sekondes om te wag sonder beweging voor alarm. [sny]; Adaptive Cropping Settings crop = true; Of frames_to_settle = 10 gesny moet word; # rame om na herstel te wag voordat roi_update_interval = 800 verwerk word; # rame tussen herberekening van ROI roi_window = 50; # rame om te monitor voordat ROI [beweging] gekies word; Bewegingsopsporingsinstellings erode_dim = 4; dimensie van die erodeerde kern dilate_dim = 60; dimensie van die dilate kern diff_threshold = 8; abs verskil nodig voor die herkenning van veranderingsduur = 1; # rame om beweging te behou voordat die ware pixel_drempel = 5 gemerk word; # pixels wat anders moet wees as die vlag as motion show_diff = false; toon die verskil tussen 3 rame [vergroting]; Video vergroting instellings versterk = 25; Die % versterking gewenste lae-afsny = 0,5; Die lae frekwensie van die bandpas. hoë afsnypunt = 1.0; Die hoë frekwensie van die bandpas. drempel = 50; Die fasedrempel as % van pi. show_magnification = vals; Toon die uitvoerrame van elke vergroting [ontfout] print_times = false; Druk ontledingstye af
Kalibrasie van die algoritme is 'n herhalende poging, sonder 'n presiese oplossing. Ons moedig u aan om met verskillende waardes te eksperimenteer en dit te kombineer met die ontfoutingsfunksies, om die kombinasie van parameters te vind wat die beste by u omgewing pas. Maak seker dat show_diff en show_magnification op true is gestel voordat u begin kalibreer.
As 'n riglyn verhoog toenemende versterking en die fase -drempelwaardes die hoeveelheid vergroting wat op die invoervideo toegepas word. U moet hierdie waardes verander totdat u duidelik die beweging sien wat u in die videorame wil volg. As u artefakte sien, kan dit help om die fase_drempel te behou met dieselfde versterking.
Die bewegingsopsporingsparameters help om geraas te vergoed. By die opsporing van bewegingsgebiede word erode_dim en dilate_dim gebruik om die afmetings van die OpenCV -pitte wat gebruik word om beweging te erodeer en te verwater, te vergroot sodat geraas eers weggevee word, dan word die oorblywende bewegingssein aansienlik verwyd om die bewegingsstreke duidelik te maak. Hierdie parameters moet moontlik ook ingestel word as u krip in 'n baie hoë kontras omgewing is. Oor die algemeen benodig u 'n hoër erode_dim vir hoë kontrasinstellings en 'n laer erode_dim vir lae kontras.
As u CribSense met show_diff = true gebruik en u agterkom dat te veel van die opbrengs van die akkumulator wit is, of 'n heeltemal onverwante deel van die video as beweging bespeur word (bv. 'N flikkerende lamp), verhoog die erode_dim tot slegs die deel van die video wat ooreenstem met u baba, is die grootste gedeelte wit. Die eerste figuur toon 'n voorbeeld waar die erode dimensie te laag is vir die hoeveelheid beweging in die raam, terwyl die volgende een 'n goed gekalibreerde raam toon.
Sodra dit gekalibreer is, moet u seker maak dat die pixel_threshold op 'n waarde gestel is dat "Pixel Movement" slegs die piekwaardes van pixelbeweging rapporteer, en nie almal nie (wat beteken dat u die geraas moet uitsny). Ideaal gesproke sal u sulke uitsette in u terminale sien, met 'n duidelike periodieke patroon wat ooreenstem met die beweging:
[info] Pixelbeweging: 0 [info] Bewegingskatting: 1.219812 Hz
[info] Pixelbeweging: 0 [info] Bewegingskatting: 1.219812 Hz [info] Pixelbeweging: 0 [info] Bewegingskatting: 1.219812 Hz [info] Pixelbeweging: 0 [info] Bewegingskatting: 1.219812 Hz [info] Pixelbeweging: 44 [info] Motion Estimate: 1.219812 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 1.219812 Hz [info] Pixel Movement: 161 [info] Motion Estimate: 1.219812 Hz [info] Pixel Movement: 121 [info] Bewegingskatting: 0.841416 Hz [info] Pixelbeweging: 0 [info] Bewegingsskatting: 0.841416 Hz [info] Pixelbeweging: 86 [info] Bewegingsskatting: 0.841416 Hz [info] Pixelbeweging: 0 [info] Bewegingsskatting: 0.841416 Hz [info] Pixelbeweging: 0 [info] Bewegingskatting: 0.841416 Hz [info] Pixelbeweging: 0 [info] Bewegingskatting: 0.841416 Hz [info] Pixelbeweging: 0 [info] Bewegingsberaming: 0.841416 Hz [info] Pixelbeweging: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movem ent: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 97 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 74 [info] Motion Estimate: 0.839298 Hz [info] Pixel Beweging: 0 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 60 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 48 [info] Motion Skatting: 0.839298 Hz [info] Pixel Movement: 38 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 29 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 28 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 22 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.839298 Hz [info] Pixel Movement: 0 [info] Bewegingskatting: 0.839298 Hz [info] Pixelbeweging: 0 [info] Bewegingsskatting: 0.839298 Hz
As u uitset meer soos volg lyk:
[info] Pixelbeweging: 921 [info] Bewegingskatting: 1.352046 Hz
[info] Pixel Movement: 736 [info] Motion Estimate: 1.352046 Hz [info] Pixel Movement: 666 [info] Motion Estimate: 1.352046 Hz [info] Pixel Movement: 663 [info] Motion Estimate: 1.352046 Hz [info] Pixel Movement: 1196 [info] Motion Estimate: 1.352046 Hz [info] Pixel Movement: 1235 [info] Motion Estimate: 1.352046 Hz [info] Pixel Movement: 1187 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 1115 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 959 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 744 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 611 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 468 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 371 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 307 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 270 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 234 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 197 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 179 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 164 [info] Motion Estimate: 1.456389 Hz [info] Pixel Movement: 239 [info] Motion Estimate: 1.456389 Hz [info] Pixelbeweging: 733 [info] Bewegingskatting: 1.456389 Hz [info] Pixelbeweging: 686 [info] Bewegingskatting: 1.229389 Hz [info] Pixelbeweging: 667 [info] Bewegingskatting: 1.229389 Hz [info] Pixelbeweging: 607 [info] Motion Estimate: 1.229389 Hz [info] Pixel Movement: 544 [info] Motion Estimate: 1.229389 Hz [info] Pixel Movement: 499 [info] Motion Estimate: 1.229389 Hz [info] Pixel Movement: 434 [info] Motion Estimate: 1.229389 Hz [info] Pixel Movement: 396 [info] Motion Estimate: 1.229389 Hz [info] Pixel Movement: 375 [info] Motion Estimate: 1.229389 Hz [info] Pixel Movement: 389 [info] Motion Estimate: 1.229389 Hz [info] Pixelbeweging: 305 [info] Motion Estimate: 1.312346 Hz [info] Pixel Movement: 269 [info] Motion Estimate: 1.312346 Hz [info] Pixel Movement: 1382 [info] Motion E stimate: 1.312346 Hz [info] Pixel Movement: 1086 [info] Motion Estimate: 1.312346 Hz [info] Pixel Movement: 1049 [info] Motion Estimate: 1.312346 Hz [info] Pixel Movement: 811 [info] Motion Estimate: 1.312346 Hz [info] Pixel Movement: 601 [info] Motion Estimate: 1.312346 Hz [info] Pixel Movement: 456 [info] Motion Estimate: 1.312346 Hz
Pas pixel_threshold en diff_threshold aan totdat net pieke gesien word, en pixelbeweging is andersins 0.
Stap 8: Demonstrasie
Hier is 'n klein demonstrasie van hoe CribSense werk. U sal moet dink dat dit aan die kant van 'n wieg geheg is.
As u CribSense bo u krip plaas, moet u die afstand tussen die baba en die kamera optimaliseer. Ideaal gesproke sal die bors van u baba minder as 1/3 van die raam vul. Die kind moet nie te ver weg wees nie, anders sukkel die video met 'n lae resolusie om genoeg besonderhede te vind om dit te vergroot. As die kamera te naby is, kan die kamera u kind moontlik nie sien as hulle rol of uit die raam beweeg nie. Net so, as die kind onder 'n "tent" kombers is, waar daar beperkte kontak tussen die kombers en die kind se bors is, kan dit moeilik wees om beweging op te spoor. Steek hulle goed in!
U sal ook die beligtingsituasie rondom u wieg wil oorweeg. As u wieg reg langs 'n venster is, kan u bewegende skaduwees of veranderende ligwaardes kry, aangesien die son deur wolke geblokkeer word, of as dit buite die venster beweeg. Iewers met konsekwente beligting is die beste.
Met nog 'n bietjie werk dink ons dat iemand ons sagteware kan verbeter sodat kalibrasie 'n baie gladder proses is. In die toekoms kan ekstra funksies soos stootkennisgewings ook bygevoeg word.
Stap 9: Probleemoplossing
U kan 'n paar algemene probleme ondervind tydens die opstel van CribSense. As u byvoorbeeld probleme ondervind met die bou/uitvoer van die program, of om geen klank te hoor nie. Onthou, CribSense is nie 'n heeltemal betroubare babamonitor nie. Ons verwelkom bydraes in ons GitHub -bewaarplek terwyl u verbeterings aanbring!
Hier is 'n paar wenke om probleme op te los wat ons bymekaargemaak het tydens die maak van CribSense.
Geen alarm speel nie
- Werk jou sprekers?
- Kan u ander geluide van die Pi buite die CribSense -alarm speel?
- As u Pi klank probeer speel via HDMI eerder as deur die klankpoort? Gaan die Raspberry Pi Audio Configuration -bladsy na om seker te maak dat u die regte uitset gekies het.
- Bespeur CribSense -sagteware beweging? As CribSense op die agtergrond loop, kan u met journalctl -f in 'n terminale kyk.
- As CribSense baie beweging voel, moet u CribSense moontlik kalibreer.
Die IR -LED werk nie
- Kan u 'n ligte rooi kleur sien as u na die IR -LED kyk? 'N Dowwe rooi ring moet sigbaar wees as die LED aan is.
- Kontroleer die polariteit van die verbindings. As +5V en GND omgekeer word, sal dit nie werk nie.
- Koppel die LED aan 'n kragtoevoer met 'n 5V/0.5A spanning/stroom limiet. Normaalweg moet dit 0.2A by 5V verbruik. As dit nie die geval is nie, kan u LED nie funksioneer nie.
CribSense ontdek beweging, alhoewel daar nie 'n baba is nie
- Het u CribSense behoorlik gekalibreer?
-
Onthou, CribSense is net op soek na veranderinge in pixelwaardes
- Beweeg daar skaduwees binne die raam?
- Is daar flikkering of veranderende beligting?
- Is CribSense gemonteer op 'n stabiele oppervlak (dit wil sê iets wat nie sal bewe as mense daardeur loop nie)?
- Is daar ander bewegingsbronne in die raam (spieëls wat weerkaatsings vang, ens.)?
CribSense herken NIE beweging nie, alhoewel daar beweging is
- Het u CribSense behoorlik gekalibreer?
- Is daar iets in die pad van die kamera?
- Kan u enigsins van die Raspberry Pi aan die kamera koppel? Kontroleer deur raspistill -v in 'n terminale te gebruik om die kamera vir 'n paar sekondes op die Pi oop te maak.
- As u na sudo systemctl status cribsense kyk, loop CribSense dan eintlik?
- Is u baba onder 'n kombers wat "opgeslaan" is sodat dit nie met die kind in aanraking kom nie? As daar groot gapings tussen die kombers en die kind is, kan die kombers die beweging bedek.
- Kan u die beweging sien as u die video meer versterk?
- Kan u die beweging sien as u die afsnitte vir lae en hoë frekwensies afstem?
- As dit slegs in swak lig gebeur, het u seker gemaak dat u kalibrasie in swak lig werk?
CribSense bou nie
Het u al die afhanklikes geïnstalleer?
Ek kan nie cribsense vanaf die opdraglyn uitvoer nie
- Het u per ongeluk iets verkeerd getik toe u hardloop./autogen.sh --prefix =/usr --sysconfdir =/etc-disisable-debug tydens u sagteware-bou?
- Is cribsense teenwoordig in /usr /bin?
- Watter pad word verskaf as u 'watter cribsense' gebruik?
Aanbeveel:
Kontaklose Halloween Candy Dispenser: 6 stappe
Kontaklose Halloween Candy Dispenser: Dit is weer daardie tyd van die jaar, waar ons Halloween vier, maar hierdie jaar as gevolg van COVID-19 is alle weddenskappe af. Maar in die gees van Halloween moet ons nie die pret van Trick or Treating vergeet nie. Daarom word hierdie plasing gemaak om die gesin stil te hou
Kontaklose waterfontein: 9 stappe (met foto's)
Contactless Water Fountain: Aan die einde van my eerste jaar as 'n MCT -student het ek 'n taak gekry om 'n projek te maak wat al die vaardighede bevat wat ek gedurende die jaar uit kursusse opgedoen het. deur my onderwysers en by
Arduino -koppelvlak met ultrasoniese sensor en kontaklose temperatuursensor: 8 stappe
Arduino -koppelvlak met ultrasoniese sensor en kontaklose temperatuursensor: Makers, ontwikkelaars verkies deesdae Arduino vir 'n vinnige ontwikkeling van die prototipering van projekte. Arduino is 'n open source elektroniese platform wat gebaseer is op hardeware en sagteware wat maklik is om te gebruik. Arduino het 'n baie goeie gebruikersgemeenskap. In hierdie projek
Kontaklose spanningsdetektor: 15 stappe (met foto's)
Kontaklose spanningsmeter: 3 maniere om u eie kontaklose spanningsdetektor te bou vir minder as 'n dollar Inleiding ------------ As elektrisiteit nie behoorlik hanteer word nie, lei dit tot elektriese skokke met 'n nare ervaring; daarom moet veiligheid eerste kom as u werk
Arduino babamonitor met Java Viewer: 8 stappe (met foto's)
Arduino Baby Monitor Met Java Viewer: Bou 'n Arduino-gebaseerde multi-sensor eenheid om die omstandighede in 'n kamer waar te neem. Hierdie eenheid kan humiditeit, temperatuur, beweging en klank aanvoel. Aangeheg is 'n Java -gebaseerde kyker wat reeksdata van die arduino ontvang