3.9 KiB
2. Прошивка Arduino nano
В каталоге arduino лежит файлы для прошивки arduino nano (ATmega328P).
Для прошивки: устанавила Arduino IDE (из AUR)
**yay -S --aur arduino-ide-bin **
и пакет для доступа к ней через терминал:
sudo pacman -S arduino
Разрешаем текущему пользователю доступ к последовательным портам (и соответсвующим lock файлам) :
sudo usermod -a -G uucp $USER sudo usermod -a -G lock $USER
Так как при каждом перетыкивании платы в USB-порт linux увеличивает его значение (USB0, затем USB1, USB2... и т.д.), я добавила правило для именования порта для arduino, то есть чтобы порт всегда назывался одинаково ("/dev/arduino") и всегда имел права 666:
выполняем в терминале:
**lsusb **
ищем в нём нашу ардуинку: должно быть что-то вроде:
Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics CH340 serial converter
запоминаем полученный ID!
выполняем команды:
sudo nano /etc/udev/rules.d/99-arduino.rules
вставляем код (замените ID 1a86:7523 на ваши, если плата отличается)
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="arduino", MODE="0666"
Выполняем запись и выходим: жмём Ctrl+O, затем Ctrl+X.
применяем правило:
sudo udevadm control --reload-rules && sudo udevadm trigger
проверяем:
** ls -l /dev/arduino**
должно вывести примерно так:
lrwxrwxrwx 1 root root 7 фев 21 15:54 /dev/arduino -> ttyUSB0
Запускаем Arduino IDE:
в Менеджере плат (кнопка слева) ищем и устанавливаем: Arduino AVR Boards
затем (кнопка ниже) ищем и устанавливаем библиотеку: Adafruit SHT31 Library.
Теперь надо выбрать модель платы: Инструменты -> Плата -> Менеджер плат -> Arduino AVR Boards - Arduino Nano
Выбрать порт: Инструменты -> Серийный порт: /dev/tty/USB0 (обычно arduino IDE сама определяет нужный порт, просто тыкаем в него)
Выбираем загрузчик: Инструменты -> Processor -> Atmega328P (Old bootloader)
Теперь всё должно быть готово для прошивки: вставляем код sketch_hum_temp.ino и жмем на кнопку слева (->) "Загрузить на плату". В случае успеха :) ошибок быть не должно и прошивка загрузится, замигает красный светодиод и перестанет - значит данные отправляются в порт USB.
Для проверки, что данные приходят: или в Arduino IDE тыкаем кнопку "Монитор порта" (изображена в виде лупы вверху слева)). , или в терминале вводим: cat /dev/arduino
должно будет вывести сообщения инициализации датчика и отправлять данные о температуре и влажности каждые 30 секунд.
если всё OK, тогда жмем Ctrl+С чтобы прервать чтение из порта, закрываем терминал и закрываем IDE (чтобы освободить порт arduino)