Det bliver lidt varmt, sommer og alt det der. Jeg har en kinesisk fan på mit skrivebord, men jeg arbejder i forskellige ender af mit nye store skrivebord, og blæseren blæser næsten altid forbi, og det er på en eller anden måde trist at vende det rundt hver gang. Så i dag vil vi gøre en fan med automatisk at sigte mod målet.
Så vi er nødt til at spore målets placering under hensyntagen til situationen på bordet, så ventilatoren ikke sigter mod andre objekter. Ideelt set kan du naturligvis tage en hindbærpic minicomputer med et kamera og bruge et maskinvisionsbibliotek til at genkende bevægelser eller en lys T-shirt.
Men dette er en temmelig vanskelig opgave, og bestyrelsen selv koster mere end 10 gange dyrere end platformen Arduino, som ikke kan klare kameraet. Men udover kameraet er der andre måder at bestemme målet, f.eks. En øre-ultralydsafstandsføler.
En gang stødte jeg på Internettet et interessant projekt "radar" baseret på arduino og denne sensor. Selve projektet er temmelig nytteløst, men selve ideen er vidunderlig - at rotere afstandssensoren og scanne rummet, bundet til rotationsvinklen.
Lad os gentage dette projekt for sjov, og så går vi videre.
Dette betyder, at sensoren skal drejes, for dette bruges den sædvanlige model servo (hvem ved ikke, servoen er en motor med en gearkasse og feedback til vinklen, det vil sige, vi kan indstille den til rotationsvinklen, og den tænder den).
Lad os ikke være smarte, og fikser bare sensoren ved hjælp af ringen fra cykelkammeret.
Vi samler kredsløbet på en brødbræt.
Det er alt, det gjenstår at downloade firmwaren i arduino. Denne version bruger et hurtigere bibliotek.
Du kan downloade kilderne på projektsiden, linket findes i beskrivelsen under videoen. Der finder du alle de detaljerede instruktioner, især en kæmpe artikel til dem, der først hentede arduino. Generelt indlæser vi firmwaren i tavlen, og vores radar kommer til live. Nu på computeren skal du køre et program, der vil modtage data fra radaren (det er også i projektmappen, men du har brug for et behandlingsmiljø for at starte det. Du kan downloade det på det officielle websted).
Vi starter det, og her skal du kun konfigurere et øjeblik - det portnummer, som arduinoen er forbundet til. Dette er det samme nummer, der er valgt i arduino ide-programmet, kun vi skal indtaste det manuelt.
Vi starter.
Det er det, vores radar fungerer godt og viser afstanden til de fundne hindringer. Som du kan se, fungerer det med tilstrækkelig nøjagtighed til ikke kun at opdage et stort mål i form af en person eller et hoved, men også klare alle små ting, der kan blive et helt felt til interessante eksperimenter. Så mens alle har det sjovt med hindbærpi, besluttede jeg at udfordre mig selv og lære et bogstaveligt blindt system at genkende målet og sigte mod det. Dette vil være et fantastisk simpelt projekt, der kan gentages, selv ved hjælp af arduino-startpakken. Lad os gøre det og tænke over arbejdsalgoritmen.
Så systemets muligheder er ret begrænsede. Vi får kun afstanden fra radaren, men vi ved, hvilken vinkel hver dimension svarer til. Den første ting, der kommer til at tænke på, er at opbygge et arbejdsområdekort. Det vil sige, vi kører et pass og husker i hvilken vinkel, hvilken afstand var. I efterfølgende pas kan vi nu finde forskellen for hver vinkel i henhold til vores kort. Og dermed kan vi se et nyt objekt, der vil skille sig ud på baggrund af allerede kendte værdier. Nu skal du lære systemet at definere mål. Lad os prøve denne mulighed: vi vil overveje antallet af markante punkter, der er placeret efter hinanden, det vil sige, i livet vil dette være et bestemt område, som radaren scanner.
Vi vil overveje målet - området er større end en bestemt størrelse. Dette filtrerer straks al målestøj. Jeg foreslår også at tilgive systemet for flere fejl, når jeg scanner et område, fordi ultralydsensoren ikke er perfekt.
Radaren kan genkende et stort område, det vil sige, den kender vinklen i begyndelsen af dette område og vinklen på dens ende i dets koordinatsystem. Det gjenstår kun at beregne midten af dette område og rette radaren derpå og lade det ikke længere bevæge sig. Dette vil være en holdtilstand.
Vi fortsætter med at måle afstanden, og hvis det målte punkt pludselig forlader radarens synlighedsområde, vil vi efter et stykke tid igen skifte til målsøgningstilstand. Det er alt, hvad der ikke forstod, computeren er ikke længere nødvendigt her, arduino vil gøre alt af sig selv. Det er nok bare at tænde det fra en 5 volt strømforsyning. Firmwaren findes i projektmappen, der er en masse indstillinger, som du kan lege med og konfigurere alt for dig selv.
Så vi starter systemet. Først går kalibreringen fra kant til kant. Systemet husker afstanden i kalibreringsarrayet i dets koordinatsystem. Derefter begynder arbejdet med det samme, vi scanner området, hvis vi bemærker målet, så finder vi dets vinkelstørrelse og sigter i midten. Det fungerer som et ur og er næsten rettet mod midten af målet.
For øvrig er alle tidsforsinkelser konfigurerbare, især tiden mellem tabet af mål og starten af en ny scanning, ellers vil du også tro, at systemet bremser - intet som det, du skal bare konfigurere det. Generelt er hjernerne til ventilatoren klar, lad os samle jern.
Denne fan blev købt af aliexpress for omkring 5 år siden. Den er kompakt, drevet af USB og er god til dette projekt. Du kan også søge efter en usb-fan i fastpris eller i husholdningsartikler.
Lad os se på denne ventilator og se, om der er ledig plads i dets tilfælde, der kan blive proppet med sin egen elektronik.
Arduino nano passer desværre ikke her, men der er en arduino pro mini, den samme ting, men mindre og uden en programmerer om bord, men det passer perfekt.
Og hvorfor ikke kontrollere strømmen til ventilatoren med arduinoen og smide den indbyggede knap væk? Der er ikke nok plads, relæet passer ikke, så vi bruger en felteffekttransistor.
Han har stadig brug for to modstande på 100 ohm og 10 kOhm. Vi fjerner knappen helt, så den ikke forstyrrer. Forbindelsesdiagrammet vil se sådan ud:
Lad os forbinde områdesøgeren med et kabel fra harddisken.
Vi har også en kondensator i kredsløbet, det er ikke nødvendigt, men meget ønskeligt, da servodrevet giver ganske mærkbar strømstød for usb, og dette kan påvirke afstandsmålingerne.
For at downloade firmwaren i pro mini har du brug for en ekstern programmerer, det koster kineserne som en dåse øl og forbinder sådan:
Du behøver ikke at gøre noget andet, klik på download-knappen, og firmwaren indlæses som sædvanligt på nano-tavlen.Huset lukkes, og alle ledninger går ud gennem hullerne fra kontakten.
Derefter skal du løse servoen. Det blev besluttet at hænge ventilatoren på en hylde og fastgøre servoen i et hjørne.
For at forhindre, at hjørnet roterer, bruger vi dobbeltsidet bånd, men elastikken fra cykelkameraet ville være bedre.
Plads til sensoren skal udvides lidt. Fastgør det på skruerne, der fulgte med servoen.
Den sidste berøring, alt, tænd og vent på, at kalibreringen passerer og nyd hjemblæseren.
Meget morsom ting viste sig. Det blev oprindeligt udtænkt som en mock-up, men takket være kineserne og et stort tomt rum inde i ventilatoren var det muligt at fremstille en færdig enhed uden næsten ingen fremspringende ledninger og snørr, hvilket var meget behageligt. Forresten, hvis ventilatoren ikke kan finde målet i nogen tid, stiger den i midten og slukkes. For at tænde for det, skal du bare løfte hånden, og blæseren er klar til at sigte mod målet og afkøle det igen.
Servo viste sig at være billig plast, gearkassen hænger overalt, så bevægelsen ryger, men hvad kan jeg gøre. På projektsiden er der et link til en bedre servo, den har en metal gearkasse. Projektet viste sig at være temmelig cool og interessant på grund af dets enkelhed - en sensor, et drev, men som et resultat fulde hjem på kortet over regionen og berøringskontrol.
Tak for din opmærksomhed. Vi ses snart!
videoer: