Радиоуправление. Переходим на МК.
Re: Радиоуправление. Переходим на МК.
Вы как всегда правы, вместо концевиков предлагаю датчики хола или герконы. Конструкция должна быть простой и надежной. Буржуйских пультов мы тоже не ведали
в нашем колхозе таких игрушек нет , не по карману. Соберем свой пульт в посылочном ящике. На счет аккомы и антенн то я кораблик на луну собрался запускать. Вся конструкция будет самодельной, из подручных средств, но вид должен быть маломальски эстетичным.
Re: Радиоуправление: делаем сами.
ну накидайте тогда простенькую программку )))
Вообще частоту можно измерить разными методами:
1- измерить количество импульсов (количество периодов) за определенное время (время постоянное)
2- измерить длительность одного периода.
3- измерить длительность импульса положительной полуволны одного периода.

Последний вариант самый простой для МК. Хотя и менее точный. Программа получается несколько строчек.
Вообще частоту можно измерить разными методами:
1- измерить количество импульсов (количество периодов) за определенное время (время постоянное)
2- измерить длительность одного периода.
3- измерить длительность импульса положительной полуволны одного периода.
Последний вариант самый простой для МК. Хотя и менее точный. Программа получается несколько строчек.
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Радиоуправление: делаем сами.
да я не умею ((( программы состовлять. могу алгоритм написать)) по логике вещей. с этим у меня вроде проблем нету. измерять длинну положительной полуволны я почему то сразу откидывал. я же размышлял. по моему самая точность будет в подсчете положительных полуволн за определенное время. потом можно это число сравнивать с опорным. и к тому к которому ближе выдавать нужный ответ. вот только пока не решил как сделать так что бы можно было две команды или три посылать. если это генератор на не555 то нажимая две кнопки сразу мы получим среднее арифметическое сопротивление и частота будет немного не та. но я решил сейчас эту задачу. переключая сами кнопки по очереди мы получим на выходе нужные частоты в виде импульсов. график потом нарисую для наглядности
Re: Радиоуправление. Переходим на МК.
roman.com писал(а): Для этого не нужно покупать специальную сервомашинку.
"Специальные сервомашинки" с усилием 3 кг/см стоят в Китае от 2-3$,с пересылкой 3-4$/
Более мощные,до 10 кг/см - от 7-8 $.Абсолютная непроблема. И рукоблудием заниматься
не требуется.Наши братья-китайцы уже обо всём позаботились.
Посмотрите,например на Hobby King.com .
http://www.hobbyking.com/hobbyking/stor ... _50g_.html
http://www.hobbyking.com/hobbyking/stor ... 1_49g.html
Re: Радиоуправление: делаем сами.
mixon46 писал(а):да я не умею программы состовлять...
Тогда идём и читаем "основы". Например тут http://www.123avr.com/05.htm
Вот например накидал "на ходу" простейшую программу специально для тебя ))) на Си (универсальный язык программирования) для измерения длительности импульсов на МК:
Вот так вот можно заставить МК измерять длительность импульсов входного сигнала. Аналогично можно считать периоды и количество периодов ... и всё что угодно, добавив ещё несколько строчек ))))
Настройка заключается в установки времени опроса ножки МК. Для этого можно менять тактовую частоту МК или установить задержки между опросами.
- Вложения
-
- rx1.txt
- (1.21 КБ) 229 скачиваний
Re: Радиоуправление. Переходим на МК.
Роман, а почему Вы не используете радиомодули? Точнее, кроме как "делаю все сам" есть иные причины? Это упростило-бы радиоуправление существенно.
Re: Радиоуправление. Переходим на МК.
Других причин нет. Мне интересно всё делать самому. Задача: разобраться во всех тонкостях работы радиосистем. Когда всё собираешь сам, то можно всё измерить и понять как всё работает.
Тех. задание:

Схема пульта будет такая:

Делать автоматический регулятор мощности при дальности 200 метров не вижу смысла. Экономия будет не более 20...30 mA. Это только усложнит схему. Хотя сделать можно.
Тех. задание:
Схема пульта будет такая:
Делать автоматический регулятор мощности при дальности 200 метров не вижу смысла. Экономия будет не более 20...30 mA. Это только усложнит схему. Хотя сделать можно.

