Indholdsfortegnelse:
- Trin 1: Stor plan
- Trin 2: Indkøbsliste
- Trin 3: Konfigurer din Raspberry Pi
- Trin 4: Opsætning af OpenCV
- Trin 5: Opsætning af TensorFlow
- Trin 6: Bevægelsesregistrering ved hjælp af OpenCV
- Trin 7: Find objekter ved hjælp af TensorFlow
- Trin 8: Konfigurer en webserver på Raspberry Pi
- Trin 9: Mobilmeddelelser fra Raspberry Pi ved hjælp af IFTTT
- Trin 10: Tilføj en relæhue til Raspberry Pi og tilslut den til en magnetventil
- Trin 11: Tilslut en vandstandssensor
- Trin 12: Skriv kode for at binde det hele sammen
Video: Pool Pi Guy - AI -drevet alarmsystem og poolovervågning ved hjælp af Raspberry Pi: 12 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
At have en pool derhjemme er sjovt, men medfører et stort ansvar. Min største bekymring er at overvåge, om nogen er i nærheden af poolen uden opsyn (især yngre børn). Min største irritation er at sørge for, at poolvandsledningen aldrig går under pumpeindgangen, hvilket ville køre pumpen tør og ødelægge den, der koster $$$ i reparationer.
Jeg har for nylig fundet ud af, hvordan man bruger en Raspberry Pi med OpenCV og TensorFlow, sammen med en vandstandssensor og en magnetventil til at løse begge problemer - og have det sjovt med at gøre det!
Det viser sig også at være et godt alarmsystem - bevægelsesaktiveret, AI -kontrolleret, uendeligt tilpasselig.
Lad os dykke ned.
Trin 1: Stor plan
I denne instruktive vil vi vise, hvordan du:
- Opsæt en Raspberry Pi med OpenCV og TensorFlow
- Tilslut et webcam via et langt USB -kabel
- Skriv en OpenCV -algoritme til at registrere bevægelse
- Brug TensorFlow til genkendelse af objekter
- Opret en webserver på Raspberry Pi for at vise de interessante billeder
- Integrer med IFTTT for at udløse mobiladvarsler, hvis en person opdages
- Fastgør et relæ -HAT til Raspberry Pi og tilslut det til en magnetventil, der tilføjer vand til poolen
- Sæt en vandstandssensor på Raspberry Pi og interface med den ved hjælp af Pi's GPIO
- Skriv en kode for at lime det hele sammen
Trin 2: Indkøbsliste
Alle komponenter er let tilgængelige fra Amazon. Eksperimentér og udveksle komponenter - det er halvdelen af det sjove!
- Hindbær Pi
- Raspberry Pi strømforsyning (spar ikke her)
- Hukommelseskort (større er bedre)
- Etui (denne er stor nok til at huse både Pi og HAT)
- USB -webkamera (ethvert webkamera gør, men du vil have et, der får gode billeder og balancerer belysningen godt)
- USB forlængerkabel (om nødvendigt - mål afstanden mellem Pi og hvor du vil placere kameraet)
- Relæbræt HAT (denne har 3 relæer, og vi har kun brug for en, men du finder snart en brug til de andre!)
- Solenoid
- Magnetventil 1 og montering 2 (det afhænger virkelig af, hvad du passer magnetventilen til, men disse fungerede for mig)
- Magnetisk strømforsyning (enhver 24V AC ville gøre)
- Kabel (igen, næsten ethvert 2 -strenget kabel ville gøre - strømmen er minimal)
- Vandstandsafbryder (dette er bare et eksempel, tjek hvad der let kan tilsluttes din pool)
- Nogle Jumper -ledninger og Wire -stik
Trin 3: Konfigurer din Raspberry Pi
Raspberry Pi er en fantastisk lille computer. Det koster kun $ 35, kører konsekvent og har masser af kompatibel software og hardware. Det er ret let at konfigurere det:
- Formater dit SD -kort. Dette kræver særlig pleje - Raspberry Pi kan kun starte fra et FAT -formateret SD -kort. Følg disse instruktioner.
- Tilslut Raspberry Pi til et USB -tastatur og mus plus en HDMI -skærm, og følg instruktionerne i Raspberry Pi NOOBS -vejledningen. Sørg for at opsætte WiFi og aktivere SSH -adgang. Glem ikke at konfigurere en adgangskode til standard pi -kontoen.
- På dit hjemmenetværks opsætning en statisk IP til Raspberry Pi - det ville gøre det meget lettere at SSH til.
- Sørg for, at du har en ssh -klient installeret på din stationære/bærbare computer. Til en pc vil jeg anbefale Putty, som du kan installere herfra.
- Afbryd USB og HDMI fra Raspberry Pi, genstart det og ssh ind i det - hvis det hele fungerede, skulle du se sådan noget:
Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l
De programmer, der følger med Debian GNU/Linux -systemet, er gratis software; de nøjagtige distributionsbetingelser for hvert program er beskrevet i de enkelte filer i/usr/share/doc/*/copyright. Debian GNU/Linux leveres ABSOLUT INGEN GARANTI, i det omfang det er tilladt i henhold til gældende lov. Sidste login: Man. 13. maj 10:41:40 2019 fra 104.36.248.13 pi@raspberrypi: ~ $
Trin 4: Opsætning af OpenCV
OpenCV er en fantastisk samling af billedmanipulationsfunktioner til computersyn. Det giver os mulighed for at læse billeder fra webkameraet, manipulere dem med at finde bevægelsesområder, gemme dem og mere. Opsætning på Raspberry Pi er ikke svært, men kræver lidt omhu.
Start med at installere virtaulenvwrapper: vi vil bruge python til at udføre al vores programmering, og virtualenv ville hjælpe os med at holde afhængigheder adskilt for OpenCV og TensorFlow vs. Kolbe eller GPIO:
pi@raspberrypi: ~ $ sudo pip install virtualenvwrapper
Nu kan du udføre "mkvirtualenv" for at oprette et nyt miljø, "workon" til at arbejde med det og mere.
Så lad os skabe et miljø for vores billedmanipulation med python 3 som standardfortolker (det er 2019, der er ingen grund til at holde fast i den ældre python 2):
pi@raspberrypi: ~ $ mkvirtualenv cv -p python3
… (Cv) pi@raspberrypi: ~
Vi er nu klar til at installere OpenCV. Vi vil for det meste følge den fremragende vejledning i Lær OpenCV. Følg specifikt deres trin 1 og 2:
sudo apt -y updatesudo apt -y upgrade ## Installer afhængigheder sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm sudo apt-get -y install git gfortran sudo apt-get -y install libjpeg8-dev libjasper- dev libpng12-dev sudo apt-get -y install libtiff5-dev sudo apt-get -y install libtiff-dev sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev sudo apt-get- y installer libxine2-dev libv4l-dev cd/usr/include/linux sudo ln -s -f../libv4l1-videodev.h videodev.h sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0. 10-dev sudo apt-get -y install libgtk2.0-dev libtbb-dev qt5-default sudo apt-get -y install libatlas-base-dev sudo apt-get -y install libmp3lame-dev libtheora-dev sudo apt-get -y installer libvorbis-dev libxvidcore-dev libx264-dev sudo apt-get -y install libopencore-amrnb-dev libopencore-amrwb-dev sudo apt-get -y install libavresample-dev sudo apt-get -y install x264 v4l-utils sudo apt -get -y installer libprotobuf -dev protobuf-compiler sudo apt-get -y install libgoogle-glog-dev libgflags-dev sudo apt-get -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen sudo apt-get install libqtgui4 sudo apt-get install libqt4- prøve
Nu kan vi bare installere OpenCV med pythonbindinger inde i cv virtualenv (du er stadig i det, ikke?) Ved hjælp af
pip installer opencv-contrib-python
Og det er det! Vi har OpenCV installeret på vores Raspberry Pi, klar til at tage billeder og videoer, manipulere dem og være seje.
Kontroller det ved at åbne en python -tolk og importere opencv, og kontroller, at der ikke er fejl:
(cv) pi@raspberrypi: ~ $ python
Python 3.5.3 (standard, 27. september 2018, 17:25:39) [GCC 6.3.0 20170516] på linux Skriv "hjælp", "copyright", "credits" eller "licens" for flere oplysninger. >>> import cv2 >>>
Trin 5: Opsætning af TensorFlow
TensorFlow er en machine learning / AI -ramme, der er udviklet og vedligeholdt af Google. Det har omfattende understøttelse af deep-learning-modeller til en række forskellige opgaver, herunder objektdetektering i billeder, og er nu ret enkel at installere på Raspberry Pi. Ydeevnen på dens lette modeller på den lille Pi er omkring 1 billede i sekundet, hvilket er helt tilstrækkeligt til en applikation som vores.
Vi vil dybest set følge den fremragende vejledning af Edje Electronics, med ændringer muliggjort af nyere TensorFlow -distributioner:
pi@raspberrypi: ~ $ workon cv
(cv) pi@raspberrypi: ~ $ pip install tensorflow (cv) pi@raspberrypi: ~ $ sudo apt-get install libxml2-dev libxslt-dev (cv) pi@raspberrypi: ~ $ pip install pude lxml jupyter matplotlib cython (cv) pi@raspberrypi: ~ $ sudo apt-get install python-tk
Nu skal vi kompilere Googles protobuf. Følg bare instruktionerne i trin 4 i den samme fremragende vejledning
Endelig klon og konfigurer TensorFlows modeldefinitioner - følg trin 5 i Edje Electronics tutorial
Følg også gerne deres eksempel i trin 6, det er en god introduktion til objektdetektering på Raspberry Pi.
Trin 6: Bevægelsesregistrering ved hjælp af OpenCV
Lad os starte med at teste, at OpenCV kan grænseflade med vores webcam: ssh i Raspberry Pi, gå til cv virtualenv (workon cv), åbne en python -tolk (skriv bare python), og indtast følgende python -kommandoer:
import cv2
cap = cv2. VideoCapture (0) cap.set (cv2. CAP_PROP_FRAME_WIDTH, 1920) cap.set (cv2. CAP_PROP_FRAME_HEIGHT, 1080) ret, frame = cap.read () print ('Read frame size: {} x {}'.format (frame.shape [1], frame.shape [0])
Med et held vil du se, at OpenCV var i stand til at læse en HD -ramme fra kameraet.
Du kan bruge cv2.imwrite (sti, ramme) til at skrive denne ramme til disk og sftp den tilbage for at se et egentligt udseende.
Strategien til at registrere bevægelse er ret ligetil:
- Arbejd med rammer med lavere opløsning - det er ikke nødvendigt at betjene fuld HD her
- Slør desuden billederne for at sikre så lidt støj som muligt.
- Hold et løbende gennemsnit af de sidste N -rammer. For denne applikation, hvor billedhastigheden er omkring 1 FPS (bare fordi TensorFlow tager noget tid pr. Ramme), fandt jeg ud af, at N = 60 giver gode resultater. Og da en omhyggelig implementering ikke kræver mere CPU med flere billeder, der er ok (det kræver mere hukommelse - men det er ubetydeligt, når vi arbejder med billedrammer med lavere opløsning)
- Træk det aktuelle billede fra det løbende gennemsnit (bare vær forsigtig med at skrive - du skal tillade positive og negative værdier [-255.. 255], så rammen skal konverteres til int)
- Du kan udføre subtraktionen på en gråtonekonvertering af rammen (og gennemsnittet) eller gøre det separat for hver af RGB-kanalerne og derefter kombinere resultaterne (hvilket er den strategi, jeg valgte, hvilket gør den følsom over for farveændringer)
- Brug en tærskel på deltaet og fjern støj ved erosion og udvidelse
- Kig endelig efter konturer af områder med et delta - disse områder er, hvor bevægelse er sket, og det aktuelle billede er forskelligt fra gennemsnittet af tidligere billeder. Vi kan yderligere finde afgrænsningskasser til disse konturer, hvis det er nødvendigt.
Jeg har indkapslet koden til at gøre dette i DeltaFinder python -klassen, som du kan finde i min github her
Trin 7: Find objekter ved hjælp af TensorFlow
Hvis du har fulgt TensorFlow -installationsproceduren, har du allerede testet, at du har TensorFlow installeret og fungerer.
Med det formål at opdage mennesker i en generel udendørs scene fungerer modeller, der er trænet på COCO -datasættet ganske godt - hvilket er præcis den model, vi har downloadet i slutningen af TensorFlow -installationen. Vi skal bare bruge det til slutning!
Igen har jeg indkapslet modelindlæsning og slutning i TFClassify python -klassen for at gøre tingene lettere, som du kan finde her.
Trin 8: Konfigurer en webserver på Raspberry Pi
Den nemmeste måde at få adgang til objektdetekteringsresultaterne er en webbrowser, så lad os oprette en webserver på Raspberry Pi. Vi kan derefter konfigurere det til at vise billeder fra et givet bibliotek.
Der er flere muligheder for en webserverramme. Jeg valgte Flask. Det er ekstremt konfigurerbart og let at udvide med Python. Da den "skala", vi har brug for, er triviel, var det mere end nok.
Jeg foreslår at installere det i en ny virtualenv, så:
pi@raspberrypi: ~ $ mkvirtualenv webserv
(webserv) pi@raspberrypi: ~ $ pip install Flask
Bemærk, at det med en normal netværksopsætning kun kan nås, når din browser er på det samme trådløse LAN som din Raspberry Pi. Du kan oprette en portmapping / NAT -konfiguration på din internetrouter for at tillade ekstern adgang - men jeg anbefaler imod det. Koden, jeg skrev, forsøger ikke at give den sikkerhed, du har brug for, når du tillader generel internetadgang til din Raspberry Pi.
Test din installation ved at følge Flask hurtigstartguide
Trin 9: Mobilmeddelelser fra Raspberry Pi ved hjælp af IFTTT
Jeg vil virkelig gerne have mobilbeskeder, når der sker begivenheder. I dette tilfælde, når en person opdages, og når vandstanden går lavt. Den enkleste måde jeg fandt at gøre det på, uden at skulle skrive en brugerdefineret mobilapp, bruger IFTTT. IFTTT står for "If This Then That" og gør det muligt for mange typer begivenheder at udløse mange typer handlinger. I vores tilfælde er vi interesseret i IFTTT Maker Webhook -udløseren. Dette giver os mulighed for at udløse en IFTTT -handling ved at sende en HTTP POST -anmodning til IFTTT -serveren med en særlig nøgle tildelt vores konto sammen med data, der angiver, hvad der skete. Den handling, vi foretager, kan være lige så simpel som at oprette en meddelelse på vores mobile enhed ved hjælp af IFTTT -mobilappen eller noget mere komplekst end det.
Sådan gør du det:
- Opret en IFTTT -konto på ifttt.com
- Mens du er logget ind, skal du gå til siden Webhook serviceindstillinger og indtaste webadressen i din browser (noget som https://maker.ifttt.com/use/. Denne webside viser dig din nøgle og den webadresse, der skal bruges til at udløse handlinger.
-
Opret en IFTTT -applet, der genererer en mobilmeddelelse, når Webhook udløses med detaljerne om begivenheden:
- Klik på "Mine appletter" og derefter på "Ny applet".
- Klik på "+dette", og vælg "webhooks". Klik på "Modtag en webanmodning" for at gå til detaljerne
- Giv dit arrangement et navn, f.eks. "PoolEvent" og klik på "Opret trigger"
- Klik på "+det", og vælg "underretninger". Vælg derefter "Send en rig anmeldelse fra IFTTT -appen"
- For "titel" vælg noget som "PoolPi"
- For "besked" skriv "Pool Pi opdaget:" og klik på "tilføj ingrediens".. "Værdi1".
- Gå tilbage til den URL, du kopierede i trin 2. Den viser URL'en, der skal bruges til at påberåbe din nyoprettede applet. Kopiér denne webadresse og erstat pladsholderen {event} med hændelsesnavnet (f.eks. PoolEvent)
- Download, installer og log ind på IFTTT -appen til din mobilenhed
- Kør dette python -script på din Raspberry Pi for at se, at det fungerer (bemærk, at det kan tage et par sekunder eller minutter at udløse på din mobilenhed):
importanmodninger
requests.post ('https://maker.ifttt.com/trigger/PoolEvent/with/key/', json = {"value1": "Hej notifikationer"})
Trin 10: Tilføj en relæhue til Raspberry Pi og tilslut den til en magnetventil
Inden du fortsætter med dette trin SLUKKE din Raspberry Pi: ssh til den, og skriv "sudo shutdown now", og afbryd derefter strømmen
Vores mål er at tænde og slukke for strømforsyningen til en magnetventil - en ventil, der kan åbne eller lukke vandforsyningen baseret på 24V vekselstrøm, den får fra en strømforsyning. Relæer er de elektriske komponenter, der kan åbne eller lukke et kredsløb baseret på et digitalt signal, som vores Raspberry Pi kan levere. Hvad vi gør her er at tilslutte et relæ til disse digitale signalstifter på Raspberry Pi, og få det til at lukke kredsløbet mellem 24V vekselstrømforsyningen og magnetventilen.
Stifterne på Raspberry Pi, der kan fungere som digital input eller output, kaldes GPIO - General Purpose Input/Output, og de er rækken med 40 ben på siden af Pi. Med Pi slukket, og indsæt relæet HAT godt i den. HAT jeg valgte har 3 relæer i den, og vi vil kun bruge en af dem. Forestil dig alt hvad du kan gøre med de to andre:)
Tænd nu Raspberry Pi igen. Den røde "power" LED på relæet HAT skulle tænde, hvilket indikerer, at den får strøm fra Pi gennem GPIO. Lad os teste, at vi kan kontrollere det: ssh ind i Pi igen, indtast python og skriv:
import gpiozero
dev = gpiozero. DigitalOutputDevice (26, initial_value = True) dev.off ()
Du skal høre et hørbart "klik", der angiver, at relæet er aktiveret, og se en LED tændt, der viser, at det første relæ er i den tilsluttede position. Du kan nu skrive
dev.on ()
Hvilket ville dreje relæet til "off" position (ulige, jeg ved …) og afslutte () fra python.
Brug nu jumperkabler og det længere kabel til at forbinde relæet mellem 24V strømforsyningen og magnetventilen. Se diagrammet. Tilslut endelig magnetventilen til en vandhane ved hjælp af adapterne og gør dig klar til at teste det hele ved at gentage kommandoerne ovenfor - de skal tænde og slukke for vandet.
Sæt en slange på magnetventilen og læg den anden ende dybt i poolen. Du har nu et computerstyret pool-top-off-system, og det er på tide at tilslutte en sensor for at fortælle den, hvornår den skal køre.
Trin 11: Tilslut en vandstandssensor
En vandstandssensor er simpelthen en flyder, der forbinder et elektrisk kredsløb, når flyderen er nede, og bryder den, når den flyder op. Hvis du sætter det i poolen i den rigtige højde, vil flyderen være oppe, når vandstanden er tilstrækkelig, men falde ned, når der ikke er nok vand.
For at Raspberry Pi kender status for vandstandssensoren, har vi brug for Pi til at registrere et åbent eller lukket kredsløb. Det er heldigvis meget enkelt: De samme GPIO -stik, som vi bruger som digital udgang til at styre relæerne, kan fungere som indgange (deraf I i GPIO). Specifikt, hvis vi forbinder en ledning af sensoren til +3.3V på GPIO-stikket og den anden sensortråd til en pin, som vi konfigurerer som pull-down-indgang (hvilket betyder, at den normalt vil være på GND-spændingsniveau), måles denne pin en digital "høj" eller "tændt" spænding, når vandstandssensoren lukker kredsløbet - når vandstanden er lav. Jeg brugte GPIO pin 16 som input, som jeg markerede på billedet ovenfor.
Python -koden til at konfigurere stiften som input og teste dens aktuelle tilstand er:
import gpiozero
level_input = gpiozero. Button (16) water_low = level_input.is_pressed
En potentiel udfordring er, at når sensoren bare ændrer tilstand, vil den svinge hurtigt mellem til- og frakoblingstilstande. Løsningen på det er kendt som "debouncing" og leder efter en konsekvent tilstandsændring, før der tages handling. GPIOZERO -biblioteket har kode til at gøre det, men af en eller anden grund fungerede koden ikke godt for mig. Jeg skrev en simpel sløjfe for at udløse IFTTT -advarsler, når der registreres en konsekvent tilstandsændring, som du kan finde i mit lager her.
Trin 12: Skriv kode for at binde det hele sammen
Det er det. Vores opsætning er fuldført. Du kan skrive din egen kode for at binde tingene sammen til et komplet system eller bruge den kode, jeg angiver. For at gøre det skal du bare oprette mappestrukturen og klone lageret sådan:
mkdir poolpi
cd poolpi git -klon
Rediger derefter filerne med navnet ifttt_url.txt i mapperne motion_alert og water_level for at få URL'en til din egen IFTTT -webkrog med din hemmelige nøgle. Du kan bruge to forskellige webkroge til forskellige handlinger.
Endelig ønsker vi, at denne kode kører automatisk. Den nemmeste måde at opnå det på er gennem Linux crontab -tjenesten. Vi kan tilføje nogle crontab -linjer til to hovedopgaver:
- Kør vores tre programmer: objektdetektoren, vandstandssensoren og webserveren ved hver genstart
- Opryd outputmappen, slet gamle billeder og gamle videofiler (jeg valgte at slette filer ældre end 1 dag og billeder ældre end 7 dage - eksperimentér gerne)
For at gøre den type crontab -e, som åbner din nano -teksteditor. Tilføj følgende linjer til bunden af filen:
0 1 * * * find/home/pi/poolpi/output -type f -navn " *.avi" -mtime +1 -delete
0 2 * * * find/home/pi/poolpi/output -type f -navn " *.jpg" -mtime +7 -delete @reboot python3 /home/pi/poolpi/motion_alert/webserv/webserv.py @reboot python3 /home/pi/poolpi/motion_alert/motion_obj_alert.py @reboot python3 /home/pi/poolpi/water_level/test_water_level.py
Endelig genstart din Raspberry Pi. Den er nu klar til at holde din pool fuld og sikker.
Glem ikke med opsætningen, koden, og glem ikke at markere mit github -lager og kommentere det instruerbare, hvis du finder det nyttigt. Jeg leder altid efter at lære mere.
Glad for at lave!
Runner Up i IoT Challenge
Anbefalede:
Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer: 9 trin (med billeder)
Arduino trådløst alarmsystem ved hjælp af eksisterende sensorer: Dette projekt kan bygges på cirka en halv time til en pris på omkring $ 20,00, hvis du har eksisterende 433Mhz eller 315Mhz trådløse alarmsensorer. Det kan også være et komplet nyt projekt med trådløse alarmsensorer, såsom infrarøde bevægelsesdetektorer og siv
Sådan laver du en drone ved hjælp af Arduino UNO - Lav en quadcopter ved hjælp af mikrokontroller: 8 trin (med billeder)
Sådan laver du en drone ved hjælp af Arduino UNO | Lav en Quadcopter ved hjælp af mikrokontroller: Introduktion Besøg min Youtube -kanal En Drone er en meget dyr gadget (produkt) at købe. I dette indlæg vil jeg diskutere, hvordan jeg gør det billigt ?? Og hvordan kan du lave din egen sådan til en billig pris … Nå i Indien alle materialer (motorer, ESC'er
RF 433MHZ radiostyring ved hjælp af HT12D HT12E - Lav en RF -fjernbetjening ved hjælp af HT12E & HT12D med 433mhz: 5 trin
RF 433MHZ radiostyring ved hjælp af HT12D HT12E | Oprettelse af en RF -fjernbetjening ved hjælp af HT12E & HT12D med 433mhz: I denne instruktør vil jeg vise dig, hvordan du laver en RADIO -fjernbetjening ved hjælp af 433mhz sendermodtagermodul med HT12E -kode & HT12D -dekoder IC.I denne instruktive kan du sende og modtage data ved hjælp af meget meget billige KOMPONENTER SOM: HT
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter - Rc Helikopter - Rc -fly ved hjælp af Arduino: 5 trin (med billeder)
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter | Rc Helikopter | Rc -fly ved hjælp af Arduino: At betjene en Rc -bil | Quadcopter | Drone | RC -fly | RC -båd, vi har altid brug for en modtager og sender, antag at vi til RC QUADCOPTER har brug for en 6 -kanals sender og modtager, og den type TX og RX er for dyr, så vi laver en på vores
Et lille alarmsystem ved hjælp af et super lille Arduino -kompatibelt bord !: 10 trin
Et lille alarmsystem ved hjælp af et Super Tiny Arduino -kompatibelt bord !: Hej, i dag skal vi lave et lille fedt projekt. Vi skal bygge en lille alarmanordning, der måler afstanden mellem sig selv og et objekt foran den. Og når objektet bevæger sig forbi en bestemt afstand, giver enheden dig besked med en