Устройство этой статьи является, на самом деле, не совсем новым. Оно было сделано и отлажено довольно много времени назад, но я все никак не мог выбраться набрать статью. И вот теперь, когда в разработке новые устройства с применением ZiChip, в перспективе позволяющие более гибко работать с логикой работы, у меня вообще появились сомнения по поводу необходимости публикации этой статьи. Но раз уж устройство собрано, отлажено и работает, решил его показать в блоге. Тем более будет видна разница между подобными устройствами с и без применения ZiChip. Описание будет кратким без подробностей.
Итак, устройство этой статьи является «старшим братом» подобного устройства на ATtiny13 и было создано в ответ на просьбы пользователей по расширению функционала последнего.
Новое устройство умеет:
— работать с 7-ю цифровыми и 2-мя ШИМ – выходами;
— управлять нагрузками, как с пульта, так и с нескольких клавиш на плате;
— запоминать состояние выходов в энергонезависимой памяти и восстанавливать их;
— управляться и выдавать отчеты о выполненных действиях по UART.
Конструкция устройства
В качестве основы для устройства была задействована плата сенсорного драйвера,
соответственно и схема подобная
Прошивка для микроконтроллера
099-T2313-IR-to-PIN.zip (3529 Загрузок)
099-fuse.png (4210 Загрузок)
Напоминаю:Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставятся инверсно.
Как программировать микроконтроллеры читаем в FAQ.
Изучение кнопок пульта
— производится аналогично устройству на ATtiny13 – режим обучения включается по длительному зажатию кнопки пульта.
Последовательность изучения кнопок пульта следующая:
1 Увеличение H
2 Уменьшение H
3 Увеличение I
4 Уменьшение I
5 Включение/отключение A
6 Включение/отключение B
7 Включение/отключение C
8 Включение/отключение D
9 Включение/отключение E
10 Включение/отключение F
11 Включение/отключение G
12 Все выключить
13 Все включить
14 Сохранить 1
15 Восстановить 1
16 Сохранить 2
17 Восстановить 2
Если какая-либо из команд не нужна – нужно нажимать уже изученную клавишу.
Устройство имеет расширенный перечень команд и любое действие с выходами можно произвести через UART.
Настройки UART
Скорость передачи – 9600;
Количество бит данных – 8;
Бит четности – нет;
Количество стоп-бит – 1.
Действия по командам UART:
— x0 — выключение нагрузки x,
где x может быть от A до G (например «B0» — отключение второй нагрузки);
— x1 — включение нагрузки x,
где x может быть от A до G (например «C1» — включение третей нагрузки);
— Hy — изменение уровня (ШИМ) на нагрузке Н,
где y может быть (бинарное однобайтовое значение) от 0-(выключено) до 255-(максимум);
— Iy — изменение уровня (ШИМ) на нагрузке I,
где у может быть (бинарное однобайтовое значение) от 0-(выключено) до 255-(максимум);
— =0 — выключить все;
— =1 — включить все;
— [0 — запомнить состояние нагрузок в ячейку 1;
— [1 — восстановить состояние нагрузок из ячейки 1;
— {0 — запомнить состояние нагрузок в ячейку 2;
— {1 — восстановить состояние нагрузок из ячейки 2;
— ? — выдать по UART текущего состояния нагрузок
формат выданной посылки будет иметь вид «A1B0C0D0E1F0HхIх»,
где A1 — включена нагрузка A, A0 — выключена нагрузка A (и так для остальных цифровых выходов)
Hx и Ix — уровень на аналоговых выходах H и I, (x — бинарное однобайтовое значение 0-255).
При выполнении действий с пульта или кнопок, по UART выдаются коды команд:
— A — G — переключение нагрузок соответственно A – G;
— H и h – соответственно, увеличение и уменьшение аналогового канала H;
— I и i – соответственно, увеличение и уменьшение аналогового канала I;
— 1 — все включить;
— 0 — все выключить;
— s — запомнить состояние в ячейку 1;
— r — восстановить из ячейки 1;
— S — запомнить состояние в ячейку 2;
— R — восстановить из ячейки 2.
Данное устройство уже было опробовано в действии пользователем MechanicCDRR – отзывы положительные. Если решите попробовать и Вы – жду обратной связи.
Материалы читателей блога.
1 Платка от Алексея
[Загрузка не найдена]
Файлы статьи:
099-Tiny2313-IR-to-PIN-schem.zip (2937 Загрузок)
099-source-T2313-IR-to-PIN.zip (Одна Загрузка)
Если вас не затруднит, пришлите пожалуйста прошивку данного устройства без залипания операций.
Тоесть пока держишь кнопку в нажатом состоянии канал работает и включает соответственно определенную нагрузку, отпустил, отключилась нагрузка. Очень нужно именно такое использование.
С Уважением. tolyk11@ya.ru
Привет!
Нет такого.
Доброго времени суток.
А нет ли у Вас наработки контроллера RGB c modbus rtu?
среда разработки http://algrom.net/russian.html
Скажите пожалуйста, в чём написан Ваш исходник (lst, alg), я пробовал C++Builder 6 а он открывает cpp, bpg, bpr, bpk. На форуме нашёл (нажал кнопку — лог.1, отпустил — 0). Но он без исходника.
Мне нужно таких только две кнопки, остальные как в Вашем. И ШИМ хочу подправить: на высокой частоте двигатель пищит но не крутится, включается только на максимуме.
Спасибо.
По этому устройству делал много модификаций
посмотрите — может найдете что подходящее http://www.forum.getchip.net/viewtopic.php?f=24&t=438&p=6672&hilit=Mod%23099#p6672
Повторил игрушку Машинка на ИК управлении Attiny2313
там есть ссылка на Ваш проект, и столкнулся с проблемками. Шим выхода (I,H) не вылючают друг-друга (для Н-моста гибель). Тоже с поворотами: было бы замечательно что б любых два выхода работали только при нажатой кнопке пульта. Не охота разбирать игрушку, не поможете с прошивкой?
Попробовал применить шаблон для создания устройства http://www.getchip.net/posts/131-shablony-shim-vykhoda-knopki/
ух ты это вообще будет круто тогда можно будет что в голову придет то и сделать и вас не придется беспокоить, отличная идея! спасибо за вашу помощь.
Привет.
Я не забыл. Более того, на базе этой просьбы родилась идея сделать шаблоны программ под Билдер, чем я активно сейчас и занимаюсь. Эти шаблоны позволят даже начинающему создавать/править проекты.
Уже почти готова первая версия шаблонов, а вместе с шаблонами будет готово и это устройство (на создание из шаблонов устройства уйдет от силы 5 минут).
http://www.forum.getchip.net/viewtopic.php?f=18&t=743
Дорого времени суток Getchiper можно узнать как там у вас с прогрессом модернизации данного IR модуля? А то без этого девайса не могу завершить свой проект! Спасибо за понимание.
ОК, тогда делаю на тини2313
Да все верно, а принципе можно и на Tiny2313 все это умастить ограничившись 4мя цифровыми выходами (один из них без фиксации, для смены режимов работы RGB ленты) и одним выходом ШИМ. А на все остальные входы установить кнопки управления нагрузками, в итоге будут задействованы 11 выводов МК Tiny2313 и в итоге даже 1 вывод МК без дела останется.
Значит:
1 — выход ШИМ
7 — выходов цифровых
2 — входа регулировки ШИМ
7 — входов управления цифрой
Правильно?
Тини 2313 — не подходит по выводам.
Могу сделать на ATmega328 (чтоб на ардуине можно было запустить)
для дешевизны можно будет пересобрать проект на меге48 или 88
(на меге8 точно не буду делать — неудобная она)
Ну вот смотрите, возьмем за основу телевизор им можна управлять как пультом так и кнопками на панеле регулировка громкостью это шим вывод (в схеме должно быть 2 таких вывода) а кнопки переключения каналов и тд.тп это выводы управления нагрузками (их должно быть в данной схеме 5 или 7 из которых 5 каналов работают в режиме фиксации тоесть нажал кнопку уровень высокий 1 нажал кнопку еще раз уровень низкий 0 а остальные 2 вивода работают без фиксации нажал кнопку уровень высокий, отпустил кнопку уровень низкий) выход на UART не требуется. И такие функции как запись данного положения на память или восстановления из памяти и сброс всех положений тоже не требуются исключительно только управление нагрузками. Такую схему можно даже осуществить на Atmega8. Спасибо за понимание.
Нужна схемка устройства, а то не очень понятно как оно должно работать.
(ну или более понятное описание). Например я не понял как пятью кнопками управлять пятью выходами +2ШИМ?
Добрый день Getchiper каковы прогнозы с изменением данной схемы? Есть ли какая то надежда?
Благодарю, буду очень признателен!
Разберусь с текущими вопросами — попробуем сделать модификацию.
Увы уже всё перешерстил и ничего подходящего не нашел 🙁
Было наделано много модов по ИК-управлению. Смотрели?
http://www.forum.getchip.net/viewforum.php?f=24
Еще есть улученный вариант http://www.getchip.net/posts/109-modul-keypad_ir_to_uart-formirovatel-uart-soobshhenijj/
Здравствуйте GetChiper меня интересуют не большие изменения в схеме и возможно в прошивке, а именно порт UART мне не нужен, в данную схему нужно задействовать 5 кнопок управления нагрузками на самой плате от А до Е + 2 ШИМ Вывода (и естественно 5 кнопок от А до Е + 2 ШИМ Вывода что бы работали и от пульта) и еще нужно что бы один из выводов работал без фиксации (то есть нажал кнопку на пульте загорелся светодиод отпустил кнопку светодиод погас) Данная схема очень нужна в одном проекте буду очень признателен за помощь!
@GetChiper
Очень жаль. Спасибо за быстрый ответ.
PS UART не нужен, выводы 2-3 задействовать как 4-5
Просто перекомпилировать не получится — слишком много чего не хватает в нем по сравнению с теперешней моделью
Возможно ли перекомпилировать исходник под AT90S2313? А то валяются без дела.
Вот так это реализуется:
Add(MainForm,2953706,105,77)
{
}
Add(COM,12819120,231,147)
{
}
Add(Convertor,1040357,161,168)
{
Mode=4
link(onResult,12819120:doWrite,[])
}
Скопируй код выше и вставь на форме.
GetChiper можно посмотреть схему для HiAsm,а то я что-то ни как не пойму реализацию данного компонента.
Достаточно перед элементом ком-порта поставить конвертор и можно слать любые данные.
Add(Convertor,10416971,399,105)
{
Mode=4
Digits=0
}
Программу делаю в HiAsm и у меня ни как не получается отправить в com порт такие бинарные значения ШИМ. Можно ли сделать так «H»=10 а «h»=-10.
Почему в самой Windows-программе не приращивать бинарное значение?
Это вроде как правильней — в любой момент времени понятно что там на выходе.
В противном случае придется подавать определенное количество буковок (а это количество может быть вплоть до 255)
Увы нет подходящего для меня.Мне нужен весь функционал этого устройства но вот управление ШИМ по UART нужно как я говорил выше.Причина такой просьбы делаю программу по Windows для этого устройства.
А это устройство (http://www.getchip.net/posts/110-modul-uart_to_pin-upravlenie-nagruzkami/) ни в какой модификации не подойдет?
Уважаемый GetChiper устройство просто класс.У меня есть просьба немного подправить прошивку в плане управления по UART а именно на ШИМ нагрузках H и I вместо бинарных значений мне хотелось бы так: увеличение ШИМ «H»;»I» а уменьшение ШИМ «h»;»i» и быстрое отключение «H0″;»I0» или «h0″;»i0»
работает отменно, респект по всем пунктом!!!!
@GetChiper
Эх, логично! Спасибо огромное!!!!!
В этом случае нужно взять другой пульт (который заведомо не будет использоваться рядом с устройством) и изучить с него первую кнопку
Евгений как всегда на высоте 🙂
Один вопрос по программированию кнопок: «Если какая-либо из команд не нужна – нужно нажимать уже изученную клавишу». Первая команда, как ни крути, всегда запрограммируется на какую-нибудь кнопку. Как поступить, если первая команда не нужна, а кнопок не так много? Только путем изменения кода?
Спасибо!
Модификации смотрел? вроде там чегото было http://www.forum.getchip.net/viewforum.php?f=24
Добрый день, уважаемый GetChiper.
Возможно ли в прошивку добавить таймер на два часа на отключение всех включеных назрузок если в течении этого времени не было на ИК прииемник воздействия ЛЮБЫМ пультом. Цель перед сном ставлю телек и тюнер на таймер хотелось бы , что бы с них снималось питание через 2 часа (соответсвенно я сплю пультами не клацаю ),чтобы не находились в дежурном режиме всю ночь.
– Hy — изменение уровня (ШИМ) на нагрузке Н,
где y может быть (бинарное однобайтовое значение) от 0-(выключено) до 255-(максимум)
y — это один байт.
в своем терминале посмотрите как передавать бинарные данные. Например в моем терминале бинарные данные передаются как $xx — шестнадцатеричный формат, или #xxx — десятичный.
Соответственно вышеприведенная команда в терминале будет выглядеть так «H#124»
Еще вопрос появился в каком формате отправлять данные чтобы диммировать выхода, а то че то отправляю как сказанно H255 и ничего. а если после H символ из аски то регулируется )
@GetChiper
Спасибо за быстрый ответ.Оказалось что внутренний генератор работает не стабильно и поэтому пришлось тактировать внешним кварцем на 8Мгц с выставлением соответственных фьюзов.Сейчас все работает без проблем.Спасибо Вам большое.
Попробуйте разное количество стоп-бит установить для UART
для подключения использую ft232 usb-com
Всем привет. Столкнулся с проблемой передачи данных по uart . при нажатии кнопки на пульте данные приходят, а вот если на мк отправить то ни чего не происходит . проверял осцилографом данные приходят на мк . пробовал прошивку от управления нагрузками по uart все прекрасно работает. что может быть всю голову сломал уже.
@geodio
разобрался,спс
скажите а как будет пульт обучаться если ножку 7 которая идёт на приёмник мы закоротим на землю? спс
Конечно, будем продолжать 🙂
Уважаемый Евгений, с нетерпением ждем от вас новых проектов, особенно с такой интригующей системой как ZiChip, но управлять отдельно стоящим, без какой-либо сети эффектором системой ZiChip возможно будет просто нерационально. Поэтому простые проекты тоже нужны, особенно для таких популярных сейчас RGB лент. Спасибо за ответы.