Программирование PIC16F84A в программе Realizer Gold
Я на этом языке написал программу реверсивного регулятора хода для автомоделей, и для судомоделей есть с раздраем. ШИМ формировал, аппаратным ШИМ-модулятором, есть не во всех процах, я использовал те процы где он есть.
Если заинтерисуешься помогу написать программу.
Сергей!
Хочу у Вас спросить совета.
Для кордовой копии необходимо реализовать следующие функции, - пропорциональное управление одной сервой (регулировка газа ДВСа) и передача нескольких дискретных команд (уборка-выпуск шасси, уборка выпуск посадочных щитков и т.д.). Передавать можно только по кордам (корды изолированные).
Каким образом это всё реализовать на микроконтроллере? Может, где-то есть готовые схемы?
Заранее спасибо!
Гляньте протокол 1Wire или RS485 (дайвер - MAX485 например) - вполне подойдет, только реализовывать программно придется если PIC16f84 использовать. Если нужно пропорционально менять значения - обратитесь к МК с АЦП.
для smy:
Решение видится не слишком сложное для PICa - весь цикл управления разбить на временные уставки, которые будут храниться в EPROM (их там можно потом менять).
Далее для для каждой уставки задаем соответственно положение рулей и обороты двигателя (для простоты реализации можно использовать внешний ESC)
Запускаем таймер с заданной уставкой. Рули и двиг выходят на соотв. режим.
Как уставка закончится - берем следующую и меняем режим и.т.д.
Циклограмма следущая - количество уставок по количеству участков бассейна. Каждая уставка характеризуется тремя параметрами:
длительность (TMR0)
положение рулей (программный ШИМ 1-2ms)
обороты двигателя(программный ШИМ 1-2ms).
ШИМ для серв можно программный написать (2 цикла всего)
Таймер смены уставок нехай по прерыванию срабатывает или просто проверять на переполнение в цикле.
Для крутизны можно прикрутить протокол RS232 для прграммирования всего девайса.
гляньте сайт bknd.com там для компилятора есть софтовая реализация RS232/
В принципе, все, что здесь написано можно реализовать на PIC12f629-675 всего 8 ног и со встроенным генератором))
Для кордовой копии необходимо реализовать следующие функции, - пропорциональное управление одной сервой (регулировка газа ДВСа) и передача нескольких дискретных команд (уборка-выпуск шасси, уборка выпуск посадочных щитков и т.д.). Передавать можно только по кордам (корды изолированные).
Каким образом это всё реализовать на микроконтроллере? Может, где-то есть готовые схемы?
Я делал год назад подобный проект, как раз для копии. Но там нет регулировки газа, т.к. газ должен передаваться по ещё одной отдельной корде. Я эту схему сделал, и её так и не применили. Под ваши нужны её нужно переделывать почти полностью. По кордам я передавал обычный РРМ который формировал программно. Но я тогда ещё не знал как передавать 1wire протокол. Оказалось в PIC Basic есть готовые команды, можно применить его. Но это для вас будет сложно. У меня сейчас нет времени, писать вам прогу, много работы, давайте сами. Заходите на форум picbasic.ru, и задавайте там вопросы, там много примеров. Вот посмотрите проект ниже, там передаётся 4 команды, три дискретные, и одна для выпуска шасси, с замедлением. Программу можно изменить добавить вместо одно дискретной, пропорциональный канал для регулятора хода. На кодере использовать АЦП, и его значение трансформировать в канальный импульс от 1 до 2 мс. Ничего сложного нужно только подумать, и почитать как пользоваться АЦП. На впоросы могу отвечать.
RS485 попроще будет в реализации. На МК используется стандартный UART и микросхема MAX485. можно и изолированную поставить - так ИМХО правильнее… протокол то промышленный и помехозащищенный относительно. Хотя ту наверное вопрос привычки)))
Сделал таймер! Класс, работает отлично! спасибо авторам разработки. Есть один вопрос по поводу прошивки- не очень хочется что б на плате стоял кварц, кабы не вылетал при падениях. Насколько трудно переделать программу под pic16f628й?
Насколько трудно переделать программу под pic16f628й?
Какую программу? Которая в 23 посту?
Да, к этой.
Щас в доводке еще один вариант есть, на тини25 и с потенциометром на газ, чуть позже выложу материалы.
Легко!
Вот для 16F628A
Кварц не нужно, работет внутренний генератор 4 мгц
Спасибо! Собрал, работает! Развел плату в pcad, мож кому пригодиться.
И еще выложу второй вариант таймера, разработка by valera_o, установка оборотов резистором, м/п attiny85(25).
Попытаюсь изложить то что от меня просят на примере запуска прямоходной копии подводной лодки:
по правилам соревнований модель нужно запустить в плавание со стартового мостика, в определенном квадрате она доложна погрузиться (отработала серва на руль глубины на погружение и через установленное время встала в нейтраль), пройти под водой определенное расстояние затем всплыть в нужном квадрате (отработала серва на руль глубины на всплытие и через определенное время встала в нейтраль) и пройти ворота, после ворот сбавить скорость и подойти к стенке бассейна где предположительно ее выловит спортсмен.
Выдерживать интервалы в контроллере не сложно, в С у AVR есть функция delay_ms, только встает вопрос вот как задержки регулировать.
Можно сделать как в схеме у KaptainKuk - задавать настройки переменными резисторами на плате, а считывать их показания (вольтаж) программно из АЦП. Правда это у Atmega, есть ли такое в PIC не знаю.
Правда это у Atmega, есть ли такое в PIC не знаю.
У PIc то же есть АЦП, и это реализовать то же можно. Но нужно учитаывать, что это всё бедет вводе, ну не всмысле погруженно в воду, а сырость всегда будет присутввовать, по этому контрукция должна быть максимально защищена от воды, переменники тут ставить нельзя. Тогда, регулировку интервалов времени нужно делать перемычками, а их получиться очень много, набор перемычек для каждого промежутка времени. Это габариты устройства, вес. очень хорошо было бы делать это программно с ноута например, через USB, или СОМ, которых сейчас уже не найдёшь на ноутах. Остаётся USB, а он требует спец микросхемы и сложного програмного обеспечения, т.е. цена вопроса для банальной подводной лодки не соизмерима. Наиболее дещёвый спомоб это много, много перемычек. Пока я ничего предложить не могу.
Остаётся USB, а он требует спец микросхемы и сложного програмного обеспечения,
Берешь старый усб шнурок для сотового - и вот тебе уарт(ттл)-усб конвертер. Софта сложного не надо - ведь по сути это тот же компорт. Аппаратный компорт - в большинстве микроконтроллеров есть (а где нет - можно и програмно). Не все так плохо, и уж совсем не все так трудно, как ты описал! Софт на компе - может быть вобще никчему. Вполне можно обойтись штатным гипертерминалом. Кстати, залив загрузчик - по этому же шнурочку и программировать потом чип можно. (насчет пиков не знаю, а с аврками проблем нет. Думаю с пиками - тоже)
Эххх))) гулять так гулять)))
www.terraelectronica.ru/catalog.php?ID=341&Search=…
Проверено - работает))
Загрузчики для PICов тоже существуют, провда в основном для средних и старших серий (16F873, 877)
ну не хочет Сергей с хидерами морочиться… Но уарт прост до безобразия. Для настройки пяти цифр - можно тупо терминал использовать. Дрова шнурка - стандартные. В общем то это проще.
Там дрова в комплекте… на ftdi.com … ниче придумывать не надо… Но если делать один эксклюзивный девайс, тогда да… да и шнурок можно купить - около 400р стоит везде))
Кстати, дрова на разные шнурки не всегда стандартные - все от чипа зависит
Да ладно! Чипов то всего штук 5 встречающихся, а шнуроки в евросети по 170 рублей.
З.Ы. Привет земляк!
Я про RS232-USB шнурки))) полнофункциональные… у нас они столько и стоят, хотя мож в москве и дешевле…
З.Ы. И тебе не хворать))
Ну в китае полноценные по 3-7 долларов с доставкой сюда. А я не про полноценные RS232, а про телефонные USB-TTL Uart. Это от каких-нибудь сименсов 25-45, эриксонов там 610 к примеру и старше… и т.д. Короче - шнурок для телефона с коробочкой. Обычно бонусом идет преобразователь в 6 вольт и выключатель:)
rcopen.com/forum/f8/topic204981 вот сделано, но слишком по моему для школьников, а так самое оно.