Cuprins:
- Pasul 1: Diagrama blocului de sistem
- Pasul 2: Componente pentru acest proiect
- Pasul 3: Pasul 2: Diagrama circuitului și conexiunile
- Pasul 4: Instalați Os pe DragonBoards
- Pasul 5: Interfețe de conectivitate
- Pasul 6: Instalarea modulelor software esențiale
- Pasul 7: demonstrație
- Pasul 8: Mulțumesc
Video: Smart IoT Vision: 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Acesta este un proiect axat pe contextul orașului inteligent. În această chestiune, există trei probleme majore pe care le rezolvăm:
1 - economisirea energiei în iluminatul public; 2 - îmbunătățirea securității orașului; 3 - îmbunătăți fluxul de trafic.
1 - Prin utilizarea luminilor cu LED-uri pe străzi, economiile sunt deja de până la 50% și, prin adăugarea Telemanagementului, putem avea cu 30% mai multe economii.
2 - Cu ajutorul camerelor inteligente, putem controla luminile pentru a se estompa acolo unde oamenii circulă este absentă și pentru a face secțiunea străzii mai strălucitoare pe unde merg oamenii. Nu numai că va economisi energie, ci va crește sentimentul de a fi urmărit, astfel, intimidând oamenii cu intenții rele. În plus, alarmele vizuale (de exemplu, clipirea lămpilor) ar putea fi utilizate în caz de comportament suspect.
3 - Camera inteligentă va urmări traficul, va procesa local condițiile sale și va controla semnalele luminoase pentru a gestiona cel mai bine traficul. În acest fel, blocajele de trafic ar putea fi evitate, mașinile nu ar trebui să aștepte mult timp semnale roșii atunci când nu există flux în trecere și așa mai departe. În ceea ce privește problemele tehnologice, rezolvăm și problemele obișnuite în IoT, cum ar fi conectivitatea robustă la scară de oraș și integrarea camerei pentru rețeaua IoT, utilizând procesarea de margine pentru a transmite numai informații relevante.
Consultați publicația noastră pe Embarcados și GitHub
Tot pe YouTube
Echipa noastră:
Milton Felipe Souza Santos
Gustavo Retuci Pinheiro
Eduardo Caldas Cardoso
Jonathas Baker
(Informații de contact în partea de jos)
Pasul 1: Diagrama blocului de sistem
Aceasta este o prezentare generală a arhitecturii soluției.
Sistemul este compus dintr-o cameră-gateway care utilizează RFmesh pe interfața FAN, WiFi pe LAN și, de asemenea, CAT-M pentru conectivitate WAN. De asemenea, conține fotocelule inteligente, camere inteligente și semnale luminoase.
Toate dispozitivele din rețele, în principal camera inteligentă, trimit date prin 6lowpan către gateway-ul inteligent, astfel încât să poată lua deciziile privind iluminatul public și controlul semnalelor luminoase.
Gateway-ul este, de asemenea, conectat la serverul nostru prin VPN. În acest mod, avem acces la FAN și LAN, bot pentru verificarea stării sau controlul dispozitivelor.
Pasul 2: Componente pentru acest proiect
Cam inteligent
- DragonBoard410C / DragonBoard820C
- Cameră USB
- NIC OneRF
Camera Gateway
- DragonBoard410C / DragonBoard820C
- Cameră USB
- OneRF NIC
- Modem Cat-M / 3G
Semnal luminos inteligent
Pasul 3: Pasul 2: Diagrama circuitului și conexiunile
Cam inteligent
- Camera pe portul USB
- OneRF NIC la portul UART
Camera Gateway
- Camera pe portul USB
- OneRF NIC la portul UART
- Modem 3G / Cat-M la port USB
(Toate conectate prin mezaninul IoT)
Smart Stree Light
- Iluminat stradal convențional
- Placă de releu (3 canale)
- NIC OneRF
Fotocelulă inteligentă
- NIC OneRF
- Masurator de putere
Pasul 4: Instalați Os pe DragonBoards
Instalarea Debian pe Dragonboard820C (Metoda Fastboot)
Folosind un sistem de operare Linux, instalați pachetele listate în:
Pe dragonboard:
face s4 OFF, OFF, OFF, OFF
Porniți apăsând vol (-)
Dacă utilizați un monitor serial (foarte recomandat), veți primi mesajul „fastboot: processing controls” (monitor serial la 115200) Conectați micro-usb-ul (J4) pe PC
Pe computerul gazdă: Descărcați (și dezarhivați) de pe
Dispozitive $ sudo fastboot
452bb893 fastboot (exemplu)
$ sudo fastboot flash boot boot-linaro-buster-dragonboard-820c-BUILD.img
$ sudo fastboot flash rootfs linaro-buster-alip-dragonboard-820c-BUILD.img
Instalarea Debian pe Dragonboard410C
Pași pe computer (Linux)
1 - Descărcați imaginea
$ cd ~
$ mkdir Debian_SD_Card_Install_image
$ cd Debian_SD_Card_Install_image
$ wget
2 - Dezarhivați fișierele
$ cd ~ / Debian_SD_Card_Install_image
$ dezarhivați dragonboard410c_sdcard_install_debian-233.zip
3 - Introduceți microSD-ul pe computer și verificați dacă este montat
$ df -h
/ dev / sdb1 7.4G 32K 7.4G 1% / media / 3533-3737
4 - Demontați microSD-ul și ardeți imaginea
$ umount / dev / sdb1
$ sudo dd if = db410c_sd_install_debian.img of = / dev / sdb bs = 4M oflag = status sincronizare = noxfer
5 - Scoateți microSD-ul de pe computer
Pași pe computer (Windows) Descărcare - Imagine card SD - (Opțiunea 1) Imagine card SD - Instalare și pornire de pe eMMC
www.96boards.org/documentation/consumer/dr…
Dezarhivați imaginea de instalare a cardului SD
Descărcați și instalați instrumentul Win32DiskImager
sourceforge.net/projects/win32diskimager/f…
Deschideți instrumentul Win32DiskImager
Introduceți cardul SD în computer
Găsiți fișierul.img extras
Faceți clic pe Scrieți
Pași pe Dragonboard Asigurați-vă că DragonBoard ™ 410c este deconectat de la alimentare
Setați comutatorul S6 pe DragonBoard ™ 410c la 0-1-0-0, „SD Boot switch” trebuie setat la „ON”.
Conectați un HDMI
Conectați o tastatură USB
Introduceți microSD-ul
Conectați adaptorul de alimentare
Selectați imaginea de instalat și faceți clic pe „Instalați”
așteptați terminarea instalării
Scoateți adaptorul de alimentare
Scoateți microSD-ul
Setați comutatorul S6 la 0-0-0-0
TERMINAT
Pasul 5: Interfețe de conectivitate
Instalarea Cat-m și 3G
Aplicați următoarele comenzi AT utilizând o mașină gazdă:
LA # SIMDET? // verificați prezența SIM # SIMDET: 2, 0 // sim nu este inserat
#SIMDET: 2, 1 // sim inserat
AT + CREG? // verifică dacă este înregistrat
+ CREG: 0, 1 // (dezactivează înregistrarea rețelei cod rezultat nesolicitat (implicit din fabrică), rețea de domiciliu înregistrată)
AT + COPS?
+ COPS: 0, 0, „VIVO”, 2 // (mod = alegere automată, format = alfanumeric, oper,?)
AT + CPAS // Starea activității telefonului
+ CPAS: 0 // gata
AT + CSQ // verifică calitatea serviciului
+ CSQ: 16, 3 // (rssi, rata de eroare pe biți)
AT + CGATT? // starea atașamentului GPRS
+ CGATT: 1 // atașat
AT + CGDCONT = 1, „IP”, „zap.vivo.com.br”,, 0, 0 // configurați contextul
Bine
AT + CGDCONT? // verifică contextul
+ CGDCONT: 1, „IP”, „zap.vivo.com.br”,””, 0, 0
AT # SGACT = 1, 1 // Activarea contextului
#SGACT: 100.108.48.30
Bine
Configurați interfața
Utilizarea mediului grafic
Conectați modemul (oneRF_Modem_v04 - HE910)
Deschideți Conexiuni de rețea
Faceți clic pe + pentru a adăuga o conexiune nouă
Selectați Mobile Broadband
Selectați dispozitivul corect
Selectați țara
Selectați furnizorul
Selectați planul și Salvați
Scoateți modemul
Reconectați modemul
Folosind terminalapt-get install pppconfig
pppconfig
furnizor = vivo
dinamico
CHAP
vivo
vivo
115200
Ton
*99#
nu (manual)
/ dev / ttyUSB0
Salvați
cat / etc / ppp / peers / vivo
cat / etc / chatscripts / vivo
pon vivo
Dacă utilizați modulul Cat-M, utilizați următoarele comenzi înainte:
echo 1bc7 1101> / sys / bus / usb-serial / drivers / option1 / new_id
apt-get install comgt
comgt -d / dev / ttyUSB0 comgt info -d / dev / ttyUSB0
Pasul 6: Instalarea modulelor software esențiale
Pe computerul de dezvoltare
Rețineți că unii pași sunt dependenți de hardware și ar trebui să fie reglați pentru a corespunde specificațiilor dvs. reale ale computerului. Bibliotecile pot fi instalate cu o singură comandă.
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-typing python-hypotesis python-yaml
OpenCV
Acest cadru este utilizat pentru a dezvolta algoritmi statistici pe bază de imagini pe mașina de dezvoltare. Deoarece majoritatea codului nostru este scris în Python, cea mai ușoară metodă de instalare este simpla
pip instalează opencv-python
Rețineți, totuși, că aceste roți nu vor folosi nimic în afară de CPU și nici măcar nu vor folosi toate nucleele sale, deci poate doriți să compilați de la sursă pentru a obține performanțe maxime. Pentru a construi pachetul în Linux, de exemplu, nu descărcați fișierul zip din pagina OpenCV Releases și dezarhivați-l. Din folderul dezarhivat:
mkdir build && cd buildcmake.. make all -j4
sudo make install
Comanda -j4 instruiește make pentru a utiliza patru fire. Folosiți cât de multe CPU are!
Caffe
Pentru a configura cadrul Caffe din surse:
git clone https://github.com/BVLC/caffe.git && cd caffemkdir build
cmake..
face totul
face test face runtest
Dacă toate testele rulează cu succes, atunci sunteți gata.
TensorFlow
Google nu vă permite să compilați TensorFlow cu instrumente obișnuite. Este nevoie de Bazel pentru aceasta și este posibil să nu funcționeze, așa că evitați să îl compilați și să luați modulul precompilat cu:
pip instala tensorflow
Dacă computerul dvs. este puțin vechi și nu are instrucțiuni AVX, obțineți ultimul flux tensor non-AVX cu
pip instala tensorflow == 1.5
Și ai terminat.
SNPE - Motor de procesare neuronală Snapdragon ™
Configurarea Snappy, așa cum apelează prietenii noștri Qualcomm la SNPE, nu este dificilă, dar pașii ar trebui urmați îndeaproape. Schema de instalare este:
clonați depozitele git ale cadrelor de rețea neuronală
CaffeCaffe2
TensorFlow
ONNX
rulați scripturile pentru a verifica dependenciessnpe / bin / dependencies.sh
snpe / bin / check_python_depends.sh
pentru fiecare cadru instalat rulați snpe / bin / envsetup.sh
sursa $ SNPE / bin / envsetup.sh -c $ CAFFE_GIT
sursa $ SNPE / bin / envsetup.sh -f $ CAFFE2_GIT
sursa $ SNPE / bin / envsetup.sh -t $ TENSORFLOW_GIT
sursa $ SNPE / bin / envsetup.sh -o $ ONNX_GIT
Pentru a sursa SNPE în fiecare instanță de terminal pe care o deschideți, adăugați cele patru linii ale pasului trei la sfârșitul fișierului dvs. ~ /.bashrc.
Pe tabloul țintă
Trecerea la arm64 de la amd64 nu este o sarcină fără efort, deoarece multe biblioteci vor profita de instrucțiunile x86 pentru a-și spori performanța. Din fericire, este posibil să se compileze majoritatea resurselor necesare pe tabloul însuși. Bibliotecile necesare pot fi instalate cu o singură comandă.
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-typing python-hypotesis python-yaml
Instalați-le cu apt și continuați. Rețineți că acest pas poate dura ceva timp, deoarece apelurile apt fac pentru a construi codul care nu este precompilat.
OpenCV
Descărcați versiunea din depozitul OpenCV, dezarhivați-o undeva și din folderul dezarhivat:
mkdir build && cd buildcmake..
face tot -j3
sudo make install
Rețineți că am folosit opțiunea -j3. Dacă accesați placa prin ssh, să aveți toate nucleele încărcate complet poate fi suficient pentru a renunța la conexiune. Nu este de dorit. Limitând utilizarea firului la trei, vom avea întotdeauna cel puțin un fir gratuit pentru a face față conexiunilor ssh și menajului general al sistemului.
Aceasta este pentru Dragonboard 820 și Inforce 6640 cu cipul APQ8096. Pe Dragonboard 410 veți dori să aveți memorie virtuală gratuită sau să limitați firele de compilare la unul, deoarece are mai puțină memorie RAM fizică disponibilă.
De asemenea, este de remarcat faptul că răcirea cipului va contribui la creșterea performanței prin limitarea limitării termice. Un radiator face trucul la sarcini mici, dar veți dori un ventilator adecvat pentru a compila și alte sarcini care necesită CPU.
De ce nu instalați OpenCV cu apt sau pip? Deoarece compilarea acestuia în mașina țintă face ca toate instrucțiunile de procesor disponibile să fie vizibile pentru compilator, îmbunătățind performanța de execuție.
SNPE - Motor de procesare neuronală Snapdragon ™
Am instalat Snappy exact așa cum a fost pe un computer desktop, chiar dacă nu a fost instalat un cadru de rețea neuronală real (SNPE are nevoie doar de git repos, nu de binare reale).
Cu toate acestea, întrucât tot ce avem nevoie sunt binare și anteturi pentru comanda snpe-net-run, există posibilitatea ca doar să aveți următoarele fișiere într-un folder și să adăugați acest folder în PATH:
Rețea neuronală binarysnpe / bin / aarch64-linux-gcc4.9 / snpe-net-run
Biblioteci CPU
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
Biblioteci DSP
snpe / lib / dsp / libsnpe_dsp_skel.so
snpe / lib / aarch64-linux-gcc4.9 / libsnpe_adsp.so
Vizualizator de rezultate
snpe / models / alexnet / scripts / show_alexnet_classifications.py
Elementul aldin, /usr/lib/aarch64-linux-gnu/libatomic.so.1, este furnizat cu Linaro pe această cale și trebuie copiat în acest ipotetic folder minim.
Alte pachete importante:
sudo apt-get install net-toolssudo apt-get install gedit
sudo apt install nodejs
sudo apt instalează openvpn
Pasul 7: demonstrație
Vedeți o scurtă demonstrație a Smart IoT Vision pentru Smart-City care funcționează !!
www.youtube.com/watch?v=qlk0APDGqcE&feature=youtu.be
Pasul 8: Mulțumesc
Mulțumim echipei Qualcomm și Embarcados pentru crearea și susținerea concursului.
Nu ezitați să ne contactați pe:
Referințe
Ghid de instalare Dragonboard 410c pentru Linux și Android
github.com/96boards/documentation/wiki/Dr….
DragonBoard 410c
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/
Recomandat:
Procesor Raspberry PI Vision (SpartaCam): 8 pași (cu imagini)
Procesor de vizualizare Raspberry PI (SpartaCam): Un sistem de procesor de vizualizare Raspberry PI pentru robotul dvs. FIRST Robotics Competition. Despre FIRST De la Wikipedia, enciclopedia gratuită https://en.wikipedia.org/wiki/FIRST_Robotics_Compe..Prima competiție de robotică (FRC) este o schemă internațională
Sipeed MaiX Bit OpenMV Demos - Computer Vision: 3 pași
Sipeed MaiX Bit OpenMV Demos - Computer Vision: Acesta este al doilea articol din serie despre Sipeed AI pe platforma de microcontroler Edge. De data aceasta voi scrie despre MaiX Bit (link către Seeed Studio Shop), o placă de dezvoltare mai mică, pregătită pentru panou. Specificațiile sale sunt foarte asemănătoare cu
KIT AIY VISION (Raspberry Pi): 3 pași
KIT AIY VISION (Raspberry Pi): o privire cuprinzătoare asupra kitului AIY Vision Google
API Google Vision folosind Raspberry Pi și Node: 11 pași
Google Vision API folosind Raspberry Pi și Node: Acesta este un ghid de pornire pentru utilizarea API-ului Google Vision. Folosește următoarea conexiune la internet Raspberry Pi Zero W Arch Linux NodeJS Nu știți Arch Linux? Sau cum să configurați un Raspberry Pi? Nu vă faceți griji, am scris o serie de articole care
Arduino Computer Vision Robot Arm: 4 pași (cu imagini)
Arduino Computer Vision Robot Arm: Ideea principală cu acest instructable a fost de a crea un simplu braț robot 3DOF care să colecteze obiecte și să le plaseze în locul potrivit. Materiale: 4 servo SG90MDF 4mm Arduino NanoJumpersLaptopGlueNylon