Соединяем Raspberry Pi 3 и Arduino UNO R3

Posted by

Дабы расширить возможности моего миникомпьютера , я подключаю к нему устройство на основе микроконтроллера Atmega328P. Что примечательно микроконтроллер Atmega328 установленный на плате может питаться от USB разъема, что в текущей задаче будет только мне на руку.

Схема которую я хочу разобрать:

Raspberry Pi 3 Model B + USB Arduino UNO R3

Мое подключение Raspberry Pi 3 Model B и Arduino UNO R3

Шаги:

  • Записываю образ операционной системы Raspbian на MicroSD
  • Подключаю миникомпьютер Raspberry Pi 3 к монитору через переходник HDMI на VGA, также мне понадобиться мышь и клавиатура
  • Подключаю сетевой провод от моего домашнего роутера RB2011UiAS-2HnD
  • Произвожу первоначальную настройку миникомпьютера
  • Включаю удаленное подключение через VNC и SSH
  • Отключаю монитор, мышь и клавиатуру
  • Посредством USB кабеля соединяю миникомпьютер Raspberry Pi 3 Model B с платой Arduino UNO R3
  • Далее подключаюсь со своего домашнего ноутбука Lenovo E555 системы Ubuntu Trusty Dekstop amd64 Gnome Classic через клиент Remmina (соединение по VNC) к миникомпьютеру Raspberry Pi 3 Model B.

Следом открываю консоль командной строки (Ctrl + Alt + T) и устанавливаю среду разработки Arduino UNO R3:

pi@raspberrypi:~ $ sudo apt-get install arduino -y

pi@raspberrypi:~ $ java -version

java version "1.8.0_65"

Java(TM) SE Runtime Environment (build 1.8.0_65-b17)

Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)

После проверяю, как видит мой микроконтроллер плату Arduino UNO R3:

pi@raspberrypi:~ $ lsusb | grep Arduino

Bus 001 Device 004: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)

pi@raspberrypi:~ $ ls -l /dev/ttyACM0

crw-rw---- 1 root dialout 166, 0 Feb 25 22:02 /dev/ttyACM0

Теперь запускаю среду разработки Arduino IDE посредством которой можно уже писать скетчи взаимодействия платы и подключенного к ней: датчики, устройства и всё что необходимо, этим я отхожу от использования подключения платы к ноутбуку.

pi@raspberrypi:~ $ arduino или клавиша Win → Electonics — Arduino IDE

Но вот тут у меня беда, я не вижу верхнюю панель (а именно: Файл, Правка, Скетч, Сервис, Справка)

Не вижу верхнюю панель среды Arduino UNO R3Дело в том, что при подключении по VNC текущее разрешение слишком мало, чтобы поправить нужно:

pi@raspberrypi:~ $ sudo raspi-config

Advanced Options, Select — Resolution, Select — как вижу дефолтное разрешение это: Default 720 x 480, а на мне хотя бы использовать: DMT Mode 16 1024×768 60 Hz 4:3, выбираю его и нажимаю Ok, The resolution is set to DMT mode 16 снова нажимаю Ok, а потом Finish чтобы завершить работу с мастером настроек Raspberry Pi Software Configuration Tool. Вот только изменения применяться лишь после перезагрузки: Would you like to reboot now? Нажимаю Yes.

Когда миникомпьютер загрузиться снова подключаюсь к нему по VNC и запустив среду разработки Arduino IDE все становится правильно, все видно и можно не ютиться в ограниченном пространстве:

клавиша (виндоус) Win → Electonics — Arduino IDE

Поправил разрешение экрана при подключении через VNC к Raspberry Pi 3 Model BПосле того, как поборол проблему с разрешением смело принимаюсь к настройке среды разработки на работу. В открытой среде разработки Arduino UNO:

  • Tools — Board — выбираю Arduino UNO
  • Tools — Serial Port — выбираю /dev/ttyACM0

Вот собственно и всё, теперь я могу из миникомпьютера взаимодействовать через среду разработки с платой Arduino UNO R3. Но как это проверить, а все просто, в среде разработки есть множество примеров и одним из них: File — Examples — 01 Basics — Blink, это простое моргание светодиодом напротив Pin № 13 на плате Arduino UNO R3.

Итак, скетч загружен и нужно его загрузить на микропроцессор Atmega328P:

  • Sketch — Verify/Compile (или сочетание клавиш Ctrl + R)
  • File — Upload (или сочетание клавиш Ctrl + U)

Все готово, следом обращаюсь свой взор на плату Arduino UNO R3 и вижу, что напротив цифрового PIN 13 начинает моргать светодиод. У меня все так как и задумано, точнее это самый простой пример чего уж тут скромничать.

Далее нужно очистить микропроцессор от данного скетча демонстрации. Создаю новый скетч следующего содержания: проверяю его и отправляю на плату

void setup(){};

void loop(){};

Все содержимое микропроцессора очищено и готово для Ваших проектов или проектов которые Вы также, как и я хотите повторить, имеющих место быть уже сделанными сообществом, а уже на их основе внести свои доработки.

Пока на этом всё, заметка завершена, и пора прощаться, с уважением Олло Александр aka ekzorchik.