Става малко горещо, лято и всичко това. Имам китайски вентилатор на бюрото си, но работя в различни краища на новото си голямо бюро, а вентилаторът почти винаги духа и завъртането му всеки път е някак тъжно. Затова днес ще направим вентилатор с автоматично насочване към целта.
Така че, трябва да проследим позицията на целта, като вземем предвид ситуацията на масата, така че вентилаторът да не се прицелва в други обекти. В идеалния случай, разбира се, можете да вземете малинен пи-миникомпютър с камера и да използвате библиотека за машинно виждане, за да разпознавате движения или ярка тениска.
Но това е доста трудна задача и самият борд струва повече от 10 пъти по-скъпо от платформата Ардуино, която не може да се справи с камерата. Но освен камерата, има и други начини за определяне на целта, например, пенисен ултразвуков сензор за разстояние.
Веднъж се натъкнах в Интернет на интересен проект "радар", базиран на ардуино и този сензор. Самият проект е доста безполезен, но самата идея е прекрасна - да завъртите сензора за разстояние и да сканирате пространството, обвързано с ъгъла на въртене.
Нека повторим този проект за забавление и тогава ще продължим.
Това означава, че сензорът трябва да се завърти, за това се използва обичайният модел серво (който не знае, серво е двигател с скоростна кутия и обратна връзка към ъгъла, тоест можем да му зададем ъгъла на въртене и той ще го включи).
Нека не сме умни и просто фиксираме сензора с помощта на пръстена от велосипедната камера.
Сглобяваме схемата на дъска.
Това е всичко, остава да изтеглите фърмуера в arduino. Тази версия използва по-бърза библиотека.
Можете да изтеглите източниците на страницата на проекта, връзката може да се намери в описанието под видеото. Там ще намерите всички подробни инструкции, по-специално огромна статия за тези, които за първи път са взели ардуино. По принцип зареждаме фърмуера в платката и радарът ни оживява. Сега трябва да стартирате програма на компютъра, която ще получава данни от радара (тя също е в папката на проекта, но ви е необходима среда за обработка, за да я стартирате, можете да я изтеглите на официалния уебсайт).
Започваме го и тук трябва да конфигурирате само един момент - номера на порта, към който е свързан arduino. Това е същото число, което е избрано в програмата arduino ide, само трябва да го въведем ръчно.
Започваме.
Това е, нашият радар работи чудесно и показва разстоянието до намерените препятствия. Както можете да видите, тя работи с достатъчна точност, за да открие не само голяма цел под формата на човек или глава, но и да се справи с всякакви малки неща, които могат да се превърнат в цяло поле за интересни експерименти. И така, докато всички се забавляват с малинов пи, реших да предизвикам себе си и да науча буквално сляпа система да разпознава целта и да се стремя към нея. Това ще бъде страхотен прост проект, който може да се повтори дори с помощта на стартов комплект arduino. Нека го направим и помислим над алгоритъма на работа.
Така че възможностите на системата са доста ограничени. Получаваме само разстоянието от радара, но знаем на кой ъгъл съответства всяко измерение. Първото нещо, което ви идва на ум е изграждането на карта на работното пространство. Тоест правим един пропуск и си спомняме под какъв ъгъл е било разстоянието. Сега в следващите проходи можем да намерим разликата за всеки ъгъл според нашата карта. И по този начин можем да видим нов обект, който ще се откроява на фона на вече известни стойности. Сега трябва да научите системата да определя целите. Нека опитаме тази опция: ще разгледаме броя на отличените точки, които са разположени една след друга, тоест в живота това ще бъде определена област, която радарът сканира.
Ще разгледаме целта - площта е по-голяма от определен размер. Това веднага филтрира целия шум от измерванията. Предлагам също да простя на системата за няколко грешки при сканиране на една област, тъй като ултразвуковият сензор не е перфектен.
Радарът може да разпознае голяма площ, тоест знае ъгъла на началото на този регион и ъгъла на неговия край в координатната му система. Остава само да изчислим средата на тази зона и да насочим радара там и да не оставим повече да се движи. Това ще бъде режим на задържане.
Ще продължим да измерваме разстоянието и ако измерената точка внезапно напусне обхвата на видимост на радара, след известно време отново ще преминем към целевия режим на търсене. Това е всичко, което не разбра, компютърът вече не е нужен тук, arduino ще направи всичко сам. Достатъчно е само да го захранвате от 5 волтово захранване. Фърмуерът е в папката на проекта, има куп настройки, с които можете да играете и да конфигурирате всичко за себе си.
И така, стартираме системата. Първо, калибрирането преминава от ръба към ръба. Системата запомня разстоянието в калибрационния масив в координатната си система. Тогава работата започва веднага, сканираме зоната, ако забележим целта, тогава откриваме нейния ъглов размер и се целим в средата. Той работи като часовник и е насочен почти в центъра на целта.
Между другото, всички времеви закъснения са конфигурируеми, по-специално времето между загубата на цели и началото на ново сканиране, в противен случай вие също ще мислите, че системата се забавя - нищо подобно, просто я настроите. По принцип мозъците за вентилатора са готови, нека събираме желязо.
Този вентилатор е закупен от aliexpress преди около 5 години. Той е компактен, захранван от USB и е чудесен за този проект. Можете също така да търсите usb вентилатор с фиксирана цена или в стоки за домакинството.
Нека да разгледаме този вентилатор и да видим дали в неговия случай има свободно място, което може да бъде натъпкано със собствена електроника.
Arduino nano, за съжаление, не се побира тук, но има arduino pro mini, същото нещо, но по-малко и без програмист на борда, но пасва идеално.
И защо да не контролирате захранването на вентилатора с ардуино и да изхвърлите родния бутон? Няма достатъчно място, релето няма да се побере, така че ще използваме транзистор с полеви ефект.
Все още се нуждаят от два резистора от 100 ома и 10 kOhm. Премахваме бутона напълно, така че да не пречи. Диаграмата на връзката ще изглежда така:
Нека свържем далекомера с кабел от твърдия диск.
Ние също имаме кондензатор във веригата, не е необходимо, но е много желателно, тъй като серво задвижването дава доста забележими токови скокове за usb и това може да повлияе на измерването на разстоянието.
За да изтеглите фърмуера в pro mini, имате нужда от външен програмист, той струва на китайците като кутия бира и се свързва така:
Не е необходимо да правите нищо друго, щракнете върху бутона за изтегляне и фърмуерът се зарежда както обикновено в нано платката.Корпусът се затваря и всички проводници излизат през отворите от превключвателя.
След това трябва да поправите серво. Беше решено вентилаторът да се окачи на рафт и сервото да се прикрепи към ъгъл.
За да предотвратим въртенето на ъгъла, използваме двустранна лента, но ластикът от камерата на мотора би бил по-добър.
Пространството за сензора ще трябва да бъде леко разширено. Закрепете го върху винтовете, които са доставени със серво.
Последното докосване, всичко, включете и изчакайте калибровката да премине и се насладете на вентилатора на навеждането.
Много смешно се оказа. Първоначално беше замислен като макет, но благодарение на китайците и голямо празно отделение вътре във вентилатора, беше възможно да се направи готово устройство с почти никакви изпъкнали проводници и сополи, което беше много приятно. Между другото, ако вентилаторът не може да намери целта за известно време, той се издига в центъра и се изключва. За да го включите, просто трябва да вдигнете ръка и вентилаторът е готов да се насочи към целта и отново да я охлади.
Сервото се оказа евтино пластмасово, скоростната кутия е разхлабена, така че движението се потрепва, но какво можете да направите. На страницата на проекта има линк към по-добър серво, има метална скоростна кутия. Проектът се оказа доста готин и интересен, поради своята простота - един сензор, едно задвижване, но в резултат на това, пълноценно насочване към картата на региона и сензорно управление.
Благодаря за вниманието. Ще се видим скоро!
видео: