Радиоуправляем робот с механична ръка (10 команди) с nRF24L01
/kn34pc.com/конструкции/...

Посвещавам тази статия на моя приятел Николай Др. Николов, който провокира в мен любовта към моделистиката в младежките ни години.


Този проект ми отне почти година и половина, през което време тествах различни команди за управление с други по-малки проекти, дадени в списъка с литература в края на статията.

Признавам си, че още в самото начало, тази идея възникна като проект за телеуправление на луноход/марсоход. Високочестотния модул nRF24L01, който използвам, е Wi-Fi дуплексен приемо-предавател на 2,4 GHz и позволява както предаване, така и приемане на данни. Именно тази възможност позволява на реалните роботи, изпратени на други планети да бъдат управлявани от разстояние, така и самите те, след като им се подаде съответната команда за изпълнение, да извършат измервания с вградените си датчици или заснемат с камера повърхността на изучаваната планета, а след това да изпратят събраните данни към Центъра за управление. За да се случи всичко това, преди всичко е необходим един сериозен екип от програмисти, инженери по електроника, механика, техници и учени, изучаващи природните феномени.

А целта на моя скромен проект е да покажа, че с малко усилия, много труд и разгърнато въображение, подобен прототип с ограничени функции може да се изгради и в домашни условия. Далеч съм от мисълта, че направеното в този проект може да послужи за нещо полезно, освен за обучение. Но и това е нещо, като имаме предвид пропастта между образование и практика. Чрез следващото видео ще придобиете по-пълна представа за осъществения от мене проект на радиоуправляем верижен робот с роботизирана механична ръка и изпълнителни механизми за мини видеокамера и съответните фиксирани команди:


А сега след като ви представих моя робот, накратко ще разкажа за функциите му:

Няколкото проекта (виж [3], [4]) за задвижване на кола с два мотора или верижни шасита, ми дадоха възможността да реализирам ходовата част на настоящия робот.

Използвайки натрупания опит от експериментите с предаване на пропорционални команди (виж [2]) реализирах механизираната ръка. Тя има пет команди за управление, всяка с две степени на свобода и почти напълно покрива свободното движение на една човешка ръка от лакътя до дланта. (представете си, че тя събира проби от повърхността).

Вложих опита си от реализирането на експеримента за предаване на фиксирани команди (виж [1]), които тук онагледих с включване и изключване на светодиоди (представете си, че те управляват сондажно оборудване или командват камера за снимане, датчик за температура и прочее). Фиксираните команди в случая са само две, но проектът позволява увеличаването им до дванадесет.

Използвах PAN/TILT механизъм от видеоконтрол, който има четири степени на свобода и с подходяща видеокамера, закрепена за него може да извършва видеонаблюдение в различни посоки, които можем плавно да изберем дистанционно.

Ако прегледате предишните ми проекти с подобна насоченост, ще забележите, че не съм използвал програмните кодове като copy-paste, а съм ги осмислял според предназначението в настоящия робот. Така че търсете само сходство. И все пак, този проект еволюира от предишните.

Реализацията на проекта ми отне толкова време не само за узряване и обмисляне на идеята, а и за снабдяване с такива части от механизирани евтини играчки, които могат да намерят приложение в механиката на този робот. За съжаление, у нас почти не се намират.

Може би си мислите, че бавно и постепенно съм написал програмния код? О, не! Обмислях го и си водих записки в продължение на повече от седем-осем месеца. И както писатели и поети имат своята муза, така се случи и при мен – един ден, през ноемри 2018-та год., моята муза ме осени. Отворих записките си, седнах пред компютъра и само за час и половина написах двата програмни кода – на пулта за управление и изпълнителния механизъм. За тези, които нямат представа от този процес, искам да отбележа, че двата кода се пишат паралелно и едновременно, което със сигурност намалява допуснатите грешки, а и те по-лесно се забелязват и коригират. За да се случи това програмиране, е необходимо предварително да се определят всички параметри със съответните означения, да се симетрират командите за двете части и се насочат правилно адресирани към микропроцесорната платка Arduino и високочестотния модул nRF24L01, за който се използва отделен пакет от команди за предаване и приемане.

