Je trochu horúce leto a tak ďalej. Mám na stole čínskeho fanúšika, ale pracujem na rôznych koncoch svojho nového veľkého stola a ventilátor takmer vždy fúka a zakaždým je trochu smutný. Takže dnes urobíme fanúšika s automatickým zameraním na cieľ.
Preto musíme sledovať polohu cieľa, berúc do úvahy situáciu na stole, aby ventilátor nezamieril na iné objekty. V ideálnom prípade by ste si samozrejme mohli vziať malinkový pi počítač s fotoaparátom a na rozpoznanie pohybov alebo svetlého trička použiť knižnicu strojového videnia.
Je to však pomerne náročná úloha a samotná tabuľa stojí viac ako 10-krát drahšie ako platforma Arduino, ktoré nedokážu zvládnuť fotoaparát. Ale okrem kamery existujú aj iné spôsoby určenia cieľa, napríklad penny ultrazvukový senzor vzdialenosti.
Raz som na internete narazil na zaujímavý projekt „radar“ založený na arduino a tomto senzore. Samotný projekt je celkom zbytočný, ale samotný nápad je úžasný - otočiť senzor vzdialenosti a skenovať priestor, zviazaný s uhlom rotácie.
Zopakujme tento projekt pre zábavu a potom sa pohneme ďalej.
To znamená, že snímač sa musí otáčať, preto sa používa obvyklé servopohon (ktorý nevie, servopohon je motor s prevodovkou a spätnou väzbou na uhol, to znamená, že môžeme nastaviť uhol natočenia a zapne ho).
Nebuď inteligentný a senzor pripevníme iba krúžkom z komory bicykla.
Zostavíme obvod na doštičku.
To je všetko, zostáva stiahnuť firmvér v arduino. Táto verzia používa rýchlejšiu knižnicu.
Zdroje si môžete stiahnuť na stránke projektu, odkaz nájdete v popise pod videom. Nájdete tu všetky podrobné pokyny, najmä obrovský článok pre tých, ktorí prvýkrát vyzdvihli arduino. Vo všeobecnosti načítame firmvér do dosky a náš radar ožíva. Teraz v počítači musíte spustiť program, ktorý bude prijímať údaje z radaru (je tiež v priečinku projektu, ale na jeho spustenie potrebujete prostredie na spracovanie, môžete si ho stiahnuť na oficiálnej webovej stránke).
Spustíme ho a tu musíte nakonfigurovať iba jeden okamih - číslo portu, ku ktorému je arduino pripojené. Toto je to isté číslo, ktoré sa vyberie v programe arduino ide, iba ho musíme zadať ručne.
Začneme.
To je všetko, náš radar pracuje skvele a zobrazuje vzdialenosť od nájdených prekážok. Ako vidíte, funguje to s dostatočnou presnosťou, aby sa nielen odhalil veľký cieľ vo forme osoby alebo hlavy, ale tiež sa vyrovná s malými vecami, ktoré sa môžu stať zaujímavým experimentom v celom poli. Takže zatiaľ čo sa všetci bavia s malinovým pi, rozhodol som sa vyzvať sám seba a naučiť doslova slepý systém rozpoznávať cieľ a zamerať sa naň. Bude to skvelý jednoduchý projekt, ktorý sa dá zopakovať aj s pomocou štartovacej súpravy arduino. Urobme to a zamyslime sa nad algoritmom práce.
Možnosti systému sú teda dosť obmedzené. Dostaneme iba vzdialenosť od radaru, ale vieme, s ktorým uhlom každá dimenzia zodpovedá. Prvá vec, ktorá príde na myseľ, je vytvorenie mapy pracovného priestoru. To znamená, že urobíme jeden priechod a pamätáme si, v akom uhle bola vzdialenosť. Teraz v nasledujúcich krokoch nájdeme rozdiel pre každý uhol podľa našej mapy. A tak vidíme nový objekt, ktorý bude vynikať na pozadí už známych hodnôt. Teraz musíte naučiť systém definovať ciele. Skúsme túto možnosť: vezmeme do úvahy počet rozlišujúcich bodov, ktoré sú umiestnené jeden po druhom, tj v živote to bude určitá oblasť, ktorú radar skenuje.
Zohľadníme cieľ - plocha je väčšia ako určitá veľkosť. Tým sa okamžite odfiltruje všetok šum z merania. Navrhujem tiež odpustiť systému niekoľko chýb pri skenovaní jednej oblasti, pretože ultrazvukový senzor nie je dokonalý.
Radar dokáže rozoznať veľkú oblasť, to znamená, že pozná svoj uhol začiatku tejto oblasti a uhol svojho konca vo svojom súradnicovom systéme. Zostáva len vypočítať stred tejto oblasti a nasmerovať tam radar a nechať ho ďalej sa pohybovať. Bude to režim pozastavenia.
Budeme naďalej merať vzdialenosť a ak nameraný bod náhle opustí dosah viditeľnosti radaru, po chvíli sa znova prepneme do cieľového režimu vyhľadávania. To je všetko, čo nerozumelo, počítač tu už nie je potrebný, arduino všetko urobí samo. Stačí ho napájať z 5 voltového napájacieho zdroja. Firmvér sa nachádza v priečinku projektu. Existuje množstvo nastavení, pomocou ktorých môžete hrať a konfigurovať všetko pre seba.
Takže spustíme systém. Najprv kalibrácia prechádza od okraja k okraju. Systém si pamätá vzdialenosť v kalibračnom poli vo svojom súradnicovom systéme. Potom sa začne práca okamžite, skenujeme oblasť, ak si všimneme terč, potom nájdeme jeho uhlovú veľkosť a stred v strede. Funguje to ako hodiny a je zameraná takmer do stredu terča.
Mimochodom, všetky časové oneskorenia sú konfigurovateľné, najmä čas medzi stratou cieľov a začiatkom nového skenovania, inak si tiež budete myslieť, že systém sa spomaľuje - nič také sa len nastavuje. Mozgy pre ventilátor sú vo všeobecnosti pripravené, zbierajme železo.
Tento ventilátor bol zakúpený spoločnosťou aliexpress asi pred 5 rokmi. Je kompaktný, napájaný cez USB a je skvelý pre tento projekt. Môžete tiež vyhľadať usb ventilátora za pevnú cenu alebo s tovarom pre domácnosť.
Pozrime sa na tohto ventilátora a uvidíme, či je v jeho prípade voľný priestor, ktorý môže byť preplnený vlastnou elektronikou.
Arduino nano sa tu, žiaľ, nehodí, ale na palube je arduino pro mini, to isté, ale menšie a bez programátora na palube, ale dokonale sa zmestí.
A prečo nie ovládať silu ventilátora pomocou arduina a zahodiť pôvodné tlačidlo? Nie je dostatok miesta, relé sa nezmestí, takže použijeme tranzistor s efektom poľa.
Stále potrebuje dva odpory 100 ohmov a 10 kOhm. Tlačidlo úplne odstránime, aby nezasahovalo. Schéma pripojenia bude vyzerať takto:
Pripojte hľadáčik pomocou kábla z pevného disku.
V obvode je tiež kondenzátor, nie je to potrebné, ale veľmi žiaduce, pretože servopohon poskytuje usb pomerne zreteľné prúdové špičky, čo môže ovplyvniť meranie vzdialenosti.
Ak si chcete stiahnuť firmvér v pro mini, potrebujete externého programátora, stojí Číňana ako plechovka piva a pripája sa takto:
Nemusíte robiť nič iné, kliknite na tlačidlo sťahovania a firmvér sa načíta ako obvykle na nano dosku.Kryt sa uzavrie a všetky káble vystupujú cez otvory z vypínača.
Ďalej musíte opraviť servo. Bolo rozhodnuté zavesiť ventilátor na poličku a pripevniť servo do rohu.
Aby sa predišlo zatáčaniu rohu, používame obojstrannú pásku, ale elastická kamera pre bicykel by bola lepšia.
Priestor pre snímač sa bude musieť mierne zväčšiť. Pripevnite ho na skrutky dodávané so servomechanizmom.
Posledný dotyk, všetko, zapnite sa a počkajte, kým kalibrácia prejde a užite si navádzací ventilátor.
Ukázalo sa veľmi zábavné. Pôvodne bol koncipovaný ako vzorový model, ale vďaka Číňanom a veľkému prázdnemu oddielu vo vnútri ventilátora bolo možné vyrobiť hotové zariadenie s takmer bez vyčnievajúcich drôtov a hlien, čo bolo veľmi príjemné. Mimochodom, ak ventilátor nemôže nejaký čas nájsť cieľ, zdvihne sa v strede a vypne sa. Ak ju chcete zapnúť, stačí zdvihnúť ruku a ventilátor je pripravený namieriť na cieľ a znova ho ochladiť.
Servo sa ukázalo byť lacným plastom, prevodovka visí všade, takže pohyb sa krúti, ale čo môžem urobiť. Na stránke projektu je odkaz na lepšie servo, má kovovú prevodovku. Projekt sa ukázal ako veľmi chladný a zaujímavý vďaka svojej jednoduchosti - jeden senzor, jeden pohon, ale v dôsledku toho plnohodnotné navádzanie na mapu regiónu a dotykové ovládanie.
Ďakujem za pozornosť. Uvidíme sa skoro!
videa: