- Необхідні матеріали:
- Концепції послідовника рядків
- Схема та пояснення роботи робота-послідовника Raspberry Pi
- Програмування вашого Raspberry PI:
- Послідовник Raspberry Pi Line в дії:
Як ми всі знаємо, Raspberry Pi - чудова розвиваюча платформа, заснована на мікропроцесорі ARM. Завдяки великій обчислювальній потужності та можливостям розвитку він може творити чудеса в руках любителів електроніки або студентів. Щоб дізнатись більше про Raspberry Pi та як він працює, спробуємо побудувати робота-послідовника ліній за допомогою Raspberry Pi.
Якщо ви зацікавлені в робототехніці, тоді ви повинні бути добре знайомі з назвою « Робот послідовника ліній ». Цей робот здатний слідувати за лінією, лише використовуючи пару датчиків і двигунів. Можливо, це не здасться ефективним для використання потужного мікропроцесора, такого як Raspberry Pi, для створення простого робота. Але цей робот дає вам можливість для нескінченного розвитку, і такі роботи, як Ківа (робот-склад Amazon), є прикладом цього. Ви також можете перевірити наші інші роботи послідовників ліній:
- Робот-послідовник лінії за допомогою мікроконтролера 8051
- Робот-послідовник лінії за допомогою Arduino
Необхідні матеріали:
- Raspberry Pi 3 (будь-яка модель повинна працювати)
- ІЧ-датчик (2 Ні)
- Двигун постійного струму постійного струму (2 Ні)
- L293D Драйвер двигуна
- Шезлонги (Ви також можете побудувати власні, використовуючи картон)
- Банк живлення (будь-яке доступне джерело живлення)
Концепції послідовника рядків
Line Follower Robot здатний відстежувати лінію за допомогою ІЧ-датчика. Цей датчик має ІЧ-передавач та ІЧ-приймач. ІЧ-передавач (ІЧ-світлодіод) пропускає світло, а приймач (фотодіод) чекає повернення переданого світла назад. ІЧ-світло повернеться назад, лише якщо воно відображається поверхнею. Тоді як усі поверхні не відображають ІЧ-світло, лише біла кольорова поверхня може повністю відображати їх, а чорна кольорова поверхня буде повністю спостерігати їх, як показано на малюнку нижче. Дізнайтеся більше про модуль ІЧ-датчика тут.
Тепер ми будемо використовувати два ІЧ-датчики, щоб перевірити, чи робот знаходиться в колії з лінією, і два двигуни, щоб виправити робота, якщо він рухається з колії. Ці двигуни потребують великого струму і повинні бути двонаправленими; отже, ми використовуємо модуль драйвера двигуна, такий як L293D. Нам також знадобиться обчислювальний пристрій, такий як Raspberry Pi, для інструктажу двигунів на основі значень ІЧ-датчика. Спрощена блок-схема того ж наведена нижче.
Ці два ІЧ-датчики будуть розміщені по обидва боки лінії. Якщо жоден з датчиків не виявляє їх на чорній лінії, вони вказують двигунам рухатися вперед, як показано нижче
Якщо лівий датчик потрапляє на чорну лінію, то PI вказує роботу повернути ліворуч, обертаючи праве колесо самостійно.
Якщо правий датчик потрапляє на чорну лінію, то PI вказує роботу повернути праворуч, обертаючи ліве колесо самостійно.
Якщо обидва датчики потрапляють на чорну лінію, робот зупиняється.
Таким чином, Робот зможе слідувати за лінією, не виходячи за межі колії. А тепер давайте подивимося, як виглядає схема та код.
Схема та пояснення роботи робота-послідовника Raspberry Pi
Повна електрична схема цього робота-послідовника Raspberry Pi наведена нижче
Як бачите, схема включає два ІЧ-датчики і пару двигунів, підключених до Raspberry pi. Повна схема живиться від мобільного енергобанку (представлений батареєю AAA у схемі вище).
Оскільки деталі штифтів не згадуються на Raspberry Pi, нам потрібно перевірити шпильки, використовуючи малюнок нижче
Як показано на малюнку, верхній лівий кутовий штифт PI - це штифт + 5 В, ми використовуємо цей штифт + 5 В для живлення ІЧ-датчиків, як показано на схемі (червоний дротовий). Потім ми підключаємо штирі заземлення до заземлення ІЧ-датчика та модуля драйвера двигуна за допомогою чорного дроту. Жовтий провід використовується для підключення до вихідного контакту датчика 1 і 2 до висновків GPIO і 3 відповідно.
Для керування двигунами нам потрібні чотири штифти (A, B, A, B). Ці чотири висновки з'єднані з GPIO14,4,17 та 18 відповідно. Помаранчевий і білий провід разом утворюють з'єднання для одного двигуна. Отже, у нас є дві такі пари на два мотори.
Двигуни підключені до модуля драйвера двигуна L293D, як показано на малюнку, а модуль драйвера живиться від блоку живлення. Переконайтеся, що заземлення блоку живлення підключено до заземлення Raspberry Pi, лише тоді ваше з’єднання буде працювати.
Програмування вашого Raspberry PI:
Після того, як ви закінчите збірку та підключення, ваш робот повинен виглядати приблизно так.
UТепер настав час запрограмувати наш бот і запустити його. Повний код цього бота можна знайти внизу цього посібника. Дізнайтеся більше про програму та запуск коду в Raspberry Pi тут. Важливі рядки пояснюються нижче
Ми збираємось імпортувати файл GPIO з бібліотеки, функція нижче дозволяє програмувати GPIO штифти PI. Ми також перейменовуємо “GPIO” на “IO”, тому в програмі, коли ми хочемо посилатися на шпильки GPIO, ми будемо використовувати слово “IO”.
імпортувати RPi.GPIO як IO
Іноді, коли шпильки GPIO, які ми намагаємось використовувати, можуть виконувати деякі інші функції. У такому випадку ми отримаємо попередження під час виконання програми. Команда нижче вказує PI ігнорувати попередження та продовжувати роботу з програмою.
IO.setwarnings (False)
Ми можемо вказати шпильки GPIO PI або за номером контакту на борту, або за номером їх функції. Як і "PIN 29" на платі, це "GPIO5". Отже, ми говоримо тут, або ми будемо представляти шпильку тут як «29» або «5».
IO.setmode (IO.BCM)
Ми встановлюємо 6 контактів як вхідні / вихідні. Перші два висновки - це вхідні виводи для зчитування ІЧ-датчика. Наступні чотири - вихідні штифти, з яких перші два використовуються для управління правим двигуном, а наступні два - для лівого двигуна.
IO.setup (2, IO.IN) #GPIO 2 -> Лівий ІЧ вихід IO.setup (3, IO.IN) #GPIO 3 -> Правий IR вихід IO.setup (4, IO.OUT) #GPIO 4 - > Клемма A IO.setup двигуна 1 (14, IO.OUT) #GPIO 14 -> Клемма B IO.setup двигуна 1 (17, IO.OUT) #GPIO 17 -> Клемма A IO.setup (18, IO).OUT) #GPIO 18 -> Клема B лівого двигуна
ІЧ-датчик виводить “True”, якщо він знаходиться на білій поверхні. Отже, поки обидва датчики говорять «True», ми можемо рухатися вперед.
if (IO.input (2) == True і IO.input (3) == True): # обидва білі рухаються вперед IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO. output (18, False) # 2B-
Ми повинні зробити правий поворот, якщо перший ІЧ-датчик потрапляє через чорну лінію. Це робиться шляхом зчитування ІЧ-датчика, і якщо умова виконана, ми зупиняємо правий двигун і обертаємо лівий двигун поодинці, як показано в коді нижче
elif (IO.input (2) == False та IO.input (3) == True): # повернути праворуч IO.putput (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO. Output (18, False) # 2B-
Ми повинні зробити поворот наліво, якщо другий ІЧ-датчик потрапляє через чорну лінію. Це робиться шляхом зчитування ІЧ-датчика, і якщо умова виконана, ми зупиняємо лівий двигун і обертаємо правий двигун поодинці, як показано в коді нижче
elif (IO.input (2) == True і IO.input (3) == False): # поворот наліво IO.putput (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO. Вихід (18, True) # 2B-
Якщо обидва датчика переходять чорну лінію, це означає, що робот повинен зупинитися. Це можна зробити, зробивши обидві клеми двигуна справжніми, як показано в коді нижче
ще: # залишатися нерухомим IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Послідовник Raspberry Pi Line в дії:
Завантажте код python для послідовника рядків на ваш Raspberry Pi і запустіть його. Нам потрібен портативний блок живлення, в цьому випадку блок живлення стає в нагоді, отже, я використовував те саме. Той, який я використовую, має два порти USB, тому я використовував для живлення PI, а інший - для живлення драйвера двигуна, як показано на малюнку нижче.
Тепер все, що вам потрібно зробити, це налаштувати власну доріжку чорного кольору і випустити над нею свого бота. Я використав чорну кольорову ізоляційну стрічку для створення доріжки, в якій можна використовувати будь-який чорний кольоровий матеріал, але переконайтесь, що ваш основний колір не темний.
Повну роботу бота можна знайти на відео, поданому нижче. Сподіваюся, ви зрозуміли проект і сподобалося його будувати. Якщо у вас виникли запитання, опублікуйте їх у розділі коментарів нижче.