Создание мобильного приложения для управления роботом на Arduino ToltekPlus's blog / 08.05.2016 В этой статье я расскажу о том, как мы создаем мобильные приложения для управления робофутболистами на базе платформы Arduino.Очень часто на уроках робототехники в Учебном центре Толтек Плюс нам приходится создавать механизмы, которыми надо управлять. Управление можно осуществлять по различным каналам связи. Моим ребятам очень нравится управление через Bluetooth, ведь они легко могут сами создать мобильное приложение в среде AppInventor, которое будет отправлять/принимать данные с нашего робота. В этой статье поделюсь с читателями опытом создания таких приложений.Решим следующую задачу: имеется робот-футболист. Им надо управлять: перемещение вперёд, назад, налево, направо и удар. Для робота футболиста (на базе Arduino) составим следующий программный код: #include <Servo.h> Servo myServo; int dirA = 12; //задние колеса int pwmA =3; //задние колеса int dirB = 13; //передние колеса int pwmB=11; //передние колесаchar incomingByte;int speedDC = 255;void setup() { Serial.begin(9600); pinMode(dirA,OUTPUT); pinMode(dirB,OUTPUT); pinMode(pwmA,OUTPUT); pinMode(pwmB,OUTPUT);}void forwardDC(){ digitalWrite(dirA,1); analogWrite(pwmA,speedDC); analogWrite(pwmB,0);}void backwardDC(){ digitalWrite(dirA,0); analogWrite(pwmA,speedDC); analogWrite(pwmB,0); }void leftDC(){ digitalWrite(dirA,1); analogWrite(pwmA,speedDC); digitalWrite(dirB,1); analogWrite(pwmB,speedDC);}void rightDC(){ digitalWrite(dirA,1); analogWrite(pwmA,speedDC); digitalWrite(dirB,0); analogWrite(pwmB,speedDC);}void stopDC(){ analogWrite(pwmA,0); analogWrite(pwmB,0);}void hit(){ myServo.attach(8); myServo.write(90); delay(500); myServo.write(0); myServo.detach();}void loop() { if(Serial.available()>0){ incomingByte=Serial.read(); if(incomingByte=='8') { forwardDC(); } if(incomingByte=='2') { backwardDC(); } if(incomingByte=='4') { leftDC(); } if(incomingByte=='6') { rightDC(); } if(incomingByte=='0') { stopDC(); } if(incomingByte=='5') { hit(); } }}В программе описано следующее: если во входных данных 8, то робот едет вперёд, а если 2 - то назад. Остальные действия аналогично. Более подробное разъяснение программы опишу в другой статье.Теперь нам надо составить приложение, которое будет отправлять эти данные роботу.1 Шаг. Создание интерфейса. Заходим в AppInventor. И Создаем интерфейс приложения.2 Шаг. Переходим в режим блоки и составляем следующий код:Т.е. перед нажатием на компонент СПИСОК, он заполняется именами доступных Bluetooth устройств. А после нажатия на него, устанавливается соединение с выбранным устройством.3 Шаг. Осуществить передачу данных. Код:Если мы нажали на кнопку, то отправляется «2». И наш робофутболист поедет вперёд. Если мы отпустили палец с кнопки, то отправляется «0». И наш робофутболист остановится.Аналогичные блоки надо сделать и для других действий. От них отличается только лишь действие удара по мячу:Т.е. Событие генерируется при простом клике по кнопке.Мы с ребятами иногда устраиваем чемпионаты. Дети и родители остаются довольны. Вот несколько фотографий с игр.Если вам стало интересно, то с радостью отвечу на все ваши вопросы. AppInventor arduino Ардуино мобильное приложение программирование робототехника