Урок 1
Цель
-
- Изучить как работает драйвер двигателей;
- Изучить как работает блютуз модуль;
- Научиться рисовать и собрать корпус машины;
- Научиться совместной работе и работе в группах.
Ожидаемые результаты
Ученики должны развить понимание:
-
- умение работать с ардуино компонентами
- коммуникативных навыков для сотрудничества с учителем и другими учениками
- как минимум одного типа системы светофора
Междисциплинарная связь
- Информатика(Ардуино, написать код)
- Физика (работа с током, электроникой, схемы подключения)
Введение
Машинка на Ардуино с Bluetooth управлением от Android телефона — это очень простой, но интересный проект на Arduino UNO с использованием модуля Motor Shield. На этой неделе вы узнаете какие потребуются компоненты для изготовления робота машинки на Ардуино своими руками, пошаговую инструкцию по сборке электрической схемы и сможете скачать все необходимые программы для Android и Arduino.
Для этого проекта использовался модуль Motor Shield L298N, два колеса с редукторами, плата Arduino UNO, блютуз модуль HC-05/06. Управление происходит дистанционно через Bluetooth сигнал от смартфона или планшета. После сборки модели и установки программ, вы сможете через приложение на смартфоне поворачивать машинкой, ездить вперед и назад и поварачивать.
Для этого проекта потребуется:

Arduino Uno

Motor Control Shield L298N

Bluetooth модуль HC-05/06

четыре мотора с редукторами

и колесами

аккумулятор Li-ion 3,7V-2600mAh
картоны, термопистолет, провода и т.д.
Практическая часть
На этой неделе мы соберем нижнюю часть машины
Шаг 1. Приготовьте нижнюю часть машины из кортона



Потом приклеивайте один поверх другой
Шаг 2. Соединяем два моторчика между собой

Должно получиться вот такое соединение

потом приклеивайте моторчики к кортону
Шаг 3. Приклеиваем наши основные компоненты к полу кузова соединяем их проводом


Шаг 4. Скетч
#define in1 5 //L298n Motor Driver pins.
#define in2 6
#define in3 10
#define in4 11
#define LED 13
int command; //Int to store app command state.
int Speed = 204; // 0 - 255.
int Speedsec;
int buttonState = 0;
int lastButtonState = 0;
int Turnradius = 0; //Set the radius of a turn, 0 - 255 Note:the robot will malfunction if this is higher than int Speed.
int brakeTime = 45;
int brkonoff = 1; //1 for the electronic braking system, 0 for normal.
void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(LED, OUTPUT); //Set the LED pin.
Serial.begin(9600); //Set the baud rate to your Bluetooth module.
}
void loop() {
if (Serial.available() > 0) {
command = Serial.read();
Stop(); //Initialize with motors stoped.
switch (command) {
case 'F':
forward();
break;
case 'B':
back();
break;
case 'L':
left();
break;
case 'R':
right();
break;
case 'G':
forwardleft();
break;
case 'I':
forwardright();
break;
case 'H':
backleft();
break;
case 'J':
backright();
break;
case '0':
Speed = 100;
break;
case '1':
Speed = 140;
break;
case '2':
Speed = 153;
break;
case '3':
Speed = 165;
break;
case '4':
Speed = 178;
break;
case '5':
Speed = 191;
break;
case '6':
Speed = 204;
break;
case '7':
Speed = 216;
break;
case '8':
Speed = 229;
break;
case '9':
Speed = 242;
break;
case 'q':
Speed = 255;
break;
}
Speedsec = Turnradius;
if (brkonoff == 1) {
brakeOn();
} else {
brakeOff();
}
}
}
void forward() {
analogWrite(in1, Speed);
analogWrite(in3, Speed);
}
void back() {
analogWrite(in2, Speed);
analogWrite(in4, Speed);
}
void left() {
analogWrite(in3, Speed);
analogWrite(in2, Speed);
}
void right() {
analogWrite(in4, Speed);
analogWrite(in1, Speed);
}
void forwardleft() {
analogWrite(in1, Speedsec);
analogWrite(in3, Speed);
}
void forwardright() {
analogWrite(in1, Speed);
analogWrite(in3, Speedsec);
}
void backright() {
analogWrite(in2, Speed);
analogWrite(in4, Speedsec);
}
void backleft() {
analogWrite(in2, Speedsec);
analogWrite(in4, Speed);
}
void Stop() {
analogWrite(in1, 0);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, 0);
}
void brakeOn() {
//Here's the future use: an electronic braking system!
// read the pushbutton input pin:
buttonState = command;
// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == 'S') {
if (lastButtonState != buttonState) {
digitalWrite(in1, HIGH);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
delay(brakeTime);
Stop();
}
}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState;
}
}
void brakeOff() {
}
Соединение с телефоном
Сначала включите машину блютуз модуль должен мигать красным светодиодом, потом на телефоне влючите блютуз и соедините с HC-06/05 код подтверждение обычно 1234 или 0000
Теперь установите на свой телефон Bluetooth RC Controller




