Радиоуправляемая модель на Ардуино
Добавлено: 12 янв 2016, 21:52
Всем привет!
Решил для своей детворы соорудить радиоуправляемую машинку на Ардуино и радиомодулях на 433 МГц.
Порылся в детских игрушках и нашел сломанную машинку с моторчиком на задних колесах, от другой машинки нашел 4 колеса и перекладины для них, от третей машинки взял верхнюю часть кузова
Дальше осталось только все это сляпать воедино
Долго думал на какой Ардуино делать, УНО, НАНО, ПРО мини и решил взять две модели контроллеров Ардуино, это:
Ардуино НАНО для установки в самой модели и
Ардуино ПРО мини 5В 16МГц для установки в пульт.
В качестве приемопередатчиков я выбрал комплект радио-модулей на 433 МГц.
Для управления поворотной осью радио-модели решил применить серводвигатель SG90.
Вот собственно весь основной набор деталей.
Изготовление пульта для радиоуправления.
Для изготовления пульта радиоуправления , как я уже писал выше, нам понадобится контроллер Ардуино ПРО мини 5В 16 МГц, передатчик на 433 МГц, 8 кнопок без фиксации, 1 кнопка с фиксацией для включения питания, отсек для пальчиковых батареек 6 шт, что бы получилось напряжение питания 9 в, ну и корпус с антенной.
Сначала делаем разметку на корпусе под установку кнопок, сверлим отверстия и вкручиваем все наши 8 кнопочек и кнопку питания.
Я разместил на передней панели пульта еще пару светодиодов, один для контроля нажатия на любую из кнопок, второй для контроля напряжения питания или разряда батареек.
После крепления кнопок размещаем в корпусе Ардуино ПРО мини , радиомодуль на 433 МГц и отсек для батареек.
Все это я прикрепил термоклеем.
Далее начнем распайку кнопок. В начале припаиваем ко всем кнопкам кроме кнопки питания общий провод, его конец подпаиваем через резистор 560 Ом на вывод пинания VCC Ардуино.
К другому концу кнопок припаиваем отдельные проводки , которые распаиваем на цифровые выходы Ардуино, начиная с 2 по 9.
Затем берем 8 одинаковых резисторов , номиналом от 3 до 100 КОм и припаиваем их один конец к тем же цифровым выводам или к контактам кнопок, к которым они подпаяны.
Вторые концы соединяем все вместе и припаиваем их проводом к общему выводу GND Ардуино.
Эти резисторы необходимы для шунтирования цифровых входов от наводок и помех.
Затем припаиваем светодиоды последовательно с резисторами 560 Ом к выводам 10 и 13 Ардуино.
Далее припаиваем вывод VCC передатчика 433 МГц к + контакту блока батареек, вывод GND припаиваем к выводу GND на Ардуино, вывод DATA припаиваем к цифровому входу 12 Ардуино.
Вывод питания Ардуино VCC припаиваем к клемме в средней части батарейного блока так, чтобы получился овод + от третей батарейки, то есть 4,5 В.
Минусовой вывод батарейного блока припаиваем к одной клемме кнопки с фиксацией, а вторую клемму соединяем с общим выводом GND Ардуино ПРО мини.
Как вы наверное уже догадались, мы будем использовать два напряжения питания:
4,5 В для питания контроллера Ардуино ПРО мини,
9 В для питания передатчика.
Так как мы используем 2 напряжения, коммутировать питание (включать, выключать) мы будем через минус.
После завершения монтажа пульта радиоуправления, подключаем Ардуино ПРО мини через переходник USB UART RS232 TTL5В, я использовал на чипе CH340 и закачиваем в контроллер наш скетч :
Да, чуть не забыл нам понадобится библиотека VirtualWire, которую вы можете скачать во вложении.
Решил для своей детворы соорудить радиоуправляемую машинку на Ардуино и радиомодулях на 433 МГц.
Порылся в детских игрушках и нашел сломанную машинку с моторчиком на задних колесах, от другой машинки нашел 4 колеса и перекладины для них, от третей машинки взял верхнюю часть кузова
Дальше осталось только все это сляпать воедино
Долго думал на какой Ардуино делать, УНО, НАНО, ПРО мини и решил взять две модели контроллеров Ардуино, это:
Ардуино НАНО для установки в самой модели и
Ардуино ПРО мини 5В 16МГц для установки в пульт.
В качестве приемопередатчиков я выбрал комплект радио-модулей на 433 МГц.
Для управления поворотной осью радио-модели решил применить серводвигатель SG90.
Вот собственно весь основной набор деталей.
Изготовление пульта для радиоуправления.
Для изготовления пульта радиоуправления , как я уже писал выше, нам понадобится контроллер Ардуино ПРО мини 5В 16 МГц, передатчик на 433 МГц, 8 кнопок без фиксации, 1 кнопка с фиксацией для включения питания, отсек для пальчиковых батареек 6 шт, что бы получилось напряжение питания 9 в, ну и корпус с антенной.
Сначала делаем разметку на корпусе под установку кнопок, сверлим отверстия и вкручиваем все наши 8 кнопочек и кнопку питания.
Я разместил на передней панели пульта еще пару светодиодов, один для контроля нажатия на любую из кнопок, второй для контроля напряжения питания или разряда батареек.
После крепления кнопок размещаем в корпусе Ардуино ПРО мини , радиомодуль на 433 МГц и отсек для батареек.
Все это я прикрепил термоклеем.
Далее начнем распайку кнопок. В начале припаиваем ко всем кнопкам кроме кнопки питания общий провод, его конец подпаиваем через резистор 560 Ом на вывод пинания VCC Ардуино.
К другому концу кнопок припаиваем отдельные проводки , которые распаиваем на цифровые выходы Ардуино, начиная с 2 по 9.
Затем берем 8 одинаковых резисторов , номиналом от 3 до 100 КОм и припаиваем их один конец к тем же цифровым выводам или к контактам кнопок, к которым они подпаяны.
Вторые концы соединяем все вместе и припаиваем их проводом к общему выводу GND Ардуино.
Эти резисторы необходимы для шунтирования цифровых входов от наводок и помех.
Затем припаиваем светодиоды последовательно с резисторами 560 Ом к выводам 10 и 13 Ардуино.
Далее припаиваем вывод VCC передатчика 433 МГц к + контакту блока батареек, вывод GND припаиваем к выводу GND на Ардуино, вывод DATA припаиваем к цифровому входу 12 Ардуино.
Вывод питания Ардуино VCC припаиваем к клемме в средней части батарейного блока так, чтобы получился овод + от третей батарейки, то есть 4,5 В.
Минусовой вывод батарейного блока припаиваем к одной клемме кнопки с фиксацией, а вторую клемму соединяем с общим выводом GND Ардуино ПРО мини.
Как вы наверное уже догадались, мы будем использовать два напряжения питания:
4,5 В для питания контроллера Ардуино ПРО мини,
9 В для питания передатчика.
Так как мы используем 2 напряжения, коммутировать питание (включать, выключать) мы будем через минус.
После завершения монтажа пульта радиоуправления, подключаем Ардуино ПРО мини через переходник USB UART RS232 TTL5В, я использовал на чипе CH340 и закачиваем в контроллер наш скетч :
- Код: выделить все
#include <VirtualWire.h>
const int btn2 = 2;
const int btn3 = 3;
const int btn4 = 4;
const int btn5 = 5;
const int btn6 = 6;
const int btn7 = 7;
const int btn8 = 8;
const int btn9 = 9;
int btn2State = 0;
int btn3State = 0;
int btn4State = 0;
int btn5State = 0;
int btn6State = 0;
int btn7State = 0;
int btn8State = 0;
int btn9State = 0;
int check = 0;
void setup()
{
pinMode(btn2, INPUT);
pinMode(btn3, INPUT);
pinMode(btn4, INPUT);
pinMode(btn5, INPUT);
pinMode(btn6, INPUT);
pinMode(btn7, INPUT);
pinMode(btn8, INPUT);
pinMode(btn9, INPUT);
pinMode(10, OUTPUT);
pinMode(13, OUTPUT);
// Initialize the IO and ISR
vw_setup(2000); // Bits per sec
delay(500);
digitalWrite(10, HIGH);
digitalWrite(13, HIGH);
delay(5000);
digitalWrite(10, LOW);
digitalWrite(13, LOW);
}
void loop()
{
int sensorValue1 = analogRead(A0);
if (sensorValue1<=800){
digitalWrite(10, HIGH);
delay(500);
digitalWrite(10, LOW);
delay(500);
digitalWrite(10, HIGH);
delay(500);
digitalWrite(10, LOW);
delay(500);
digitalWrite(10, HIGH);
delay(500);
digitalWrite(10, LOW);
delay(500);
digitalWrite(10, HIGH);
delay(500);
digitalWrite(10, LOW);
delay(500);
digitalWrite(10, HIGH);
delay(500);
digitalWrite(10, LOW);
delay(500);
} else {
digitalWrite(10, LOW);
};
btn2State = digitalRead(btn2);
btn3State = digitalRead(btn3);
btn4State = digitalRead(btn4);
btn5State = digitalRead(btn5);
btn6State = digitalRead(btn6);
btn7State = digitalRead(btn7);
btn8State = digitalRead(btn8);
btn9State = digitalRead(btn9);
if (btn2State == HIGH) {
send("1");
digitalWrite(13, HIGH);
delay(1);
} else {
digitalWrite(13, LOW);
};
if (btn3State == HIGH) {
send("2");
delay(1);
} else {
digitalWrite(13, LOW);
};
if (btn4State == HIGH) {
send("3");
delay(1);
} else {
digitalWrite(13, LOW);
};
if (btn5State == HIGH) {
send("4");
delay(1);
} else {
digitalWrite(13, LOW);
};
if (btn6State == HIGH) {
send("a");
delay(1);
} else {
digitalWrite(13, LOW);
};
if (btn7State == HIGH) {
send("b");
delay(1);
} else {
digitalWrite(13, LOW);
};
if (btn8State == HIGH) {
send("c");
delay(1);
} else {
digitalWrite(13, LOW);
};
if (btn9State == HIGH) {
send("d");
delay(1);
} else {
digitalWrite(13, LOW);
};
}
void send (char *message)
{
vw_send((uint8_t *)message, strlen(message));
vw_wait_tx(); // Wait until the whole message is gone
}
Да, чуть не забыл нам понадобится библиотека VirtualWire, которую вы можете скачать во вложении.