Простой робот
проект по информатике (4 класс)
Рассмотрим построение простого робота на Arduino UNO, который объезжает препятствия. На рисунке 1 представлено фото этого робота. На рисунке 2 - фото Arduino motor drive shield-L298N, который управляет двумя двигателями, установленными на двухколесной платформе. На рисунке показаны положение трех переключателей, а также соединение motor drive с двигателями. Питание двигателей с motor drive и сервопривода выполняется отдельным источником питания - Li-ion 18650 аккумуляторами, а питание контроллера Arduino - плоским li-ion аккумулятором напряжением ~4 вольт малой емкости. Целесообразно использовать два источника питания - отдельно Arduino и motor drive с двигателями, так как Arduino начинает работать очень неустойчиво.
Скачать:
Вложение | Размер |
---|---|
prostoy_robot.docx | 276.27 КБ |
Предварительный просмотр:
- Простой робот, который объезжает препятствия
Простой робот на Arduino UNO с ультразвуковым дальномером HC-SR04 для объезда препятствий Рассмотрим построение простого робота на Arduino UNO, который объезжает препятствия. На рисунке 1 представлено фото этого робота. На рисунке 2 - фото Arduino motor drive shield-L298N, который управляет двумя двигателями, установленными на двухколесной платформе. На рисунке показаны положение трех переключателей, а также соединение motor drive с двигателями. Питание двигателей с motor drive и сервопривода выполняется отдельным источником питания - Li-ion 18650 аккумуляторами, а питание контроллера Arduino - плоским li-ion аккумулятором напряжением ~4 вольт малой емкости. Целесообразно использовать два источника питания - отдельно Arduino и motor drive с двигателями, так как Arduino начинает работать очень неустойчиво. Рис. 1. Фото робота Рис.2. Фото Arduino motor drive shield-L298N На роботе установлен ультразвуковой дальномер HC-SR04 с помощью которого определяется расстояние до препятствия с последующим объездом его. В свою очередь дальномер установлен на сервоприводе. В случае, если расстояние до препятствия менее 25 см, робот останавливается, перемещается назад, а сервопривод поворачивает дальномер примерно на 60 градусов для поиска расстояния, больше 25 см. Далее робот поворачивается в этом направлении и продолжает движение пока опять не встретит препятствие. На рисунке 3 представлена схема соединений контроллера Arduino UNO, Arduino motor drive shield-L298N ,ультразвукового дальномера HC-SR04, сервопривода и двух двигателей. Рис.3. Схема соединений Ниже представлен текст программы в среде Arduino IDE с описанием: #include "Ultrasonic.h" //motor A int dir1PinA = 13; // 13-й и 12 выводы Ардуино контролируют направление вращения int dir2PinA = 12; // двигателя А int speedPinA = 10; // 10-й вывод Ардуино контролирует скорость врашения двигателя А //motor B int dir1PinB = 11; // Аналогично для мотора В int dir2PinB = 8; int speedPinB = 9; float ab=0,bb=0; Ultrasonic ultrasonic(4,5); void setup() { pinMode (dir1PinA, OUTPUT); // Выводы 13,12,10,11,8,9 назначаются выводными pinMode (dir2PinA, OUTPUT); pinMode (speedPinA, OUTPUT); pinMode (dir1PinB, OUTPUT); pinMode (dir2PinB, OUTPUT); pinMode (speedPinB, OUTPUT); pinMode(7,OUTPUT); analogWrite (speedPinA,153); // Устанавливается максимальная скорость вращения analogWrite (speedPinB,150); delay(4000); step(1400); // Устанавливаем Ultrasonic прямо /* задаем скорость общения. В нашем случае с компьютером */ // Serial.begin(9600); } unsigned int impulseTime=0; float a=0; void step(unsigned int imp){ //Функция работы с сервоприводом digitalWrite(7,HIGH); for(int i=0;i<25;i++) { digitalWrite(7, HIGH); //Запись высокого уровня в вывод 7 Ардуино delayMicroseconds(imp); digitalWrite(7, LOW); delay(20); } } void loop() { a=ultrasonic.Ranging(CM); // Serial.println(a); if (a<25) // Если расстояние менее 25 сантиметров { //Стоп sto(); delay(1000); backw(); delay(300); sto(); step(800); // Поворачиваем Ultrasonic вправо (если смотреть сзади робота) ab=ultrasonic.Ranging(CM); // Определение расстояния delay(1000); if(ab >25 ) {right(); delay(300); forw(); step(1400); goto aa;} else {step(2100); }// Поворачиваем Ultrasonic влево (если смотреть сзади робота) bb=ultrasonic.Ranging(CM); delay(1000); if(bb>25) { left(); delay(300); forw(); step(1400); goto aa;} else {step(1400); delay(1000);} backw(); delay(500); sto(); delay(1000); right(); delay(300); } else { //Вперед forw(); } aa: ; delay(100); } void forw() // Вперед { digitalWrite (dir1PinA, LOW); digitalWrite (dir2PinA, HIGH); digitalWrite (dir1PinB, LOW); digitalWrite (dir2PinB, HIGH); } void right() // Вправо { digitalWrite (dir1PinA, LOW); digitalWrite (dir2PinA, HIGH); digitalWrite (dir1PinB, HIGH); digitalWrite (dir2PinB, LOW); } void left() // Влево { digitalWrite (dir1PinA, HIGH); digitalWrite (dir2PinA, LOW); digitalWrite (dir1PinB, LOW); digitalWrite (dir2PinB, HIGH); } void sto() // Стоп { digitalWrite (dir1PinA, LOW); digitalWrite (dir2PinA, LOW); digitalWrite (dir1PinB, LOW); digitalWrite (dir2PinB, LOW); } void backw() // Назад { digitalWrite (dir1PinA, HIGH); digitalWrite (dir2PinA, LOW); digitalWrite (dir1PinB, HIGH); digitalWrite (dir2PinB, LOW); } В программе использована библиотека Ultrasonic для работы с датчиком расстояний HC-SR04, которую легко найти в Интернете. |
По теме: методические разработки, презентации и конспекты
Простые и сложные предложения. Знаки препинания в простом и сложном предложении.
Практическое пособие "Простые и сложные предложения..." помогут ребятам без особого труда, но при систематической работе над темой усвоить сложный материал из раздела русского языка "Синтаксис. Пункту...
Тест "Повторение простого настоящего и простого прошедшего времени"
Данный тест содержит задания, направленные на повторение следующих тем "Present Simple Tense" и "Past Simple Tense", а также множественного числа имен существительных (исключения)....
Present Simple and Past Simple (Настоящее простое и прошедшее простое время, упражнения)
Present Simple and Past Simple (Настоящее простое и прошедшее простое время, упражнения)...
Конспект урока по русскому языку 4 класс Тема: "Простые и сложные предложения. Как отличить сложное предложение от простого предложения?"
Конспект урока по русскому языку 4 класс "Простые и сложные предложения. Как отличить сложное предложение от простого предложения?"...
Конспект урока по русскому языку 4 класс Тема: "Простые и сложные предложения. Как отличить сложное предложение от простого предложения?"
Цель урока: создание педагогических условий для ознакомления учащихся с понятиями "простые и сложные предложения"; сформировать представление о простых и сложных предложениях....
Исследовательский проект "Роботы. Роботы-игрушки"
Работа для НПК....
История робототехники. Что такое робот. Виды современных роботов
Технологическая карта занятия "История робототехники. Что такое робот. Виды современных роботов"...