Det blir litt varmt, sommer og alt det der. Jeg har en kinesisk fan på skrivebordet mitt, men jeg jobber i forskjellige ender av det nye store skrivebordet mitt, og viften blåser nesten alltid forbi, og det er på en eller annen måte trist å snu den hver gang. Så i dag vil vi gjøre en fan med automatisk sikte mot målet.
Så vi må spore posisjonen til målet under hensyntagen til situasjonen på bordet slik at viften ikke sikter mot andre objekter. Ideelt sett kan du selvfølgelig ta en bringebær pi minicomputer med et kamera, og bruke et visjonsbibliotek for å gjenkjenne bevegelser eller en lys T-skjorte.
Men dette er en ganske vanskelig oppgave, og styret selv koster mer enn 10 ganger dyrere enn plattformen arduino, som ikke kan takle kameraet. Men foruten kameraet, er det andre måter å bestemme målet, for eksempel en krone ultralydavstandssensor.
En gang kom jeg over på Internett et interessant prosjekt "radar" basert på arduino og denne sensoren. Selve prosjektet er ganske ubrukelig, men ideen i seg selv er fantastisk - å rotere avstandsføleren og skanne plassen, bundet til rotasjonsvinkelen.
La oss gjenta dette prosjektet for moro skyld, og så fortsetter vi.
Dette betyr at sensoren må roteres, for dette brukes den vanlige modellserveren (hvem vet ikke, servoen er en motor med girkasse og tilbakemelding til vinkelen, det vil si at vi kan stille inn den rotasjonsvinkelen, og den vil slå på den).
La oss ikke være smarte, og bare fikse sensoren ved hjelp av ringen fra sykkelkammeret.
Vi monterer kretsen på en brødplate.
Det er alt, det gjenstår å laste ned firmware på arduino. Denne versjonen bruker et raskere bibliotek.
Du kan laste ned kildene på prosjektsiden, linken finner du i beskrivelsen under videoen. Der finner du alle detaljerte instruksjoner, spesielt en enorm artikkel for de som først plukket opp arduino. Generelt laster vi fastvaren inn i brettet, og radaren vår blir levende. Nå på datamaskinen må du kjøre et program som vil motta data fra radaren (det er også i prosjektmappen, men du trenger et behandlingsmiljø for å starte det, du kan laste det ned på den offisielle hjemmesiden).
Vi starter det, og her må du bare konfigurere ett øyeblikk - portnummeret som arduino er koblet til. Dette er det samme tallet som er valgt i arduino ide-programmet, bare vi må legge det inn manuelt.
Vi begynner.
Det er det, radaren vår fungerer bra og viser avstanden til hindringene som er funnet. Som du ser, fungerer det med tilstrekkelig nøyaktighet for ikke bare å oppdage et stort mål i form av en person eller et hode, men også takle alle små ting som kan bli et helt felt for interessante eksperimenter. Så mens alle har det moro med bringebærpi, bestemte jeg meg for å utfordre meg selv og lære et bokstavelig talt blindt system å gjenkjenne målet og sikte mot det. Dette vil være et flott, enkelt prosjekt som kan gjentas selv ved hjelp av arduino-startpakken. La oss gjøre det og tenke gjennom algoritmen til arbeidet.
Så mulighetene til systemet er ganske mye begrenset. Vi får bare avstanden fra radaren, men vi vet hvilken vinkel hver dimensjon tilsvarer. Det første som kommer til hjernen er å bygge et arbeidsområde kart. Det vil si at vi får en passering og husker i hvilken vinkel hvilken avstand var. Nå, i påfølgende pasninger, kan vi finne forskjellen for hver vinkel i henhold til kartet vårt. Og dermed kan vi se et nytt objekt som vil skille seg ut på bakgrunn av allerede kjente verdier. Nå må du lære systemet å definere mål. La oss prøve dette alternativet: vi vil vurdere antall utmerkede punkter som er plassert etter hverandre, det vil si at i livet vil dette være et visst område som radaren skanner.
Vi vil vurdere målet - området er større enn en viss størrelse. Dette filtrerer umiddelbart ut all målestøy. Jeg foreslår også å tilgi systemet for flere feil når jeg skanner ett område, fordi ultralydsensoren ikke er perfekt.
Radaren kan gjenkjenne et stort område, det vil si at den kjenner vinkelen på begynnelsen av dette området og vinkelen på enden i dets koordinatsystem. Det gjenstår bare å beregne midten av dette området og rette radaren dit, og la den ikke lenger bevege seg. Dette vil være en holdemodus.
Vi fortsetter å måle avstanden, og hvis det målte punktet plutselig forlater radarens siktområde, vil vi etter en stund igjen bytte til målsøkemodus. Det er alt som ikke forsto, datamaskinen er ikke lenger nødvendig her, arduino vil gjøre alt av seg selv. Det er nok bare å drive den fra en 5 volt strømforsyning. Fastvaren er i prosjektmappen, det er en mengde innstillinger som du kan spille rundt og konfigurere alt for deg selv.
Så, vi starter systemet. Først går kalibreringen fra kant til kant. Systemet husker avstanden i kalibreringsarrayen i koordinatsystemet. Så begynner arbeidet med en gang, vi skanner området, hvis vi legger merke til målet, så finner vi dets vinkelstørrelse og sikter i midten. Den fungerer som en klokke og er rettet nesten mot midten av målet.
For øvrig er alle tidsforsinkelser konfigurerbare, spesielt tiden mellom tap av mål og starten av en ny skanning, ellers kan du tro at systemet bremser - ingenting sånt, bare konfigurer det. Generelt er hjernen til viften klar, la oss samle jern.
Denne viften ble kjøpt av aliexpress for omtrent 5 år siden. Den er kompakt, drevet av USB og er flott for dette prosjektet. Du kan også søke etter en usb-fan i fastpris eller i husholdningsvarer.
La oss ta en titt på denne viften og se om det er ledig plass i saken som kan stappes med sin egen elektronikk.
Arduino nano, dessverre, passer ikke her, men det er en arduino pro mini, den samme tingen, men mindre og uten en programmerer om bord, men den passer perfekt.
Og hvorfor ikke kontrollere strømmen til viften med arduino og kaste den innfødte knappen? Det er ikke nok plass, stafetten vil ikke passe, så vi vil bruke en felteffekttransistor.
Han trenger fremdeles to motstander på 100 ohm og 10 kOhm. Vi fjerner knappen helt slik at den ikke forstyrrer. Tilkoblingsskjemaet vil se slik ut:
La oss koble rekkevidden til en kabel fra harddisken.
Vi har også en kondensator i kretsen, det er ikke nødvendig, men veldig ønskelig, siden servodrevet gir ganske merkbare strømstøt for usb, og dette kan påvirke avstandsmålingene.
For å laste ned firmware i pro mini, trenger du en ekstern programmerer, det koster kineserne som en boks øl og kobler seg slik:
Du trenger ikke å gjøre noe annet, klikke på nedlastningsknappen, og firmware lastes som vanlig inn i nano-brettet.Huset lukkes, og alle ledninger går ut gjennom hullene fra bryteren.
Deretter må du fikse servoen. Det ble besluttet å henge viften på en hylle, og feste servoen i et hjørne.
For å forhindre at hjørnet spinner, bruker vi dobbeltsidig tape, men elastikken fra sykkelkameraet ville være bedre.
Plassen til sensoren må utvides litt. Fest den på skruene som fulgte med servoen.
Siste berøring, alt, slå på og vent til kalibreringen skal passere og glede seg over hjemviften.
Veldig morsom ting viste seg. Den ble opprinnelig tenkt som en mock-up, men takket være kineserne og et stort tomt rom inne i viften, var det mulig å lage et ferdig apparat uten nesten utstående ledninger og snørr, noe som var veldig hyggelig. Forresten, hvis viften ikke finner målet på en stund, stiger den i sentrum og slås av. For å slå den på, trenger du bare å heve hånden, og viften er klar til å sikte mot målet og kjøle det igjen.
Servoen viste seg å være billig plast, girkassen henger over alt, så bevegelsen rykker, men hva kan jeg gjøre. På prosjektsiden er det en lenke til en bedre servo, den har en metallgirkasse. Prosjektet viste seg å være ganske kult og interessant, på grunn av dets enkelhet - en sensor, en stasjon, men som et resultat, fullverdig homing på kartet over regionen og berøringskontroll.
Takk for oppmerksomheten. Vi ses snart!
videoer: