Turinys:
- 1 žingsnis: sistemos bloko schema
- 2 žingsnis: šio projekto komponentai
- 3 žingsnis: 2 žingsnis: grandinės schema ir jungtys
- 4 veiksmas: įdiekite „Os“į „DragonBoards“
- 5 veiksmas: ryšio sąsajos
- 6 veiksmas: esminių programinės įrangos modulių diegimas
- 7 žingsnis: demonstravimas
- 8 žingsnis: ačiū
Video: „Smart IoT Vision“: 8 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Tai projektas, orientuotas į išmaniojo miesto kontekstą. Šiuo klausimu mes išsprendžiame tris pagrindines problemas:
1 - energijos taupymas viešajame apšvietime; 2 - gerinti miesto saugumą; 3 - pagerinti eismo srautą.
1 - Naudojant LED lemputes gatvėse, sutaupoma iki 50 proc., O pridėjus „Telemanagement“, galime sutaupyti 30% daugiau.
2 - Naudodami išmaniąsias kameras, galime valdyti, kad šviesos pritemdytų ten, kur nėra žmonių srauto, ir padaryti gatvės dalį šviesesnę ten, kur žmonės vaikšto. Tai ne tik sutaupys energijos, bet ir padidins stebėjimo jausmą, taigi įbaugins blogus ketinimus turinčius žmones. Be to, įtartino elgesio atveju gali būti naudojami vaizdiniai aliarmai (pavyzdžiui, mirksi lempos).
3 - Išmanioji kamera stebės eismą, vietoje apdoros jo sąlygas ir valdys šviesos signalus, kad galėtų geriausiai valdyti eismą. Tokiu būdu būtų galima išvengti kamščių, automobiliams nereikėtų ilgai laukti raudonų signalų, kai perėjoje nėra srauto ir pan. Kalbant apie technologines problemas, mes taip pat sprendžiame dažniausiai pasitaikančias IoT problemas, tokias kaip patikimas ryšys miesto mastu ir fotoaparatų integravimas į „IoT Network“, naudojant krašto apdorojimą tik svarbiai informacijai perduoti.
Peržiūrėkite mūsų leidinį „Embarcados“ir „GitHub“
Taip pat „YouTube“
Mūsų komanda:
Milton Felipe Souza Santos
Gustavo Retuci Pinheiro
Eduardo Caldas Cardoso
Jonathas Baker
(Kontaktinė informacija apačioje)
1 žingsnis: sistemos bloko schema
Tai yra sprendimo architektūros apžvalga.
Sistemą sudaro „Camera-Gateway“, kuri naudoja RFmesh FAN sąsajoje, „WiFi“LAN tinkle ir CAT-M WAN ryšiui. Jame taip pat yra išmaniųjų fotoelementų, išmaniųjų fotoaparatų ir šviesos signalų.
Visi tinklų įrenginiai, daugiausia išmanioji kamera, siunčia duomenis per 6 slėptuvę į išmaniuosius vartus, todėl ji gali priimti sprendimus dėl viešojo apšvietimo ir šviesos signalų valdymo.
Vartai taip pat prijungti prie mūsų serverio per VPN. Tokiu būdu mes turime prieigą prie FAN ir LAN, roboto, norėdami patikrinti būseną arba valdyti įrenginius.
2 žingsnis: šio projekto komponentai
„Smart Cam“
- „DragonBoard410C“/„DragonBoard820C“
- USB kamera
- „OneRF NIC“
„Camera Gateway“
- „DragonBoard410C“/„DragonBoard820C“
- USB kamera
- „OneRF NIC“
- „Cat-M/3G“modemas
Protingas šviesos signalas
3 žingsnis: 2 žingsnis: grandinės schema ir jungtys
„Smart Cam“
- Fotoaparatas USB jungtyje
- „OneRF NIC“UART prievade
„Camera Gateway“
- Fotoaparatas USB jungtyje
- „OneRF NIC“UART prievade
- 3G/Cat-M modemas prie USB prievado
(Visa tai sujungta „IoT Mezzanine“)
„Smart Stree“šviesa
- Įprastas gatvės apšvietimas
- Relės lenta (3 kanalai)
- „OneRF NIC“
Išmanusis fotoelementas
- „OneRF NIC“
- Galios matuoklis
4 veiksmas: įdiekite „Os“į „DragonBoards“
„Debian“diegimas „Dragonboard820C“(„Fastboot“metodas)
Naudodami „Linux“OS įdiekite paketus, išvardytus:
Drakono lentoje:
padaryti s4 OFF, OFF, OFF, OFF
Įjunkite spaudimą vol (-)
Jei naudojate nuoseklųjį monitorių (labai rekomenduojama), gausite pranešimą „greitas įkrovimas: apdorojimo komandos“(nuoseklusis monitorius, 115200) Prijunkite „micro-usb“(J4) prie kompiuterio
Pagrindiniame kompiuteryje: atsisiųskite (ir išpakuokite) iš
$ sudo greito paleidimo įrenginiai
452bb893 greitas įkrovimas (pavyzdys)
$ sudo fastboot flash boot boot-linaro-buster-dragonboard-820c-BUILD.img
$ sudo fastboot flash rootfs linaro-buster-alip-dragonboard-820c-BUILD.img
„Debian“diegimas „Dragonboard410C“
Žingsniai kompiuteryje („Linux“)
1 - atsisiųskite paveikslėlį
$ cd ~
$ mkdir „Debian_SD_Card_Install_image“
$ cd „Debian_SD_Card_Install_image“
$ wget
2 - išpakuokite failus
$ cd ~/Debian_SD_Card_Install_image
$ unzip dragonboard410c_sdcard_install_debian-233.zip
3 - Įdėkite „microSD“į kompiuterį ir patikrinkite, ar jis prijungtas
$ df -h
/dev/sdb1 7.4G 32K 7.4G 1%/media/3533-3737
4 - Atjunkite „microSD“ir įrašykite vaizdą
$ umount /dev /sdb1
$ sudo dd if = db410c_sd_install_debian.img of =/dev/sdb bs = 4M oflag = sinchronizavimo būsena = noxfer
5 - Išimkite „microSD“iš savo kompiuterio
Žingsniai kompiuteryje („Windows“) Atsisiuntimas - SD kortelės vaizdas - (1 parinktis) SD kortelės vaizdas - Įdiekite ir paleiskite iš „eMMC“
www.96boards.org/documentation/consumer/dr…
Išpakuokite SD kortelės diegimo vaizdą
Atsisiųskite ir įdiekite „Win32DiskImager“įrankį
sourceforge.net/projects/win32diskimager/f…
Atidarykite „Win32DiskImager“įrankį
Įdėkite SD kortelę į kompiuterį
Raskite ištrauktą.img failą
Spustelėkite Rašyti
„Dragonboard“veiksmai Įsitikinkite, kad „DragonBoard ™ 410c“yra atjungtas nuo maitinimo šaltinio
Nustatykite „DragonBoard ™ 410c“S6 jungiklį į 0-1-0-0, „SD įkrovos jungiklis“turi būti nustatytas į „ON“.
Prijunkite HDMI
Prijunkite USB klaviatūrą
Įdėkite „microSD“
Įjunkite maitinimo adapterį
Pasirinkite norimą įdiegti vaizdą ir spustelėkite „Įdiegti“
palaukite, kol diegimas bus baigtas
Nuimkite maitinimo adapterį
Pašalinkite „microSD“
Nustatykite S6 jungiklį į 0-0-0-0
PADARYTA
5 veiksmas: ryšio sąsajos
Cat-m ir 3G diegimas
Naudokite šias AT komandas naudodami pagrindinį kompiuterį:
AT#SIMDET? // patikrinti SIM kortelės buvimą#SIMDET: 2, 0 // SIM neįdėtas
#SIMDET: 2, 1 // įterptas sim
AT+CREG? // patikrinkite, ar jis užregistruotas
+CREG: 0, 1 // (išjungti tinklo registracijos nepageidaujamą rezultato kodą (numatytasis gamykloje), registruotas namų tinklas)
AT+COPS?
+COPS: 0, 0, „VIVO“, 2 // (režimas = automatinis pasirinkimas, formatas = raidiniai ir skaitmeniniai, oper,?)
AT+CPAS // Telefono veiklos būsena
+CPAS: 0 // paruošta
AT+CSQ // patikrinkite paslaugos kokybę
+CSQ: 16, 3 // (rssi, bitų klaidų lygis)
AT+CGATT? // GPRS priedo būsena
+CGATT: 1 // pridedamas
AT+CGDCONT = 1, „IP“, „zap.vivo.com.br“,, 0, 0 // konfigūruoti kontekstą
Gerai
AT+CGDCONT? // patikrinti kontekstą
+CGDCONT: 1, „IP“, „zap.vivo.com.br“, ““, 0, 0
AT#SGACT = 1, 1 // Konteksto aktyvinimas
#SGACT: 100.108.48.30
Gerai
Nustatykite sąsają
Naudojant grafinę aplinką
Prijunkite modemą (oneRF_Modem_v04 - HE910)
Atidarykite tinklo ryšius
Norėdami pridėti naują ryšį, spustelėkite +
Pasirinkite Mobilusis plačiajuostis ryšys
Pasirinkite tinkamą įrenginį
Pasirinkite šalį
Pasirinkite teikėją
Pasirinkite planą ir išsaugokite
Pašalinkite modemą
Iš naujo prijunkite modemą
Naudodami terminalapt-get install pppconfig
pppconfig
teikėjas = vivo
dinamikas
CHAP
vivo
vivo
115200
Tonas
*99#
ne (rankinis)
/dev/ttyUSB0
sutaupyti
katė/etc/ppp/bendraamžiai/vivo
katė/etc/chatscripts/vivo
pon vivo
Jei naudojate „Cat-M“modulį, prieš tai tiesiog naudokite šias komandas:
echo 1bc7 1101>/sys/bus/usb-serial/drivers/option1/new_id
apt-get install comgt
comgt -d /dev /ttyUSB0 comgt info -d /dev /ttyUSB0
6 veiksmas: esminių programinės įrangos modulių diegimas
Plėtros kompiuteryje
Atminkite, kad kai kurie veiksmai priklauso nuo aparatūros ir turi būti pakoreguoti, kad atitiktų jūsų faktines kompiuterio specifikacijas. Bibliotekos gali būti įdiegtos naudojant vieną komandą.
sudo apt install build-essential git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgflags2 hdf5 openmpi-bin opnempi-doc protobuf-compiler python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-tipping python-hypotesis python-yaml
„OpenCV“
Ši sistema naudojama kuriant vaizdais pagrįstus statistinius algoritmus kūrimo mašinoje. Kadangi dauguma mūsų kodo parašyta „Python“, paprasčiausias diegimo būdas yra tiesiog
pip įdiegti opencv-python
Tačiau atminkite, kad šie ratai nenaudos nieko, išskyrus jūsų procesorių, ir gali net nenaudoti visų jo branduolių, todėl galbūt norėsite kompiliuoti iš šaltinio, kad pasiektumėte maksimalų našumą. Pavyzdžiui, norėdami sukurti paketą „Linux“, atsisiųskite ZIP failą iš „OpenCV Releases“puslapio ir išpakuokite jį. Iš neišpakuoto aplanko:
mkdir build && cd buildcmake.. padaryti visus -j4
sudo make install
Komanda -j4 nurodo padaryti keturis siūlus. Naudokite tiek, kiek turi jūsų procesorius!
Kavinė
Norėdami nustatyti „Caffe“sistemą iš šaltinių:
git klonas https://github.com/BVLC/caffe.git && cd caffemkdir build
cmake..
padaryti viską
padaryti testą padaryti runtest
Jei visi bandymai sėkmingai atliekami, viskas yra paruošta.
„TensorFlow“
„Google“neleidžia kompiliuoti „TensorFlow“naudojant įprastus įrankius. Tam reikia „Bazel“ir tikėtina, kad jis neveiks, todėl venkite jo kompiliuoti ir tiesiog paimkite iš anksto sudarytą modulį su:
pip install tensorflow
Jei jūsų kompiuteris yra šiek tiek senas ir jame nėra AVX instrukcijų, gaukite paskutinį ne AVX tensorflow su
pip install tensorflow == 1.5
Ir baigsite.
SNPE - „Snapdragon ™“nervų apdorojimo variklis
Nustatyti „Snappy“, kaip mūsų „Qualcomm“draugai vadina SNPE, nėra sunku, tačiau reikia atidžiai sekti veiksmus. Diegimo schema yra tokia:
klonuoti neuroninių tinklų sistemų „git“saugyklas
„CaffeCaffe2“
„TensorFlow“
ONNX
paleiskite scenarijus, kad patikrintumėte priklausomybessnpe/bin/dependencies.sh
snpe/bin/check_python_depends.sh
kiekvienai įdiegtai sistemai paleiskite snpe/bin/envsetup.sh
šaltinis $ SNPE/bin/envsetup.sh -c $ CAFFE_GIT
šaltinis $ SNPE/bin/envsetup.sh -f $ CAFFE2_GIT
šaltinis $ SNPE/bin/envsetup.sh -t $ TENSORFLOW_GIT
šaltinis $ SNPE/bin/envsetup.sh -o $ ONNX_GIT
Norėdami gauti SNPE kiekviename atidarytame terminalo egzemplioriuje, pridėkite keturių žingsnių keturias eilutes prie ~/.bashrc failo pabaigos.
Tikslinėje lentoje
Pereiti prie „arm64“iš „amd64“nėra lengva užduotis, nes daugelis bibliotekų pasinaudos x86 instrukcijomis, kad padidintų jų našumą. Laimei, daugumą reikalingų išteklių galima surinkti pačioje lentoje. Reikalingas bibliotekas galima įdiegti naudojant vieną komandą.
sudo apt install build-essential git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgflags2 hdf5 openmpi-bin opnempi-doc protobuf-compiler python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-tipping python-hypotesis python-yaml
Įdiekite juos naudodami apt ir tęskite. Atminkite, kad šis veiksmas gali užtrukti, nes tinkami skambučiai sukuria kodą, kuris nėra iš anksto sukompiliuotas.
„OpenCV“
Atsisiųskite leidimą iš „OpenCV“saugyklos, išpakuokite jį kur nors ir iš neišpakuoto aplanko:
mkdir build && cd buildcmake..
padaryti viską -j3
sudo make install
Atkreipkite dėmesį, kad mes naudojome parinktį -j3. Jei prieinate prie plokštės per ssh, gali pakakti, kad visos šerdys būtų visiškai įkrautos, kad nutrauktumėte ryšį. Tai nėra pageidautina. Apriboję siūlų naudojimą iki trijų, mes visada turėsime bent vieną laisvą siūlą, kad galėtume susidoroti su ssh jungtimis ir bendru sistemos tvarkymu.
Tai skirta „Dragonboard 820“ir „Inforce 6640“su APQ8096 lustu. „Dragonboard 410“norėsite turėti šiek tiek laisvos virtualios atminties arba apriboti kompiliavimo gijas iki vienos, nes joje yra mažiau fizinės RAM.
Taip pat atkreiptinas dėmesys, kad lusto aušinimas padės padidinti našumą, ribojant terminį droselį. Šilumos kriauklė daro triuką esant mažoms apkrovoms, tačiau norėsite tinkamo ventiliatoriaus kompiliavimui ir kitoms procesoriui imlioms apkrovoms.
Kodėl neįdiegus „OpenCV“naudojant apt arba pip? Kadangi ją surenkant tikslinėje mašinoje kompiliatorius mato visas turimas procesoriaus instrukcijas, pagerindamas vykdymo našumą.
SNPE - „Snapdragon ™“nervų apdorojimo variklis
Mes įdiegėme „Snappy“, kaip ir staliniame kompiuteryje, nors nebuvo įdiegta tikroji neuronų tinklo sistema (SNPE reikia tik „git“saugyklų, o ne tikrųjų dvejetainių failų).
Tačiau kadangi mums tereikia komandos „snpe-net-run“dvejetainių failų ir antraščių, yra tikimybė, kad veikia tik šie failai aplanke ir pridėjus šį aplanką prie PATH:
Neuroninis tinklas binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run
CPU bibliotekos
snpe/lib/aarch64-linux-gcc4.9/libSNPE.so
snpe/lib/aarch64-linux-gcc4.9/libsymphony-cpu.so
/usr/lib/aarch64-linux-gnu/libatomic.so.1
DSP bibliotekos
snpe/lib/dsp/libsnpe_dsp_skel.so
snpe/lib/aarch64-linux-gcc4.9/libsnpe_adsp.so
Rezultatų peržiūros priemonė
snpe/models/alexnet/scripts/show_alexnet_classifications.py
Paryškintas elementas, Kiti svarbūs paketai:
sudo apt-get install net-toolssudo apt-get install gedit
sudo apt įdiegti nodejs
sudo apt įdiegti openvpn
7 žingsnis: demonstravimas
Peržiūrėkite trumpą „Smart IoT Vision for Smart-City“veikimo demonstraciją !!
www.youtube.com/watch?v=qlk0APDGqcE&feature=youtu.be
8 žingsnis: ačiū
Dėkojame „Qualcomm“komandai ir „Embarcados“už konkurso sukūrimą ir palaikymą.
Nedvejodami susisiekite su mumis:
Nuorodos
„Dragonboard 410c“diegimo vadovas, skirtas „Linux“ir „Android“
github.com/96boards/documentation/wiki/Dr….
„DragonBoard 410c“https://github.com/96boards/documentation/wiki/Dr….
caffe.berkeleyvision.org/install_apt.htmlhttps://caffe.berkeleyvision.org/installation.html#… https://developer.qualcomm.com/docs/snpe/setup.ht…https://caffe.berkeleyvision.org/installation.html#… https://github.com/BVLC/caffe https://caffe.berkeleyvision.org/installation.html#… https://github.com/tensorflow/tensorflow http:/ /caffe.berkeleyvision.org/installation.html#… https://www.tensorflow.org/install/ https://caffe.berkeleyvision.org/installation.html#… https://caffe.berkeleyvision.org/
Rekomenduojamas:
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 žingsniai
„Vision 4all“- Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, „Dragonboard 410c E“„Android“programa: DESCRI Ç Ã OO intuito do projeto é dar autonomomia para deficientes visuais se locomoverem em ambientes patalpų como casas arba prekybos centrai ir oro uostai.A locomo ç ã o em ambientes j á mapeados pode ou n ã o s
Techninė ir programinė įranga „Hack Smart Devices“, „Tuya“ir „Broadlink“LED lemputė, „Sonoff“, „BSD33 Smart Plug“: 7 žingsniai
Aparatinė ir programinė įranga „Hack Smart Devices“, „Tuya“ir „Broadlink LEDbulb“, „Sonoff“, „BSD33 Smart Plug“: šioje instrukcijoje aš jums parodysiu, kaip aš pažadinau kelis išmaniuosius įrenginius su savo programine įranga, kad galėčiau juos valdyti naudodami MQTT per savo „Openhab“sąranką. naujus įrenginius, kai juos nulaužiau. Žinoma, yra ir kitų programine įranga pagrįstų metodų, skirtų pritaikytam f
„Raspberry PI Vision“procesorius („SpartaCam“): 8 žingsniai (su nuotraukomis)
„Raspberry PI Vision“procesorius („SpartaCam“): „Raspberry PI“regėjimo procesoriaus sistema, skirta jūsų PIRMAMS „Robotics Competition“robotams. Apie FIRST Iš Vikipedijos nemokamos enciklopedijos https://en.wikipedia.org/wiki/FIRST_Robotics_Compe
„Vision Fidget Spinner“patvarumas: 8 žingsniai (su nuotraukomis)
„Vision Fidget Spinner“atkaklumas: tai nerimastingas suktukas, kuriame naudojamas „Vision“pastovumo efektas, kuris yra optinė iliuzija, kai keli atskiri vaizdai susilieja į vieną žmogaus proto vaizdą. Tekstą ar grafiką galima pakeisti naudojant „Bluetooth Low Energy“nuorodą, naudojant a P
„Micro: bit MU Vision Sensor“pradedantiesiems - I2C ir formos kortelės atpažinimas: 8 žingsniai
„Micro: bit MU Vision Sensor“pradedantiesiems - „I2C“ir „Shape Card“atpažinimas: mano rankose yra „MU“regėjimo jutiklis, skirtas „Micro: bit“. Atrodo, kad tai puikus įrankis, leidžiantis man sukurti daugybę skirtingų vizija pagrįstų projektų. Deja, neatrodo, kad yra daug vadovų, ir nors dokumentai yra tikrai