Arduino-радиоуправление на модел на кола с nRF24L01
Част I
 

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


    В края на последната си статия посветена на един мой проект за "Управление на модел на танк по радиоканал" с използване на модул на 2400 MHz (Част III), засегнах така нареченото пропорционално управление или както простичко го представих: "скоростта се променя в зависимост от педала на газта". С тази статия ще представя следващия си проект за пропорционално радиоуправление на модел, но този път на автомобил. Разликата в управленията на танк и кола са в премахването на един мотор и въвеждането на серво-машинка или още известна в моделистиката като "рулева" машинка. Последната се използва за плавно управление на волана, тоест на ъгъла на завоя на предните колела.

    Началото е винаги трудно и започва с намиране на подходящите за целта модули, но след като проекта "отлежи" в главата и мислите се подредят, идеята се избистря и идва началото на осъществяването му. Намирането на подходящ модел на кола също е трудност, а и не е необходимо да бъде скъпоструваща. Ето така намерих моя модел. За разлика от други мои статии, в които показвам последователно пътя на осъществяването им, тук с две последователно снимки ще покажа направо шасито опразнено от оригиналните части след нея с монтирана моята печатна платка с Arduino и драйвера за мотор SN754410 (L293D) :

    На първата снимка може да видите шасито на колата почти в първоначален вид, от което съм свалил всички излишни оригинални модули, които не са необходими за моя проект. На мястото на управлението на волана съм монтирал рулева серво-машинка, чиято ос е съединена с кормилната щанга посредством най-обикновен добре оразмерен меден проводник с подходящо сечение (0,9 - 1,0 мм).

    На следващата снимка е показано шасито на модела в почти завършен вид, като остава да се свърже драйвера SN754410 с мотора, който съм запазил от оригиналната конструкция:

    Следват снимките на завършения с окабеляването модел:

    Най-трудната част от механичната преработка беше монтажа на рулевата машинка (серво). Първо трябваше да й намеря подходящо място, леко отместена от центъра за да има достатъчно разстояние от нейната ос до окачването на кормилната щанга. След като първо подредих елементите върху шасито за да намеря тяхното точно разположение, ги фиксирах с по една капка моментно лепило, което ми помагаше да получа твърда конструкция върху която да продължа надграждането. От друга страна, залепването не е критично, така че ако бях допуснал грешка лесно можеше да я поправя. Оказа се, че съм работил прецизно и разлепване и донагласяване не беше необходимо. Ето как изградих кормилното управление с рулева серво-машинка на предните колела:

    Както казах по-горе, запазих оригиналното задно окачване и електромотора, който го задвижваше. Възползвам се от наличните възможности, които позволяваше шасито, включително от наличие на кутия за 5 броя батерии размер АА. Вида на задния мост е показан на следващите снимки:

    Вече споменах, че за този проект съм избрал интегралния драйвер за управление на постояннотоков електромотор SN754410. Той е пълен еквивалент на известния L293D, но с подобрени технически характеристики. Сравнение може да направите от приложените datasheets. Но ако искате да се презастраховате, защото, например, не знаете електромотора, който сте избрали с каква консумация на ток е, препоръчвам по-мощния драйвер за мотори L298D.

    За да избегна смущенията (искренето), които предизвиква колектора на мотора при въртене се наложи да направя импровизиран филтър паралелно на изводите му с два керамични кондензатора по 100 nF, като единия им край запоих за корпуса на мотора, който следваше да замася:

    Според оригиналната конструкция на шасито, избрах място за бъдещата печатна платка, оразмерих я, а след това направих същото с подходяща кутия за бъдещото дистанционно управление, поръчах платките за изработка. След две седмици те бяха готови и седнах на работната маса. Ето каква красота се получи:

    След завършване на окабеляването между отделните модули в бъдещата кола, тя придоби следния вид:

    И накрая остана да намеря подходяща кутия за дистанционното управление. В повечето фабрични модели дистанционното управление е с размери около 120 х 80 мм. Размерът изглежда е избран по чисто биологични причини – идеално пасва в ръцете на човек, независимо дете или възрастен. И аз се насочих към приблизително същия размер за кутия.

    А ето и дистанционното управление на модела:

 

    И след като направих тестовете на радиоуправляемия модел в още незавършен вид, дойде момента да го "събера" в кола. И все пак по-интересно ми беше докато можех да наблюдавам и се възхищавам на движението на механиката – рулевата серво-машинка, която въртеше волана за завой наляво или надясно, движението напред-назад на задния мост.

    По време на практическата изработка и тестовете установих, че оригиналния редуктор на модела прескача на определена позиция и след като го отворих, забелязах, че една от зъбните предавки е с един счупен зъб (или просто фабрично е отсъствал). Тогава реших, че е по-бързо да заместя редуктора с нов, закупих такъв с предавателно число, което осигуряваше около 200 оборота в минута. По този начин скоростта на модела се запазваше.

    Но ето как изглеждаше модела с този редуктор:

    Но моята цел беше да използвам изцяло модела на кола в неговия оригинал. И така една вечер след един уморителен работен ден, седнах на работната маса за да се разтоваря от ежедневието и разглобих редуктора на колата. Именно тогава установих липсата на един зъб от предавката. В първия момент почти реших да оставя колата в горния вид, но като поставих кабината върху шасито се оказа, че тя опира в колелата, които бяха с 6 мм по-голям диаметър. Тогава се заех с ръчната поправка на оригиналния редуктор. Трябваше да попълня мястото на липсващия зъб с друг, който се налагаше да измайсторя. Взех бормашинката и със свредло с Ф = 1 мм аксиално пробих отвор точно в средата между двата зъба с дълбочина до оста на зъбното колело.

   Разбира се, изискваше изключителна прецизност за да улуча точно в средата помежду им. След това отрязах парченце меден емайлиран проводник с Ф = 0,85 мм, което вкарах в готовия отвор, подравних неговия връх по височина с останалите зъби. С една триъгълна часовникарска пиличка оформих върха във формата на триъгълник и импровизацията заприлича съвсем на истински зъб. След като завърших с тези фини операции внимателно с моментно лепило ("Момент", "Капчица" или "Каноконлит") фиксирах новия зъб и го оставих да съхне 24 часа. На следващата вечер сглобих отново оригиналния редуктор, изпитах въртенето му при различни обороти както напред, така и назад. Останах доволен от резултата и тогава отново го монтирах на колата.

    Завършения модел на колата след пълното сглобяване придоби следния вид:

    От огромно значение за правилната работа на двигателите е правилния избор на драйвер за мотор. Преди всичко за да пуснем в движение електромоторите трябва да знаем техния ток на консумация при нормално натоварване и при товар близък до спиране на мотора. Обикновено разликата между тока на продължителна работа и пиковия ток е до 3-4 пъти. Но за да издържи максималния ток на товара, самата интегрална схема драйвер за мотор трябва да отговоря на тези параметри. Производителите обикновено публикуват тези значения на консумирания ток и би следвало още преди да си изберем мотори и драйвери да се съобразим с техническите им характеристики. Например, ако консумирания ток на електромотора със средно натоварване е около 0,2-0,5А, а задържайки оста на въртене тока се повишава до 0,8-1,0А следва избрания от нас драйвер за мотор да отговаря на тези изисквания. Моята практика установи, че тока, максималното захранващо напрежение и максималната разсейвана мощност имат пряка връзка. Например, най-нежния от използваните в моите конструкции драйвери се оказа китайския L9110. При еднакви условия с други драйвери, независимо, че съм го захранвал с подходящо напрежение (12V) при пуска на моторите той "изгаряше" буквално за 4-5 секунди, докато при захранващо напрежение 9V работеше безупречно.

    Поради горната забележка, появила се след натрупания опит от експериментите ми в конструкциите на радиоуправляеми модели на танк и кола, реших да ви дам сравнителна таблица на най-важните параметри на моторни драйвери, които най-често се намират на пазара у нас:

    В моделът на кола, който съм показал на снимките по-горе използвам единият от двойния драйвер за мотор SN754410:

    На входа "Enable" подавам командите от ШИМ на Arduino. Чрез командите на "Input_1" и "Input_2" сменям посоките на въртене на мотора, с което осъществявам движение на модела на колата напред-назад, а с ШИМ управлявам скоростта. В западните публикации може да срещнете определението "Speed Controller", съответстващо на този начин на управление на мотори.

    Както се вижда от снимките по-горе, Arduino опростява изключително хардуера на едно радиоуправление. Практически, както дистанционното управление с предавател, така и приемната част, имат по няколко елемента/модула като основната функция се изпълнява от процесора на платките Arduino.

    Приемната част съдържа платка Arduino, радиомодул и драйвер за мотор, като последния може да бъде един от описаните в таблицата по-горе. Печатната платка е съобразена с геометрията на избрания от мене модел на радиоуправляема кола.

    Предавателя съдържа платка Arduino, джойстик (по ваше желание може отделни за командите напред-назад, наляво-надясно), ВЧ трансивер с модул nRF24L01, работещ на 2400 MHz и няколко кабелчета, с които се осъществяват връзките помежду им.

    Следващата схема изпълнена с програмата на Fritzing дава представа за дистанционното управление и неговото изпълнение:

    Подобна е схeмата на приемната част, в която също основния модул е платката Arduino в комбинация с радиомодула nRF24L01 и моторния драйвер, независимо, че е показан L298D:

    Със следващото видео демонстрирам движението на готовия модел.

Архив: rx_tx_nrf24l01 [zip,ino][2kb]

Литература:

1.
L293D [pdf][601kb]
2. SN754410 [pdf][109kb]

Валери Терзиев
13 февруари 2017 година