Программирование PIC16F84A в программе Realizer Gold

urfin
ubd:

Я на этом языке написал программу реверсивного регулятора хода для автомоделей, и для судомоделей есть с раздраем. ШИМ формировал, аппаратным ШИМ-модулятором, есть не во всех процах, я использовал те процы где он есть.
Если заинтерисуешься помогу написать программу.

Сергей!
Хочу у Вас спросить совета.
Для кордовой копии необходимо реализовать следующие функции, - пропорциональное управление одной сервой (регулировка газа ДВСа) и передача нескольких дискретных команд (уборка-выпуск шасси, уборка выпуск посадочных щитков и т.д.). Передавать можно только по кордам (корды изолированные).
Каким образом это всё реализовать на микроконтроллере? Может, где-то есть готовые схемы?
Заранее спасибо!

mikki

Гляньте протокол 1Wire или RS485 (дайвер - MAX485 например) - вполне подойдет, только реализовывать программно придется если PIC16f84 использовать. Если нужно пропорционально менять значения - обратитесь к МК с АЦП.

для smy:
Решение видится не слишком сложное для PICa - весь цикл управления разбить на временные уставки, которые будут храниться в EPROM (их там можно потом менять).
Далее для для каждой уставки задаем соответственно положение рулей и обороты двигателя (для простоты реализации можно использовать внешний ESC)
Запускаем таймер с заданной уставкой. Рули и двиг выходят на соотв. режим.
Как уставка закончится - берем следующую и меняем режим и.т.д.
Циклограмма следущая - количество уставок по количеству участков бассейна. Каждая уставка характеризуется тремя параметрами:
длительность (TMR0)
положение рулей (программный ШИМ 1-2ms)
обороты двигателя(программный ШИМ 1-2ms).

ШИМ для серв можно программный написать (2 цикла всего)
Таймер смены уставок нехай по прерыванию срабатывает или просто проверять на переполнение в цикле.
Для крутизны можно прикрутить протокол RS232 для прграммирования всего девайса.
гляньте сайт bknd.com там для компилятора есть софтовая реализация RS232/
В принципе, все, что здесь написано можно реализовать на PIC12f629-675 всего 8 ног и со встроенным генератором))

ubd

Для кордовой копии необходимо реализовать следующие функции, - пропорциональное управление одной сервой (регулировка газа ДВСа) и передача нескольких дискретных команд (уборка-выпуск шасси, уборка выпуск посадочных щитков и т.д.). Передавать можно только по кордам (корды изолированные).
Каким образом это всё реализовать на микроконтроллере? Может, где-то есть готовые схемы?

Я делал год назад подобный проект, как раз для копии. Но там нет регулировки газа, т.к. газ должен передаваться по ещё одной отдельной корде. Я эту схему сделал, и её так и не применили. Под ваши нужны её нужно переделывать почти полностью. По кордам я передавал обычный РРМ который формировал программно. Но я тогда ещё не знал как передавать 1wire протокол. Оказалось в PIC Basic есть готовые команды, можно применить его. Но это для вас будет сложно. У меня сейчас нет времени, писать вам прогу, много работы, давайте сами. Заходите на форум picbasic.ru, и задавайте там вопросы, там много примеров. Вот посмотрите проект ниже, там передаётся 4 команды, три дискретные, и одна для выпуска шасси, с замедлением. Программу можно изменить добавить вместо одно дискретной, пропорциональный канал для регулятора хода. На кодере использовать АЦП, и его значение трансформировать в канальный импульс от 1 до 2 мс. Ничего сложного нужно только подумать, и почитать как пользоваться АЦП. На впоросы могу отвечать.

Кодер - Декодер_4Ch.rar

mikki

RS485 попроще будет в реализации. На МК используется стандартный UART и микросхема MAX485. можно и изолированную поставить - так ИМХО правильнее… протокол то промышленный и помехозащищенный относительно. Хотя ту наверное вопрос привычки)))

16 days later
olegtur77
Yuriy:

В таком случае, на всякий случай выложу схемку, т.к. уже сделана печатная плата. Чтоб выводы попали в нужное место.
Кстати, а резисторы подтягивающие до 5В обязательны?

