Например TDA7294

РадиоКот > Конкурс: Поздравь Кота по-человечески 2017!

Невидимая стена для iRobot Roomba.

Опубликовано 11.09.2017.
Создано при помощи КотоРед.

писываемое здесь устройство регулярно используется в настоящее время для ограничения пространства уборки пылесосом iRobot Roomba 600-ой серии. 

Потребность в самостоятельной  разработке устройства типа "невидимая стена" возникла  в процессе эксплуатации, поскольку пылесос использовался в отсутствии хозяев, то зачастую выезжал за пределы комнаты где и оставался до разряда батарей поскольку не мог (в виду ограниченных возможностей) найти дорогу к базе. А по причине проживающего в квартире кота просто закрыть дверь в единственную комнату было не возможно в принципе из за протестов этого хвостатого субъекта. Таким образом, ситуация возратившись с работы застать зрелище  так и не убранной комнаты и застрявшего среди  тапок в прихожей пылесоса, была не редкой.

Рис.1 Общий вид передатчика

Хотя подобные устройства выпускаются производителем пылесоса [1], приобретать его даже учитывая невысокую стоимость, было как-то не резон и то, что умеет заводская версия меня не устраивало.

Предлагаемое устройство состоит из двух соединенных корпусов  -   нижнего корпуса в котором находятся, смонтированные на единой печатной плате, генератор команды и зарядное устройство NiMn аккумуляторов, в нем так же размещен батарейный отсек и четыре индикатора  и верхнего корпуса в котором размещены кнопка включения/отключения и инфракрасный светодиод непосредственно передающий команду (см. рисунок 1).

В устройстве на сегодняшний день реализованы следующие возможности:

  • собственно отпугивание пылесоса пытающегося выбраться из комнаты;
  • низковольтное питание от NiMn аккумуляторов;
  • зарядное устройство на борту;
  • включение/выключение одной кнопкой (без фиксации);
  • автоматическое отключение по времени (примерно через 2 часа работы);
  • индикация разряда батарей.

 

Работа устройства показана на видео в конце статьи.

Как это работает.

Руководствуясь  принципом "все придумано до нас" автор начал с исследований интернета. 

В процессе разбора горы рекламы и откровенного бреда на тему, выяснилось, что наиболее полно схема работы была разобрана на англоязычном форуме [1], так же  практическая реализация устройства на PIC со всеми алгоритмами нашлась в [2],  однако предложенная там схема кроме того, что использует PIC контроллер с которым я к сожалению не знаком,  была весьма далека от желаемого результата.

Итогом поиска были следующие выводы:

Принцип работы "невидимой стены" заключается в непрерывной  отправке посредством  узконаправленного инфракрасного  луча   кодированной 8 битной команды (0xA2) для пылесоса. 

Попав в зону действия сигнала пылесос производит разворот и двигается до момента пока сигнал не перестанет приниматься, затем робот возобновляет предыдущую программу.

Сама команда представляет собой пакетную передачу  в формате Pronto IR модулированного сигнала с несущей частотой 38-40 кГц, при этом в полученном сигнале биту "1"  соответствует посылка модулированного сигнала длительностью 3 мс (миллисекунды) с паузой 1 мс, а  биту "0" - посылка модулированного сигнала длительностью 1 мс  с паузой 3 мс. 

Таким образом,  непрерывно выдается команда 0xA2 (или 0b10100010), повторяющаяся  после паузы в 16 мс (соответствует длительности передачи половины команды). 

Форма результирующего сигнала соответствующего команде 0b10100010 приведена на рисунке 2. 

 

Рис.2 Форма сигнала.

Описание схемы

Схема для отправки требующегося командного сигнала должна постоянно генерировать один и тот же сигнал 0xA2 по приведенному выше алгоритму, генерировать несущую частоту 38-40 кГц и выдавать модулированный сигнал.

С помощью микроконтроллера AVR можно как генерировать кодовую последовательность требуемой длительности так  и генерировать несущую частоту (аппаратный ШИМ). Модуляция для получения результирующего сингала осуществляется путем подключения IR светодиода между выходом ШИМ и выходом кодовой последовательности команды.

