Дабы расширить возможности моего миникомпьютера Raspberry Pi 3 Model B, я подключаю к нему устройство на основе микроконтроллера Atmega328P. Что примечательно микроконтроллер Atmega328 установленный на плате Arduino UNO R3 может питаться от USB разъема, что в текущей задаче будет только мне на руку.
Схема которую я хочу разобрать:
Raspberry Pi 3 Model B + USB 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
Но вот тут у меня беда, я не вижу верхнюю панель (а именно: Файл, Правка, Скетч, Сервис, Справка)
Дело в том, что при подключении по 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
После того, как поборол проблему с разрешением смело принимаюсь к настройке среды разработки на работу. В открытой среде разработки 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.