Сделал таймер! Класс, работает отлично! спасибо авторам разработки. Есть один вопрос по поводу прошивки- не очень хочется что б на плате стоял кварц, кабы не вылетал при падениях. Насколько трудно переделать программу под pic16f628й?

ubd

Насколько трудно переделать программу под pic16f628й?

Какую программу? Которая в 23 посту?

olegtur77

Да, к этой.
Щас в доводке еще один вариант есть, на тини25 и с потенциометром на газ, чуть позже выложу материалы.

ubd

Легко!
Вот для 16F628A
Кварц не нужно, работет внутренний генератор 4 мгц

Timer_ESC.rar

olegtur77

Спасибо! Собрал, работает! Развел плату в pcad, мож кому пригодиться.
И еще выложу второй вариант таймера, разработка by valera_o, установка оборотов резистором, м/п attiny85(25).

DVE
smy:

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

Выдерживать интервалы в контроллере не сложно, в С у AVR есть функция delay_ms, только встает вопрос вот как задержки регулировать.

Можно сделать как в схеме у KaptainKuk - задавать настройки переменными резисторами на плате, а считывать их показания (вольтаж) программно из АЦП. Правда это у Atmega, есть ли такое в PIC не знаю.

ubd

Правда это у Atmega, есть ли такое в PIC не знаю.

У PIc то же есть АЦП, и это реализовать то же можно. Но нужно учитаывать, что это всё бедет вводе, ну не всмысле погруженно в воду, а сырость всегда будет присутввовать, по этому контрукция должна быть максимально защищена от воды, переменники тут ставить нельзя. Тогда, регулировку интервалов времени нужно делать перемычками, а их получиться очень много, набор перемычек для каждого промежутка времени. Это габариты устройства, вес. очень хорошо было бы делать это программно с ноута например, через USB, или СОМ, которых сейчас уже не найдёшь на ноутах. Остаётся USB, а он требует спец микросхемы и сложного програмного обеспечения, т.е. цена вопроса для банальной подводной лодки не соизмерима. Наиболее дещёвый спомоб это много, много перемычек. Пока я ничего предложить не могу.

Aleksey_Gorelikov
ubd:

Остаётся USB, а он требует спец микросхемы и сложного програмного обеспечения,

Берешь старый усб шнурок для сотового - и вот тебе уарт(ттл)-усб конвертер. Софта сложного не надо - ведь по сути это тот же компорт. Аппаратный компорт - в большинстве микроконтроллеров есть (а где нет - можно и програмно). Не все так плохо, и уж совсем не все так трудно, как ты описал! Софт на компе - может быть вобще никчему. Вполне можно обойтись штатным гипертерминалом. Кстати, залив загрузчик - по этому же шнурочку и программировать потом чип можно. (насчет пиков не знаю, а с аврками проблем нет. Думаю с пиками - тоже)

Aleksey_Gorelikov

ну не хочет Сергей с хидерами морочиться… Но уарт прост до безобразия. Для настройки пяти цифр - можно тупо терминал использовать. Дрова шнурка - стандартные. В общем то это проще.

mikki

Там дрова в комплекте… на ftdi.com … ниче придумывать не надо… Но если делать один эксклюзивный девайс, тогда да… да и шнурок можно купить - около 400р стоит везде))
Кстати, дрова на разные шнурки не всегда стандартные - все от чипа зависит

Aleksey_Gorelikov

Да ладно! Чипов то всего штук 5 встречающихся, а шнуроки в евросети по 170 рублей.

З.Ы. Привет земляк!

mikki

Я про RS232-USB шнурки))) полнофункциональные… у нас они столько и стоят, хотя мож в москве и дешевле…

З.Ы. И тебе не хворать))

Aleksey_Gorelikov

Ну в китае полноценные по 3-7 долларов с доставкой сюда. А я не про полноценные RS232, а про телефонные USB-TTL Uart. Это от каких-нибудь сименсов 25-45, эриксонов там 610 к примеру и старше… и т.д. Короче - шнурок для телефона с коробочкой. Обычно бонусом идет преобразователь в 6 вольт и выключатель:)