Простейшая схема  и прототип устройства  показаны на рисунке 3.

В качестве генератора сигнала использован микроконтроллер ATtiny13A с питанием 4.8В от 4 NiMn аккумуляторов , контроллер тактируется от внутреннего генератора частотой 9.6 МГц.

В данной схеме несущий сигнал частотой 40кГц снимается с вывода 5 (OC0A) модулирующий сигнал с вывода  3 (PB4)

 

Осцилограмма на выходе генератора вывод 5 (OC0A)

 

Рис 3. Прототип устройства

Количество деталей минимально, фактически только обвязка Reset.

Устройство по данной схеме было собрано и некоторое время эксплуатировалось, при этом появились очевидные недостатки:

  • быстрый разряд батареи поскольку включенное с утра выключалось только по приходу с работы;
  • неудобство зарядки-приходилось разбирать корпус чтобы достать аккумуляторы;
  • кнопка с фиксацией иногда по ошибке оставлялась или выключеной или наоборот включенной.
  • Отсутствовал индикатор разряда

 После чего схема была радикально переработана добавлена функция включения/отключения с одной кнопки, автоотключение по времени, индикация разряда  и зарядное устройство.

Финальная схема представлена на рисунке 4.

 

Рис. 4. Схема генератора.

Порядок  работы устройства:

При нажатии на кнопку SB1 напряжение питания поступает на вывод 6 (PB1) и через диод VD1V  на вход питания 8 (VCC) микроконтроллера U1V, после инициализации контроллера появляется  высокий уровень  на выводе  2(PB3), что приводит к открыванию транзисторов Q1V, Q2V  при этом зажигается  светодиод индикатора питания НV1.

После отпускания кнопки SB1 запускается бесконечный цикл генерации командного сигнала, несущая частота снимается на выводе 5 (OC0A) модулирующий сигнал на выводе 3 (PB4) присоединенных соответственно к аноду и катоду   инфракрасного светодиода HV2, а на выводе 6 (PB1) устанавливается низкий уровень к которому вывод "притянут" через сопротивление R3V 10кОм,  появлению же на  PB1 высокого логического уровня с коллектора Q2V препятствует диод VD1V. 

Для выключения устройства, достаточно нажать и удерживать кнопку SB1, при этом, на выводе 6 (PB1) устанавливается высокий уровень и после небольшой выдержки, программно,  на выводе 2(PB3) уровень изменяется на низкий, транзисторы Q1V, Q2V закрываются индикатор питания НV1 гаснет, после отпускания кнопки SB1 устройство прекращает работу. В начальной версии вывод 2(PB3) был притянут к земле резистором, но практика использования показала, что достаточно внутреннего резистора контроллера и внешний резистор был исключен.

Принцип включения одной кнопкой сделан на примере из статьи опубликованной в журнале Радио №10 за 2002г. (стр. 26). 

Индикатор разряда

Индикатор разряда батареи до 3..3,5В выполнен на TL431,  светодиод НD3, включенный по инверсной схеме, светится только когда микросхема TL431 заперта.

Когда контролируемое значение напряжения превосходит уровень, определенный делителем R11V и R12V, микросхема TL431 открывается, и ток течет через сопротивление R10V и выводы 3-2 микросхемы TL431. На микросхеме в этот момент существует падение напряжения около 2В, и его явно не хватает для свечения светодиода. Для стопроцентного предотвращения загорания светодиода в его цепь дополнительно включены 2 диода типа 4148.

В момент, когда исследуемая величина окажется меньше порога определенного делителем R11V и R12V, микросхема TL431 закроется, и на ее выходе потенциал будет значительно выше 2В, вследствие этого светодиод HD3 засветится.

Зарядное устройство

Схема зарядного устройства взятая из Data Sheet на МС33340 приведена на рисунке 5 и  не представляет какого либо научного интереса, работа ее описана в [5] там же есть программа для расчета. Расчет элементов выполнен под питание от  7,5 В/1500 мА сетевого адаптера снятого с древнего свича, это на пределе возможностей, но зато не греется LM317.