- Вложения
-
- пульт.JPG
- (218.26 КБ) 364 скачивания
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Радиоуправление: делаем сами.
спасибо за разьяснение языка программирования. )) тут его надо изучать и изучать. )) много же тонкостей всяких))
а что у тебя тут получаеться. от тактовой частоты мк у тебя будет считать количество импульсов в импульсе. а что если длина ипмульса 1 мгц и частота мк тоже 1 мгц. он только 1 импульс насчитает. и потом еще пропустит некоторое количество импульсов за которые проц будет совершать подсчеты.
вот допустим как бы сделал я. запустил бы проц от внутреннего генератора. а 16 битный таймер от часового кварца. каждую секунду он бы сосчитал за 32768 гц правильно. но секунда это же много. тоесть поставил бы таймер на более маленький момент времени. тоесть с положительным входным импульсом запускаем таймер. считаем сколько испульсов за это время работы таймера насчитает импульсов. определяем частоту и сравниваем с двумя частотами верхней и нижней что является диапазоном. и в случае схождения с двумя частотами выдаем нужный сигнал на выход и оставляем до следующего подсчета. если подтвердится то оставляем сигнал если нет то убираем. ну както так заумно)))
а что у тебя тут получаеться. от тактовой частоты мк у тебя будет считать количество импульсов в импульсе. а что если длина ипмульса 1 мгц и частота мк тоже 1 мгц. он только 1 импульс насчитает. и потом еще пропустит некоторое количество импульсов за которые проц будет совершать подсчеты.
вот допустим как бы сделал я. запустил бы проц от внутреннего генератора. а 16 битный таймер от часового кварца. каждую секунду он бы сосчитал за 32768 гц правильно. но секунда это же много. тоесть поставил бы таймер на более маленький момент времени. тоесть с положительным входным импульсом запускаем таймер. считаем сколько испульсов за это время работы таймера насчитает импульсов. определяем частоту и сравниваем с двумя частотами верхней и нижней что является диапазоном. и в случае схождения с двумя частотами выдаем нужный сигнал на выход и оставляем до следующего подсчета. если подтвердится то оставляем сигнал если нет то убираем. ну както так заумно)))
Re: Радиоуправление. Переходим на МК.
Может убрать контроль аккомы пульта с меги, а сделать его отдельно, памяти с операциями меньше нужно и порта освободятся. Кораблик вышел по высшему разряду. 
Re: Радиоуправление: делаем сами.
Вот поэтому МК могут работать как от внутреннего тактового генератора, так и от внешнего. Например к МК Atmega можно припаять резистор и вручную крутить частоту тактового генератора:mixon46 писал(а):а что если длина ипмульса 1 мгц и частота мк тоже 1 мгц.
Но лучше выбирать стандартные частоты. А задержку между импульсами опроса задавать программно. Например так:
Т.е. МК проверил напряжение на ножке PORTС.0, затем подождал например 478 микросекунд delay_us(478) и опять проверил... и опять подождал... и так бесконечно, пока на ножке будет "1" (т.е. "+"). Потом посчитал и сделал вывод))
Подсчёт и вывод информации занимает несколько тактов ЦП МК... т.е. быстро
Re: Радиоуправление. Переходим на МК.
А вот схема кораблика:

