Всем привет, хочу сделать какую-то игрушку на RC(радиоуправлении). В планах немного доделать антеннку модуля, модуль кстати HC-05, тянет в принципе недалеко если дома, на открытом пространстве думаю будет норм. В будущем всё перенесу на ATmega8. В качестве транзисторов использую сборку Дарлингтона ULN2003, очень удобная вещь для таких целей.
Моторчики от сидиромов, слабоватые но для теста сойдут.
Вот код который я приспособил для программки под андроид( код, который использовал на момент съемки видео):
#define MotorL 10 #define MotorR 9 byte valL = 0, valR = 0, maxL = 255, maxR = 255; boolean state = false; void setup() { // устанавливаем соединение с портом Serial.begin(9600); //выход 10 в режиме OUTPUT - на нем висит вентилятор // При вызове parseInt() задержка ожидания последующего символа по умолчанию 1 секунда. // Функцией setTimeout() можно уменьшить эту задержку. Например на 4 миллисекунды, setTimeout(4);. // Чем выше скорость Serial.begin, тем меньше потребуется значение setTimeout. Serial.setTimeout(4); // этого должно хватить pinMode(MotorL, OUTPUT); // левый двигатель pinMode(MotorR, OUTPUT); // правый двигатель pinMode(11, OUTPUT); // светодиод pinMode(13, OUTPUT); // светодиод, индикатор приёма данных //TCCR1B = 0x01; // Зададим частоту ШИМа, >60 кГц чтобы не слышать писк } //основной цикл программы void loop() { // пробую читать из порта if(Serial.available() > 0) // если нам приходит только один символ { digitalWrite(13, HIGH); // мигаем при получении данных char data = Serial.read(); if (data == 'g') { // средняя кнопка state = !state; } if (data == 's') { // стоп, отправляется при отпускании кнопок valL = 0; valR = 0; } if (data == 'f') { // вперёд valL = maxL; valR = maxR; } if (data == 'l') { // влево valL = maxL; //valR = 0; } if (data == 'r') { //вправо valR = maxR; //valL = 0; } if (data == 'x') { // получение максимальной скорости для левого двигателя maxL = Serial.parseInt(); } if (data == 'y') { // получение максимальной скорости для правого двигателя maxR = Serial.parseInt(); } digitalWrite(13, LOW); // данные получили, выключим светодиод } analogWrite(MotorL, valL); // управляем analogWrite(MotorR, valR); // двигателями digitalWrite(11, state); // и светодиодом //debug(); //delay(1000); } /* void debug(){ Serial.print("valL "); Serial.print(valL); Serial.println(" "); Serial.print("valR "); Serial.print(valR); Serial.println(" "); } */
Вот собственно ссылка на софт под Android:
http://www.mobilerobots.pl/index.php?p=1_64_Vacuum-Cleaner-Hack
Вступайте в мою группу ВКонтакте:
http://vk.com/razniepodelkiblogspot
Ключевые слова: Android Bluetooth Arduino Remote Control, DIY, HC-05, ULN 2003, ATmega8, RC car, радиоуправление, сделай сам, своими руками, машинка, игрушка, телефон, андроид, ардуино, блютуз, модуль, микроконтроллер
Комментариев нет:
Отправить комментарий