В същото това време начертах съответните печатни платки, върху които да монтирам съответно дистанционното управление с предавателя, процесорната платка Arduino с приемника, захранващите мини модули и драйверите за управление на моторите на ходовата част. На следващите снимки последователно са показани конфигурациите на печатните платки, а заедно с програмния код всеки може да направи връзка между механичното и софтуерното изпълнение.

Следват платката на пулта за дистанционно управление и реализирания пулт:

Следващите снимки показват неговото изпълнение в подходяща за целта кутия. Всъщност, първо намерих подходяща кутия, според нейните размери създадох геометрията на печатната платка на пулта за дистанционно радиоуправление и върху нея самата монтирах две Li-Ion батерии 3,7V/1300mAh.

Пултът за управление е реализиран с Arduino Nano V.3.

А сега следват снимки на приемната част на робота:

Тук се използва Arduino MEGA, което има в пъти повече PWM изводи, така необходими за пропорционалните команди, осъществяващи плавното управление на робота. Модулът MEGA се захранва със стабилизатор LM7805/1,5A, а PWM изводите към които са свързани изпълнителните механизми се захранват с мини импулсен модул, настроен за напрежение 5V и позволяващ консумация на ток ток до 2А и пиков ток до 3А, виден в долния десен ъгъл.

В следващата таблица може да намерите справка за свързването на изводите на Wi-FI модула nRF24L01 към съответните изводи на Arduino Nano/MEGA:

Забележете, че цифровите сигнали за управление на nRF24L01 – CE и CSN са свободно избираеми. За да улесня монтажа на модула върху печатната платка и да минимизирам размерите на платката съм позиционирал модула до изводи 49-53, а използвам за връзка с CE и CSN съответно 49 и 52, а за връзка с Arduino Nano в пулта за управление използвам 10 и 9.

И сега следват снимки на управлението на ходовата част на верижната машина:

Описаният робот е със седем сервомотора и два електромотора за движение, поради което консумацията на ток е голяма и използваните акумулаторни батерии трябва да бъдат с капацитет поне 5A/h за да осигурят стабилна работа на робота за около час. В моя прототип съм използвал акумулатори с капацитет 2500mA/h, с които се осигурява работа до 30 минути. Всички сервомашинки за управление на роботизираната ръка са с метални механизми за по-голяма издръжливост на товар, модел TowerPro SG995/996, а за Pan/Tilt микро серво SG-90. Моторите за задвижване на ходовата част са с редуктори, които развиват 120-150 RPM при захранване 7,4V. Ето вида на робота в близък план:



Архив Arduino файлове [zip,ino][4kb]

Литература:
1. Arduino – предаване на фиксирани команди чрез nRF24L01, Валери Терзиев, www.kn34pc.com
2. Arduino – предаване на пропорционални команди чрез nRF24L01, Валери Терзиев, www.kn34pc.com
3. Arduino - управление на модел на танк по радиоканал, част II и III, Валери Терзиев, www.kn34pc.com
4. Arduino – 2WD, 2Motors, 2Servos RC Car, радиоуправляем модел на кола с nRF24L01, Валери Терзиев, www.kn34pc.com
5. Гусеницы для RC робота на arduino nrf24l01, Ал. Минский
6. Arduino and HC-12 Long Range Wireless Communication Module
7. Arduino Robot Car Wireless Control using HC-05 Bluetooth, NRF24L01 and HC-12 Transceiver Modules
8. About Nrf24L01
9. Arduino Wireless Communication – NRF24L01 Tutorial
10. Create a Two-Channel Remote Control with the nRF24L01+

11. Arduino MEGA 2560 PRO mini

Валери Терзиев
19 февруари 2019 година