Хочу сделать примитивную 4-х канальную аппаратуру. Маленькую. Для сына.
Моя аппаратура у него в ручках не помещается.
Я хочу переделать игрушечный пультик с 27 мГц на 2,4 для того чтобы можно было и управлять моделью и подключаться без проводов к симулятору.
На данном этапе имею два трёхосевых джойстика, ардуино нано и ВЧ-модуль от всем известной турниги.


Хочется пропорциональную аппаратурку, проблема только в программировании.
Отправлялся на форум Амперки в раздел "закажу проект", но там, к сожалению один программист зарядил ценник... ну просто не гуманный, второй за гуманный ценник, но не понимает (как я понял что такое PPM).
Читал статью:
Пульт управления своими руками или микроконтроллер для школьников+62
24 нояб. 2013 г., 17:09:43 | Александр Зайчиков Москва
Статья http://www.parkflyer.ru/blogs/view_entry/3090/
Но у меня эта конструкция не заработала.
Искал в интернете, но ничего подходящего не нашёл.

Как я думаю, длина импульса должна быть 20000мкс.
Каналов 4.
Исходя из того что ППМ обычно транслирует 8 каналов, а мы имеем 4, то скорее всего нужно сделать передачу 4-х каналов, дальше остальные четыре вывести в ноль - это примерно 1500 мкс на каждый. и длина импульса одного канала примерно 20 мкс. + пауза между каждым каналом, + синхропауза 2мкс, но общая длина импульса не должна превышать 20 мкс.
Вывод на 10-й пин, он поддерживает ШИМ, и использует 16 битный таймер.
Если кто-то может меня "вдуплить" в этом направлении, подскажите, пожалуйста.
В общем у меня загвоздка с программмой.
Моя аппаратура у него в ручках не помещается.
Я хочу переделать игрушечный пультик с 27 мГц на 2,4 для того чтобы можно было и управлять моделью и подключаться без проводов к симулятору.
На данном этапе имею два трёхосевых джойстика, ардуино нано и ВЧ-модуль от всем известной турниги.




Хочется пропорциональную аппаратурку, проблема только в программировании.
Отправлялся на форум Амперки в раздел "закажу проект", но там, к сожалению один программист зарядил ценник... ну просто не гуманный, второй за гуманный ценник, но не понимает (как я понял что такое PPM).
Читал статью:

24 нояб. 2013 г., 17:09:43 | Александр Зайчиков Москва

Но у меня эта конструкция не заработала.
Искал в интернете, но ничего подходящего не нашёл.


Как я думаю, длина импульса должна быть 20000мкс.
Каналов 4.
Исходя из того что ППМ обычно транслирует 8 каналов, а мы имеем 4, то скорее всего нужно сделать передачу 4-х каналов, дальше остальные четыре вывести в ноль - это примерно 1500 мкс на каждый. и длина импульса одного канала примерно 20 мкс. + пауза между каждым каналом, + синхропауза 2мкс, но общая длина импульса не должна превышать 20 мкс.
Вывод на 10-й пин, он поддерживает ШИМ, и использует 16 битный таймер.
Если кто-то может меня "вдуплить" в этом направлении, подскажите, пожалуйста.
В общем у меня загвоздка с программмой.
21 нояб. 2013 г., 16:26:27 | Александр Дегтярев Владикавказ
Поскольку пульт с джойстиками у вас есть, то нужно изготовить только плату и настроить. Схема есть, подробное описание есть, чертеж печатной платы есть, негатив есть, методика настройки есть. Паяльник нужен. Выходной сигнал РРМ с платы далее подать на собственно передатчик, который может быть на любую частоту, это не имеет значения. Ну и под передатчик нужно иметь приемник.
Первое сообщение ТС -
Всем привет!
Вот такая есть мысля, раз все кричат про кризис, а не сделать ли тогда кодер РРМ в минималином варианте но с максимальными при этом функциональными возможностями.
Ограничения такие:
1 исходник только на АССЕМБЛЕРЕ
2 пикушник например PIC16F876А или на край PIC16F877А, смд 8К памяти
3 дисплей от сот, скажем нокиа 3310
То-есть, интерестно, на сколько можно ужаться.
Конечно можно взять и чего пожирнее напр PIC18F4550 - 32К или вообще
PIC18F6722 - 128К, но это скучно, нет азарта.
для начала, хотябы вот...
Если заинтересовало-дерзайте :)
Олег, а смысл?
Т.е., в исходном предложении я не увиел образовательных моментов для сына, так зачем пыжится? На вторичном рынке четырехканалка (27...40МГц) стОит около 1100+ руб..... Не понимаю я.... Сорри....
#include <TimerOne.h>
volatile int delays[8]={
1800, 1700, 1600, 1500, 1400, 1300, 2200,2200};
byte i=0;
void setup()
{
Timer1.initialize();
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
Timer1.attachInterrupt(Timer1_action, 300);
}
byte state=false;
byte pulse=false;
void Timer1_action()
{
digitalWrite(13, state);
if(!pulse){
Timer1.setPeriod(300);
pulse=1;
}
else{
Timer1.setPeriod(delays-300);
pulse=0;
i++;
}
state=!state;
if(i==9){
int pause=0;
for(byte t=0;t<8;t++)
{
pause+=delays[t];
}
Timer1.setPeriod(22500-pause);
i=0;
}
}
void loop()
{
delays[0]=map(analogRead(A0), 0, 1023, 900, 2100);
delays[1]=map(analogRead(A1), 0, 1023, 900, 2100);
delays[2]=map(analogRead(A2), 0, 1023, 900, 2100);
delays[3]=map(analogRead(A3), 0, 1023, 900, 2100);
delays[4]=map(analogRead(A4), 0, 1023, 900, 2100);
delays[5]=map(analogRead(A5), 0, 1023, 900, 2100);
}
Есть уще недописанная версия с лимитами, мертвыми зонами, калибровкой и экспонентами (в зародыше). Но думаю этого для начала хватит.
Через ютуб нашёл то что нужно на рц-групс.
Работает "из коробки"
https://www.rcgroups.com/forums/showthread.php?2037080-DIY-Arduino-joystick-to-PPM