Зачем убирать? Памяти в МК ещё более чем достаточно. Можно два кораблика подключить к одному МК)) И портов пока хватает.
Вариант 2: Моторная лодка. ))
Крнструкция проще. если Если взять шаговый двигатель от старого принтера, то конструкция получится вообще без редукторов.
Не знаю какаю точность индикатора делать. Зависит от аккумулятора. Напряжение заряда и разряда. МК может измерять напряжение 0...5 V, с точностью до 0,005 V.
Зачем убирать? Памяти в МК ещё более чем достаточно. Можно два кораблика подключить к одному МК)) И портов пока хватает.
Вариант 2: Моторная лодка. ))
Не знаю какаю точность индикатора делать. Зависит от аккумулятора. Напряжение заряда и разряда. МК может измерять напряжение 0...5 V, с точностью до 0,005 V.
- Вложения
-
- кораблик.JPG
- (254.02 КБ) 542 скачивания
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Радиоуправление: делаем сами.
как он определит 489 мксек? это примерно пол секунды. я не могу вкурить. я запутался. надо идти спать голова уже не варит))) задержка я так понял просто съедает определенное количество тактов процессора при этом проц просто пропускает такт и ничего не делает
Re: Радиоуправление: делаем сами.
МК с завода идет уже с настроенным внутренним генератором. МК читает нашу программу... дойдя до команды delay_us(478) МК ничего не делает, а просто сидит и отсчитывает "в уме" 478 микросекунды
))) ... затем читает нашу программу дальше.
Объяснение работы МК "на пальцах"
Объяснение работы МК "на пальцах"
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Радиоуправление: делаем сами.
и какая максимальная задержка может быть в тини2313? и что если вообще без задержки. что б он каждый такт проверял. тогда получится каждый второй такт будет проверять. а потом такт возврата с начала
для частоты 1 кгц частота выборок (опросов порта) 2 кгц или же 500 мксек слишком маленькая частота. она должна быть хотя бы в 10 раз больше. тоесть задержка 100 мксек. 10 кгц. но не меньше. для точности
для частоты 1 кгц частота выборок (опросов порта) 2 кгц или же 500 мксек слишком маленькая частота. она должна быть хотя бы в 10 раз больше. тоесть задержка 100 мксек. 10 кгц. но не меньше. для точности
Re: Радиоуправление: делаем сами.
Открываем cvavr... забиваем delay_ms(1000000000000000000); - работает))) Забиваем delay_ms(10000000000000000000); - пишет "перегрузка" - не работает )))
Значит максимальная задержка 1.000.000.000.000.000.000 милисекунд. Т.е. 1.000.000.000.000.000 секунд. 277.777.777.777 часов. Т.е. 31.709.791 лет )))
Мало? Тогда пишем подряд...
delay_ms(10000000000000000000);
delay_ms(10000000000000000000);
delay_ms(10000000000000000000);
....
и так около 10000 раз. Пока память МК не закончится. ))))
Да 478 микросеккунд - это я просто для примера написал. Задерка может начинатся от 2-х микросекунд. Меньше МК не успевает сосчитать.))) А максимум ... я никогда не считал.
каждый второй такт будет проверять? нет. Я специально написал: while (PINC.0==1) { };. Это значит что МК будет считать до тех пор, пока на ножке PINC.0 будет "1". МК будет бесконечно в этом месте программы сидеть, пока мы не снимем питание с ножки.
Значит максимальная задержка 1.000.000.000.000.000.000 милисекунд. Т.е. 1.000.000.000.000.000 секунд. 277.777.777.777 часов. Т.е. 31.709.791 лет )))
delay_ms(10000000000000000000);
delay_ms(10000000000000000000);
delay_ms(10000000000000000000);
....
и так около 10000 раз. Пока память МК не закончится. ))))
Да 478 микросеккунд - это я просто для примера написал. Задерка может начинатся от 2-х микросекунд. Меньше МК не успевает сосчитать.))) А максимум ... я никогда не считал.
каждый второй такт будет проверять? нет. Я специально написал: while (PINC.0==1) { };. Это значит что МК будет считать до тех пор, пока на ножке PINC.0 будет "1". МК будет бесконечно в этом месте программы сидеть, пока мы не снимем питание с ножки.
Последний раз редактировалось roman.com Вт ноя 25, 2014 00:18:31, всего редактировалось 1 раз.
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Радиоуправление: делаем сами.
да ну неужели. сколько там разрядов то что он до стольки считает. не 64 ли? как бы не больше))))
каждые 478 мксек будет +1 прибавлять? все похоже замучаю вас вопросами xD
каждые 478 мксек будет +1 прибавлять? все похоже замучаю вас вопросами xD
Re: Радиоуправление: делаем сами.
delay_ms - это не разряды. Это кусок программы. Можно написать свою программу задержки. Типа счётчик в счетчике. Счётчик 1000 в степени 1000 в степени 1000... )))) миллионы лет ))
Но это не суть вообще. Зачем это вообще?
Да. Через каждые 478 мксек МК будет +1 прибавлять... пока регистр не переполнится. Главное чтобы импульс закончился быстрей чем переполнится регистр - 255 - это максимум.
Но это не суть вообще. Зачем это вообще?
Да. Через каждые 478 мксек МК будет +1 прибавлять... пока регистр не переполнится. Главное чтобы импульс закончился быстрей чем переполнится регистр - 255 - это максимум.
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Радиоуправление: делаем сами.
ааа это я знаю про 255. есть еще внутренний ацп тоже 256 значений. и регистр идет рабочий толи с 16 до 32. меньшие не рабочие или что то в этом роде. не помню уже
Re: Радиоуправление: делаем сами.
внутренний ацп... чёто я в тини2313 не наблюдаю вообще АЦП... в ATmega8 10-ти разрядный (0...1024). Щас её мучаю. 
Надо нормальные даташиты качать и смотреть что там есть вообще...

Надо нормальные даташиты качать и смотреть что там есть вообще...