Шасси с моторами и редукторами, Arduino UNO, L298N, для робота, автомобиля
Arduino Car можно использовать как платформу для создания автомобиля управляемого по программе или с помощью радиоуправления, а так же как платформу для создания роботов. Версия 2, удешевленная.
Ардуино мобиль собран из двух моторов постоянного тока с редукторами по схеме 4WD. Трансмиссия на колеса осуществляется с помощью ременной передачи. Управляет Ардуино мобилем модуль Arduino UNO по программе написанной на языке Си для Ардуино. В качестве драйвера моторов используется микросхема L298N - двухканальный реверсивный драйвер моторов. Шасси выполнено из поликарбоната (органического стекла) толщиной 2 мм. Питание всех узлов шасси осуществляется от батареи на 9 Вольт (6хАА).
Arduino Car с подпрограммами реализующими простые действия такие как "вперед", "назад", "поворот" можно рекомендовать младшим школьникам для знакомства с программированием.
Пример программы на Си.
// Скорость от 60 до 250, от 90 до 250 только кратковременно
void setup() {
delay (8000);
DDRD = 0b10110100;
forward (70);
delay (3000);
left (100);
delay (750);
back(70);
delay (2000);
forward (70);
delay (4000);
back(70);
delay (2500);
right (110);
delay (950);
back (75);
delay (3000);
sleep();
}
void loop() {
}
void forward (int S) {
// Левый канал
digitalWrite (5, 1);
analogWrite (6, S);
digitalWrite (7, 0);
// Правый канал
digitalWrite (2, 1);
analogWrite (3, S);
digitalWrite (4, 0);
}
void back (int S) {
// Левый канал
digitalWrite (5, 0);
analogWrite (6, S);
digitalWrite (7, 1);
// Правый канал
digitalWrite (2, 0);
analogWrite (3, S);
digitalWrite (4, 1);
}
void left (int S) {
// Левый канал
digitalWrite (5, 0);
analogWrite (6, S);
digitalWrite (7, 1);
// Правый канал
digitalWrite (2, 1);
analogWrite (3, S);
digitalWrite (4, 0);
}
void right (int S) {
// Левый канал
digitalWrite (5, 1);
analogWrite (6, S);
digitalWrite (7, 0);
// Правый канал
digitalWrite (2, 0);
analogWrite (3, S);
digitalWrite (4, 1);
}
void sleep () {
// Левый канал
digitalWrite (5, 0);
analogWrite (6, 0);
digitalWrite (7, 0);
// Правый канал
digitalWrite (2, 0);
analogWrite (3, 0);
digitalWrite (4, 0);
}
