Простой робот для начинающих

Эта статья расскажет вам, как сделать самого простого робота. Он будет обнаруживать препятствия, и избегать их. Это отличный проект, для тех, кто еще не знает, что такое Arduino и хочет сделать своего первого робота.

Почему именно робота? Это отличный способ научиться программированию Arduino или, к примеру, узнать как работает драйвер электродвигателя. Ну и, кроме того, это приятное ощущение, когда вы строите своего первого робота, пусть и самого простого.

Почему именно комплект Ultrasonic Smart Car Kit-49.42? Если Вы делаете первые шаги в Arduino, то вы не знаете еще многих вещей. К примеру, что такое H-мост или, где приобрести сенсоры, электродвигатели. А в этом конструкторе есть уже все. И все, что вам надо будет это установить на компьютер Arduino IDE (прочитать об установке и скачать можно здесь работа с Arduino IDE) , бокорезы, отвертка, несколько пластиковых стяжек.
Что такое Arduino IDE? Это бесплатная среда программирования, которая может работать под Windows, Mac OS и Linux. Программы пишутся на C++ с небольшими дополнениями для управления контактами ввода/вывода. Так, что если опыт в программировании на С есть, Вы быстро во всем разберетесь, если же его нет — научиться не долго.
Итак, что вам понадобится:
Один комплект Ultrasonic, можно приобрести на Aliexpress или GearBest Ultrasonic Smart Car

Две пластиковые стяжки, чтобы закрепить ультразвуковые сенсоры

6 батарей или аккумуляторов по 1.5в, или один на 6в
Что входит в набор конструктора:
— Сама плата Arduino.
— Драйвер моторов
— Моторы
— Ультразвуковые сенсоры
— Пластиковые детали, чтобы собрать шасси и соединить колеса с сервоприводом.
— Провода, кабель usb.

— Держатели под батареи.
— Заднее поворотное колесо на шарикоподшипнике, передние ведущие колеса

Электрические соединения выполняются, как на фото.

Программа.
 Код прошивки/*
* Code wrtitten by Nikodem Bartnk
* visit:
* http://www.instructables.com/member/Nikus/
* http://arduinopolska.cba.pl/
* https://spongepie.com/
*
* C by Nikodem Bartnik
* If you have question you can write here:
* nikodem.bartnik@gmail.com
*/

//speed of motors betwen 0 and 255, if you like you can change it
int pwm_speed = 255;
//trig of ultrasonic sensor
int trig = 12;
//echo of ultrasonic sensor
int echo = 13;

void setup() {

//pins for motor controller
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(3, OUTPUT);
//set trig as output and echo as input for ultrasonic sensor
pinMode(trig, OUTPUT);
pinMode(echo,INPUT);

}

void loop() {

digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(5);
digitalWrite(trig, LOW);

int duration = pulseIn(echo, HIGH);
int distance = duration / 29 / 2;

if(distance > 10){
//move forward by 100 ms
forward(100);
}else if(distance < 10){
//backward by 1000ms = 1 second
backward(1000);
//left by 1000ms = 1 second
left(1000);
}
}

// function for driving straight
void forward(int delay_time){
digitalWrite(11, HIGH);
digitalWrite(10, LOW);

digitalWrite(9, HIGH);
digitalWrite(6, LOW);

analogWrite(5, pwm_speed);
analogWrite(3, pwm_speed);
delay(delay_time);
}

//function for reversing
void backward(int delay_time){
digitalWrite(11, LOW);
digitalWrite(10, HIGH);

digitalWrite(9, LOW);
digitalWrite(6, HIGH);

analogWrite(5, pwm_speed);
analogWrite(3, pwm_speed);
delay(delay_time);
}

//function for turning left
void left(int delay_time){
digitalWrite(11, HIGH);
digitalWrite(10, LOW);

digitalWrite(9, LOW);
digitalWrite(6, LOW);

analogWrite(5, pwm_speed);
analogWrite(3, 0);
delay(delay_time);
}

//function for turning right
void right(int delay_time){
digitalWrite(11, LOW);
digitalWrite(10, LOW);

digitalWrite(9, HIGH);
digitalWrite(6, LOW);

analogWrite(5, 0);
analogWrite(3, pwm_speed);
delay(delay_time);
}

//function for stopping motors
void motors_stop(int delay_time){

digitalWrite(11, LOW);
digitalWrite(10, LOW);

digitalWrite(9,LOW);
digitalWrite(6, LOW);

analogWrite(5, 0);
analogWrite(3, 0);
delay(delay_time);
}
В комментариях автор все подробно описал. Это очень простой код.

Этот робот отлично подходит для начинающих. Для тех кто еще не знает, что такое Arduino. Позже, когда поднаберетесь опыта, можно добавить дополнительные возможности. Есть много плат расширения для Arduino-шилдов. Различные модули gps, Bluetooth, Ethernet, WIFI
скачать исходный код программы (комментарии на русском)

programm.zip

[891 b] (скачиваний: 883)

Источник (Source)

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Источник: usamodelkina.ru

Оцените статью