Разведенная плата зарядника у меня уже была сделана под адаптер на 18В, но  поскольку в данном случае питающее напряжение не превышает 18В то устанавливать стабилизатор IC3  не потребовалось  вместо него поставлена перемычка JVSS (например smd резистор 1206 с нулевым сопротивлением) под которую есть место на печатной плате. При желании схема может быть перерасчитана и на другое напряжение  питания. 

Для подключения сетевого адаптера установлен разъем типа DC-022 схема подключения указана на рисунке 4. При подключении внешнего адаптера размыкаются контакты 2 и 3 разъема разрывая "земляную" цепь питания генератора, загорается светодиод индикатора зарядного питания HL2.  О исправности зарядного устройства и нормальном ходе зарядки можно судить по непрерывному миганию светодиода "контроль заряда" HL1. После того как индикатор HL1 перестанет мигать и будет светить непрерывно, адаптер можно отключить, батареи заряжены.   

 

 

 Рис 5.  Схема зарядного устройства.

Перечень деталей

Использованы  компоненты SMD для уменьшения количества сверлений и габаритов. Список деталей приведен таблице по ссылке в конце статьи.

Для подключения сетевого адаптера установлен разъем типа DC-022

Кнопка типа PBS33B

Батарейный отсек на 4 аккуимултора АА типа KLS5-809-B 

Замена транзисторов Q1V, Q2V возможна на любые подходящие  с током коллектора не менее 300мА например BC807,BC817 в корпусе SO-23-3.

Прошивка 

Файл прошивки в формате .hex находится в архиве по ссылке в конце статьи.

В настройках фузов достаточно выбрать внутренний источник тактирования "Внутренний RC генератор 9,6МГц".  И отключить внутренний делитель на 8 (CLKDIV8).

Программа написана на C в WinAVR ссылка на исходник внизу страницы.  Прошивка ATTINY13 формата SOP-8 выполнялась  пограмматором AWRProg в самодельной зажимной колодке, как вариант программировать можно при распаяной на плату одной микросхеме контроллера  с обвязкой по RESET путем подпайки проводов на нужные контактные площадки, затем установить остальные детали, проверить работоспособность и провода программатора отпаять от контроллера. При проверке работоспособности программатор необходимо отключать.

Сборка и настройка. 

Печатная плата односторонняя под SMD монтаж (с одной маааленькой перемычкой S1) разработана в ALTIUM, герберы годные под ЛУТ  и на завод приложены к статье.

расположение элементов на плате показано на Рисунке 6

 

Рис.6 Расположение радиоэлементов на плате

 

Схема соединений с батареей и гнездом подключения стевого адаптера показана на рисунке 4.

Плата довольно легко вытравилась в домашних условиях перекисью и лимонной кислотой (см. рисунок 7).

 

Рис 7. Печатная плата 

Корпус устройства состоит и двух частей соединенных на винтах, нижняя часть это корпус G1202 , а верхняя из стакана под карандаши "от КОМУСА", для эстетичного внешнего вида на  крышку и в местах крепления винтами наклеена черная пленка.

В верхней части нижнего корпуса просверлены 4 отверстия под светодиоды 

слева направо расположены индикаторы два индикатора HL1 "контроль заряда" и HL2 наличие "зарядного напряжения", на противоположной стороне корпуса индикатор разряда батареи HD3 и индикатор вкл/выкл HD1.   

 

Правильно собранное устройство начинает работать сразу и в особой наладке не нуждается. 

Поскольку шина земли у генератора и у зарядного устройства изначально разделены и соединяются на гнезде внешнего питания, возможна раздельная проверка работы зарядного устройства и генератора, а так же подстройка делителя напряжения путем подачи напряжения 3..3,5В на разъем P3V, собственно подстройка делителя напряжения для TL431 выполняется по указаниям на схеме (см. рисунок 4)

 Видео работы устройства (ссылка)

Использованные источники

1.Координатор движения для Roomba

2.DIY Virtual Walls??

3.Small Virtual Wall for iRobot Roomba

4.Pronto IR формат

5. Зарядное устройство  для шуруповерта на MC33340


Файлы:
Печатная плата в формате Gerber и файл для ЛУТ
Исходник и прошивка hex
Список компонентов


Все вопросы в Форум.


ID: 2564

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

28 6 7