84 lines
3.9 KiB
Markdown
84 lines
3.9 KiB
Markdown
**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)
|
||
|