Raspberry Pi та Arduino - дві найпопулярніші плати з відкритим кодом у Electronics Community. Вони популярні не лише серед інженерів-електроніків, а й серед учнів школи та любителів, завдяки своїй легкості та простоті. Навіть деякі люди просто почали любити електроніку через Raspberry Pi та Arduino. Ці дошки мають великі повноваження, і за кілька простих кроків та невелике програмування можна створити дуже складний і високотехнологічний проект.
Ми створили безліч проектів та навчальних посібників Arduino, від дуже простих до складних. Ми також створили Серію підручників з Raspberry Pi, де кожен бажаючий може розпочати навчання з нуля. Це невеликий внесок у співтовариство електроніки з нашого боку, і цей портал зарекомендував себе як Великий навчальний ресурс для електроніки. Отже, сьогодні ми об’єднуємо ці дві чудові дошки, поєднуючи Arduino з Raspberry Pi.
У цьому підручнику ми встановимо послідовний зв’язок між Raspberry Pi та Arduino Uno. PI має лише 26 штифтів GPIO і нульові канали АЦП, тому, коли ми робимо такі проекти, як 3D-принтер, PI не може виконувати всі взаємодії самостійно. Отже, нам потрібно більше вихідних штифтів та додаткові функції, для додавання більшої кількості функцій до PI ми встановлюємо зв'язок між PI та UNO. При цьому ми можемо використовувати всі функції UNO, як це були функції PI.
Arduino - це велика платформа для розробки проектів, що має багато плат, таких як Arduino Uno, Arduino Pro mini, Arduino Due та ін. Це платформи на базі контролера ATMEGA, призначені для інженерів-електронників та любителів. Хоча на платформі Arduino багато плат, але Arduino Uno отримав багато оцінок за легкість виконання проектів. Середовище розробки програм на базі Arduino - це простий спосіб написати програму в порівнянні з іншими.
Необхідні компоненти:
Тут ми використовуємо Raspberry Pi 2 Model B з ОС Raspbian Jessie та Arduino Uno. Усі основні вимоги до апаратного та програмного забезпечення, що стосуються Raspberry Pi, вже обговорювалися раніше, ви можете переглянути їх у Вступі до Raspberry Pi, крім того, що нам потрібно:
- З'єднувальні штифти
- 220Ω або 1KΩ резистор (2 шт.)
- СВІТЛОДІОДНИЙ
- Кнопка
Пояснення схеми:
Як показано на схемі вище, ми підключимо UNO до порту USB PI за допомогою USB-кабелю. Є чотири порти USB для PI; Ви можете підключити його до будь-якого з них. Кнопка підключена для ініціалізації послідовного зв'язку та світлодіод (блимає), який вказує, що дані надсилаються.
Пояснення до роботи та програмування:
Частина Arduino Uno:
Спочатку давайте запрограмуємо UNO, Спочатку підключіть UNO до ПК, а потім напишіть програму (розділ перевірки коду нижче) в програмному забезпеченні Arduino IDE і завантажте програму до UNO. Потім від'єднайте UNO від ПК. Приєднайте UNO до PI після програмування та підключіть світлодіод та кнопку до UNO, як показано на схемі.
Тепер програма ініціює послідовний зв'язок UNO. Коли ми натискаємо кнопку, прикріплену до UNO, UNO послідовно надсилає кілька символів до PI через порт USB. Світлодіод, прикріплений до PI, блимає, вказуючи на символи, що надсилаються.
Частина Raspberry Pi:
Після цього ми повинні написати програму для PI (розділ перевірки коду нижче), щоб отримати ці дані, що надсилаються UNO. Для цього нам потрібно зрозуміти кілька команд, зазначених нижче.
Ми збираємось імпортувати послідовний файл із бібліотеки, ця функція дозволяє нам надсилати або отримувати дані послідовно або через порт USB.
імпорт серійний
Тепер нам потрібно вказати порт пристрою та швидкість передачі даних, щоб PI отримував дані від UNO без помилок. У наведеній нижче команді зазначено, що ми вмикаємо послідовний зв'язок 9600 біт на секунду через порт ACM0.
ser = serial.Serial ('/ dev / ttyACM0', 9600)
Щоб дізнатися порт, до якого приєднується ООН, перейдіть до терміналу PI та введіть
ls / dev / tty *
У вас буде список усіх підключених пристроїв на PI. Тепер підключіть Arduino Uno до Raspberry Pi за допомогою USB-кабелю і знову введіть команду. Ви можете легко визначити порт, що підключається до UNO, із відображеного списку.
Команда нижче використовується як назавжди цикл, за допомогою цієї команди оператори всередині цього циклу будуть виконуватися постійно.
Поки 1:
Після отримання даних послідовно ми будемо відображати символи на екрані PI.
print (ser.readline ())
Отже, після натискання кнопки, прикріпленої до UNO, ми побачимо символи, що друкуються на екрані PI. Отже, ми створили базове спілкування між Raspberry Pi та Arduino.