Спутник 1
ROB-75081Мой робот, следующий по черной линии, был создан с целью автоматизации движения по черной линии. Его специальные датчики и алгоритмы позволяют ему точно следовать за линией, не сбиваясь с пути.
Этот проект был для меня настоящим вызовом, поскольку я решал сложную задачу - создание гоночного робота с использованием платформы Arduino. Начав с исследования различных датчиков, моторов и других компонентов, я разработал план сборки и программирования.
Сначала я выбрал подходящую платформу для робота и смонтировал моторы, колеса и датчики на шасси. Затем я подключил все компоненты к Arduino и начал программировать его поведение. Я использовал язык программирования C++ и библиотеки для работы с датчиками и моторами.
После тщательной отладки и тестирования робот был готов к гонкам. Я провел несколько испытаний, чтобы улучшить его скорость и управляемость. В итоге мой гоночный робот на Arduino стал настоящим хитом на соревнованиях робототехники.
Этот проект не только позволил мне усовершенствовать свои навыки в сборке и программировании роботов, но и принес мне массу удовольствия и новых знаний.
int MotorLS = 5;
int MotorLF = 4;
int MotorRF = 7;
int MotorRS = 6;
const int LSI = A0;
const int LSII = A1;
const int LSIII = A2;
const int LSIV = A3;
int SL;
int SM;
int SR;
int SK;
void setup (){
pinMode (MotorRS, OUTPUT);
pinMode (MotorRF, OUTPUT);
pinMode (MotorLS, OUTPUT);
pinMode (MotorLF, OUTPUT);
pinMode (LSI, INPUT);
pinMode (LSII, INPUT);
pinMode (LSIII, INPUT);
pinMode (LSIV, INPUT); }
void forward (int a, int sa) {
digitalWrite (MotorRF, HIGH);
analogWrite (MotorRS, sa);
digitalWrite (MotorLF, HIGH);
analogWrite (MotorLS, sa);
delay (a);}
void right (int b, int sb) {
digitalWrite (MotorRF, LOW);
digitalWrite (MotorLF, HIGH);
analogWrite (MotorLS, sb);
delay (b);}
void left (int k, int sk){
digitalWrite (MotorRF, HIGH);
analogWrite (MotorRS, sk);
digitalWrite (MotorLF, LOW);
delay (k);}
void turnR (int d, int sd){
digitalWrite (MotorRF, LOW);
analogWrite (MotorRS, sd);
digitalWrite (MotorLF, HIGH);
analogWrite (MotorLS, sd);
delay (d);}
void turnL (int e, int se) {
digitalWrite (MotorRF, HIGH);
analogWrite (MotorRS, se);
digitalWrite (MotorLF, LOW);
analogWrite (MotorLS, se);
delay (e);}
void back (int g, int sg) // НАЗАД{
digitalWrite (MotorRF, LOW);
analogWrite (MotorRS, sg);
digitalWrite (MotorLF, LOW);
analogWrite (MotorLS, sg);
delay (g);}
void stopp (int f) // СТОП{
digitalWrite (MotorRF, LOW);
digitalWrite (MotorLF, LOW);
delay (f);}
void loop (){
SL = digitalRead (LSI);
SM = digitalRead (LSII);
SR = digitalRead (LSIII);
SK = digitalRead (LSIV);
if (SL == LOW & SM == LOW & SR == LOW & SK == LOW )
{forward (30, 180);
else if (SL == LOW & SM == HIGH & SR == LOW & SK == LOW)
{left (10, 100);
else if (SL == HIGH & SM == HIGH & SR == LOW & SK == LOW)
{right (20, 120); // поворот ВПРАВО (время, скорость)
}
else if (SL == HIGH & SM == LOW & SR == LOW & SK == LOW)
{turnR (30, 150); }
else if (SL == LOW & SM == LOW & SR == HIGH & SK == LOW)
{
turnL (10, 100); // РАЗВОРОТ ВЛЕВО (время, скорость)
}
else if (SL == LOW & SM == LOW & SR == HIGH & SK == HIGH)
{
left (20, 120); // поворот ВЛЕВО (время, скорость)
}
else if (SL == LOW & SM == LOW & SR == LOW & SK == HIGH) {
left (30, 150); // поворот ВЛЕВО (время, скорость)
}else if (SL == HIGH & SM == HIGH & SR == HIGH & SK == HIGH)
stopp (50);
}