Робот-последователь линии
Компоненты и расходные материалы
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Приложения и онлайн-сервисы
![]() |
|
Об этом проекте
Давайте сделаем полностью автономного робота с использованием Arduino и ИК-датчиков. Он может следовать за черной линией на белой поверхности. Смотрите видео, чтобы узнать больше!
Используемые компоненты:
- Кусок картона / акрилового листа
- Arduino Uno
- ИК-датчик
- мотор BO
- Колеса
- Колесо заклинателя
- Микросхема L293d
- Печатная плата
- Гибкий провод
- Аккумулятор





Закрепите все компоненты на акриловом листе и сделайте шасси, как показано на рисунках.






Теперь выполните все подключения в соответствии со схемой ниже.

Вы можете сделать эту схему на печатной плате с точками следующим образом.

или можете использовать этот тип печатной платы профессионального качества.





вы можете заказать печатную плату для этого щита здесь https://www.pcbway.com/project/shareproject/How_to_Make_Arduino_Based_Edge_Avoiding_Robot.html
или для готового щита свяжитесь с нами по адресу:https://www.facebook.com/STROniXTechnologies
Пришло время запрограммировать этого робота. загрузите эту программу в Arduino и все готово.
// программа от Shubham Shinganapure от 08.05.2019
//
// для робота, следящего за линией, использующего датчики 2IR
int lm1 =8; // выход левого мотора 1
int lm2 =9; // выход левого мотора 2
int rm1 =10; // правый вывод двигателя 1
int rm2 =11; // выход правого мотора 2
int sl =13; // датчик 1 вход (слева)
int sr =12; // вход датчика 2 (справа)
int SlV =0;
int SrV =0;
int led =A0;
void setup ()
{
pinMode (lm1, OUTPUT);
pinMode (lm2, OUTPUT);
pinMode (rm1, OUTPUT);
pinMode (rm2, OUTPUT);
pinMode (led, ВЫХОД);
pinMode (sl, INPUT);
pinMode (sr, INPUT);
sTOP ();
}
void loop ()
{
SlV =digitalRead (sl);
SrV =digitalRead (sr);
if (SrV ==LOW &&SlV ==LOW)
{
ForWard ( );
}
if (SrV ==HIGH &&SlV ==LOW)
{
Left ();
}
if (SrV ==LOW &&SlV ==HIGH)
{
Right ();
}
if (SrV ==HIGH &&SlV ==HIGH)
{
sTOP ();
}
}
void ForWard ()
{
digitalWrite (lm1, HIGH);
digitalWrite (lm2, LOW);
digitalWrite (rm1, HIGH);
digitalWrite (rm2, LOW);
}
void BackWard ()
{
digitalWrite (lm1, LOW);
digitalWrite (lm2, HIGH);
digitalWrite (rm1, LOW);
digitalWrite (rm2, HIGH);
}
void Left ()
{
digitalWrit e (lm1, LOW);
digitalWrite (lm2, HIGH);
digitalWrite (rm1, HIGH);
digitalWrite (rm2, LOW);
}
void Вправо ()
{
digitalWrite (lm1, HIGH);
digitalWrite (lm2, LOW);
digitalWrite (rm1, LOW);
digitalWrite (rm2, HIGH );
}
void sTOP ()
{
digitalWrite (lm1, LOW);
digitalWrite (lm2, LOW);
digitalWrite (rm1, НИЗКИЙ);
digitalWrite (rm2, LOW);
}
Чтобы узнать больше, подпишитесь на мой канал на YouTube:
Код
- робот-последователь линии
робот-последователь линии Arduino
// программа Shubham Shinganapure от 08.05.2019 //// для робота, следящего за линией с использованием 2IR-датчиков int lm1 =8; // выход левого мотора 1int lm2 =9; // выход левого мотора 2int rm1 =10; // выход правого двигателя 1int rm2 =11; // выход правого мотора 2int sl =13; // датчик 1 input (слева) int sr =12; // датчик 2 input (справа) int SlV =0; int SrV =0; int led =A0; void setup () {pinMode (lm1, OUTPUT); pinMode (lm2, ВЫХОД); pinMode (rm1, ВЫХОД); pinMode (rm2, ВЫХОД); pinMode (светодиод, ВЫХОД); pinMode (sl, ВХОД); pinMode (sr, INPUT); sTOP ();} недействительный цикл () {SlV =digitalRead (sl); SrV =digitalRead (SR); если (SrV ==LOW &&SlV ==LOW) {ForWard (); } if (SrV ==HIGH &&SlV ==LOW) {Left (); } if (SrV ==LOW &&SlV ==HIGH) {Right (); } если (SrV ==HIGH &&SlV ==HIGH) {sTOP (); }} void ForWard () {digitalWrite (lm1, HIGH); digitalWrite (лм2, НИЗКИЙ); digitalWrite (rm1, HIGH); digitalWrite (rm2, LOW); } void BackWard () {digitalWrite (lm1, LOW); digitalWrite (лм2, ВЫСОКИЙ); digitalWrite (rm1, LOW); digitalWrite (rm2, HIGH); } void Left () {digitalWrite (lm1, LOW); digitalWrite (лм2, ВЫСОКИЙ); digitalWrite (rm1, HIGH); digitalWrite (rm2, LOW); } void Right () {digitalWrite (lm1, HIGH); digitalWrite (лм2, НИЗКИЙ); digitalWrite (rm1, LOW); digitalWrite (rm2, HIGH); } void sTOP () {digitalWrite (lm1, LOW); digitalWrite (лм2, НИЗКИЙ); digitalWrite (rm1, LOW); digitalWrite (rm2, LOW); }
Схема

Производственный процесс
- Робот Raspberry Pi, управляемый через Bluetooth
- Простой робот Pi
- Робот с сервомотором избегает препятствий
- Радостный робот (Робо да Алегрия)
- Робот следящего за линией скорости V4
- Робот, управляемый речью
- Робот-пианино, управляемый Arduino:PiBot
- Учебная платформа Arduino
- Автономный домашний робот-помощник
- Робот для супер-крутой навигации внутри помещений