Вторая жизнь радиоуправлемой машинки
В давние-стародавние времена, 13 лет назад, была куплена радиоуправляемая машинка для себя любимого. В нее успели наиграться сыновья, а машинка была еще жива, но родной
И было принято кардинальное решение: выкинуть всю электронику в машинке и пульте и заменить новой.
Пульт оказался полностью дискретным в части управления, мозгом там была
Мозгом машинки (приемника) был собрат по несчастью
Покопавшись в загашниках, было решено использовать в качестве мозга
Сервомашинки в приемнике были собраны по неведомой конструкции и представляли собой по сути редуктор с DC-мотором. Характеристики, которые удалось с них снять:
- Максимальный ток сервы на поворотные колеса 0.27 А при 3.5 в. Сопротивление сервы 17 Ом в неподвижном среднем положении, от 1 кОм до 150 Ом при выкрученных в сторону колесах.
- Ток ведущих колес на холостых оборотах 0.43 А при 3.5 в, под нагрузкой до 2.3 А и потом защита у акб срабатывает. Сопротивление на проводах ведущих колес 1.3 Ом, если их не трогать.
По размерам посадочного места в машинке (приемнике) не густо, максимальная высота платы с деталями 16 мм, но не по всей площади платы, т.к. есть дырки под крепление и ограничители по краям.
Что должно быть по функционалу:
- Движение вперед и назад с регулировкой скорости (ШИМ) или на первое время просто вкл/выкл
- Поворот в лево и вправо.
- Вкл/выкл фары спереди и габариты сзади
- Вкл/выкл проблесковых маячков из двух светодиодов на крыше машины (полицейская мигалка).
- Вкл/выкл гудка (пищалки) со звуком клаксона автомобиля.
{ads2}
Начнем с передатчика, т.к. с ним получилось проще всего, кроме не поместившейся в корпус платы.
Схема принципиальная:
Кнопки подключены по такой схеме только ради экономии места и возможности выхода микроконтроллера из powerdown при нажатии на любую кнопку. Совершенно не рекомендую такое решение, если питание не батарейное, или есть управление силовой нагрузкой, т.к. МК может ловить помехи от наводок по портам кнопок, и их нужно будет шунтировать резисторами и стабилитронами. По питанию в результате была оставлена батарейка типа «Крона» и поставлен LDO
Алгоритм работы передатчика:
- Инициализировали перефирию
- Если нажата или отпущена одна из кнопок, то выходим из сна и отправляем в NRF состояние порта кнопок
- Если в течении 5 секунд кнопки не нажимают или отпускают, то уходим в Powerdown
- Раз в 5 секунд проверяем напряжение питания МК, если оно ниже 2.5в, то двукратно пищим
- Идем в пункт 2.
В результате пультик выглядит в разобранном виде так:
Слева плата управления, в центре старая плата, которую выпаивать не стал, ибо не мешала.
В будущем есть планы вырезать Крону и поставить 18650, но лень.
В целом с пультом проблем было очень мало, главный косяк, что плата получилась чуть толще, чем могла поместиться в пульт, хотя все размеры снимал по несколько раз. В результате в собранном виде у пульта есть слева щель и через нее видно плату и индикацию светодиодов на ней:
Кнопки на пульте имеют следующее назначение:
Остальные органы управления (вперед/назад, влево/вправо) остались без изменений.
Приемник.
Схема принципиальная:
Красным выделены элементы, которые пришлось добавлять уже после изготовления печатной платы на этапе наладки. Т.к. ходовой двигатель потреблял ток до 5 А легко, то от этого МК становилось плохо, и он перезагружался. Решается эта проблема добавленными элементами: VD1, L2, C10, L3, C9. Перечисленные элементы установлены навесным монтажом.
VD2, V3, R21, R22 реализуют ШИМ-управление ходовым двигателем. Дело в том, что если этого не сделать, машина превращается в адский скоростной болид, соответственно редуктор или корпус машины просто развалятся после столкновения с препятствиями или от времени. Без ШИМ реализован Турбо режим, если одновременно нажать Фара+Мигалка+Гудок, таким же нажатием он и отключается.
В разобранном виде обновленная машинка выглядит так:
Места у неё в нутре совсем не много:
Плата управления двухэтажная (из двух плат), на второй реализован H-мост по управлению ходовым двигателем:
Следует отдельно описать работы с NRF, т.к. было много времени потрачено на превращение готовой библиотеки, найденой интернетах, в рабочий вариант.
Главной проблемой были дубликаты получаемых комманд, виной тому была неправильная обработка принятой команды на приемнике, не правильно было так:
- Ждем от NRF поднятия флага RX_DR, входим в обработчик приема;
- Выгребаем из буфера приема команду, отправляем ее на обработку;
- Сбрасываем флаг RX_DR.
Это в корне не верно, т.к. флаг RX_DR говорит только о факте принятия данных буфер, но команд может прийти несколько (всего буфер NRF рассчитан на 3 команды).
Правильный алгоритм такой:
- Ждем от NRF поднятия флага RX_DR, входим в обработчик приема;
- Выгребаем из буфера приема команду, отправляем ее на обработку;
- Проверяем есть ли еще принятые команды по флагу RX_P_NO, если есть, то переходим к п2;
- Сбрасываем флаг RX_DR.
Инициализация NRF используется следующая (от NRF нужна дальность, но не скорость):
{code}#define SETUP_AW_5BYTES_ADDRESS (3 << AW)
#define SETUP_RETR_DELAY_1500MKS (5 << ARD)
#define SETUP_RETR_UP_TO_5_RETRANSMIT (5 << ARC)
#define RF_SETUP_250KBPS (1 << RF_DR_LOW)
#define RF_SETUP_0DBM (3 << RF_PWR)
#define mirf_CH 10 //transmission channel
#define mirf_PAYLOAD 0 //payload lenght
mirf_write_register(EN_AA,(1<mirf_write_register(EN_RXADDR, (1 << ERX_P0) | (1 << ERX_P1)); // включение каналов 0 и 1
mirf_write_register(SETUP_AW, SETUP_AW_5BYTES_ADDRESS); // выбор длины адреса 5 байт
mirf_write_register(SETUP_RETR, SETUP_RETR_DELAY_1500MKS | SETUP_RETR_UP_TO_5_RETRANSMIT); // задаем ждать подтверждение от принимающего 1,500мс и пять попыткот нас до него достучаться
mirf_write_register(RF_SETUP, RF_SETUP_250KBPS | RF_SETUP_0DBM); // выбор скорости 250 кбит/с и мощности 0dBm
mirf_write_register(RF_CH, mirf_CH); // задаем канал преима/передачи
if (mirf_PAYLOAD!=0){
// настраиваем отправку данных фиксированной длинны
mirf_write_register(RX_PW_P0, mirf_PAYLOAD); //length of incoming payload
mirf_write_register(FEATURE,(0 << EN_DPL) | (1<}else{
// настраиваем отправку данных произвольной длинны с автоподтверждением
mirf_write_register(FEATURE,(1 << EN_DPL) | (1<mirf_write_register(DYNPD, (1 << DPL_P0)); // включение произвольной длины для канала 0
}
mirf_write_register(CONFIG, (1 << EN_CRC) | (1 << CRCO) | (1 << PWR_UP) | (1 << PRIM_RX)); // Включение CRC, питания и переход на прием
mirf_setRX; // rx mode
_delay_ms(20);
mirf_CE_hi;{/code}
Машинка в сборе выглядит так:
Немножко видео о том, что вышло в итоге:
Что можно еще улучшить:
- Поставить в разрых питания H-моста полевик, чтобы снизить потребление приемника. Сейчас во схе вся схема потребяется 13ма, все это жрет именно H-мост для ходового двигателя.
- Переделать плату в пульте (передатчик), чтобы он закрывался плотно.
- Сделать задние стоп-сигналы, запаралелить их с фарами.
Использовались следующие ссылки по теме:
http://aterlux.ru/index.php?page=article&art=nrf24l01p#COMMANDS
https://openservo.org/Schematic2?action=AttachFile&do=view&target=openservo_2.1_schematic.pdf
Комментарии
rn3aig.ru/phpBB3/files/radio_auto_receiver_12022017.rar
rn3aig.ru/phpBB3/files/radio_auto_sender_12022017.rar
https://technsight.com/:
Так случилось, что моя двоюродная сестра нашла у Вас интересного мужчину и вышла за него замуж ^_^
Неужели здесь есть красивые люди! ;) Я Изабелла, мне 26 лет.
Я работаю моделью, преуспеваю - надеюсь, и вы тоже! Хотя, если вы очень хороши в постели, то вы вне очереди!)))
Поставьте лайк мне здесь, плз: @topsecret7847: https://bit.ly/42OUc1a (если жена рядом, не щелкай! :D)
Кстати, секса давно не было, найти достойного очень сложно...
И нет! Я не проститутка! Я предпочитаю гармоничные, теплые и надежные отношения. Я вкусно готовлю и не только ;) У меня ученая степень в области маркетинга.
Моя фотография:
https://i.ibb.co/hBVyhq4/00131-483565854.png: https://bit.ly/42OUc1a
P.S live:i2JpMMlvzy CGRbRLi4iI
P.S Еще обо мне: Ищу достойного мужчину!: https://yougig.co/img_20200127_114953/#comment-190756 Ищу достойного мужчину!: http://consproxil.com/ Ищу достойного мужчину!: https://cpamafia.pro/threads/ischu-dostojnogo-muzhchinu.12003/ 6514eee
Один из основных вопросов для меня - это выбор чипа ЦАП. AKM, ESS, ROHM и прочие... Какой производитель ЦАП, по вашему мнению, предлагает лучшие характеристики? Я слышал много положительных отзывов о различных компаниях, но мне было бы интересно услышать мнение обычных пользователей, чтобы сделать верный выбор.
На одном из аудиофильских форумов мне порекомендовали такой вариантhttps:// hifi-port.ru/th reads/shanling- h2-portativnyj- bluetooth-cap-u silitel-na-cs43 198.2659/. Буду признателен за ваши комментарии и советы на эту тему. Давайте совместно создадим дружественную и информативную атмосферу, где мы сможем обмениваться мнениями и опытом.
https://hifi-port.ru/threads/fiio-k9-akm-nastolnyj-cap-usilitel-na-ak4499ex.2660/ Также меня заботит наличие 4,4 мм разъема. Многие ЦАПоуси имеют эту возможность, но стоит ли мне обращать на это внимание и переплачивать за неё? Есть ли какие-то плюсы от использования данного разъема?
RSS лента комментариев этой записи