Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Both sides previous revision Попередня ревізія Наступна ревізія | Попередня ревізія | ||
arduino [2015/11/17 22:54] wombat Символьный ЖК-экран 1602 |
arduino [2025/06/24 16:06] (поточний) wombat [Завантаження] |
||
---|---|---|---|
Рядок 2: | Рядок 2: | ||
Arduino -- это очень популярная платформа для разработки устройств на микроконтроллерах AVR. Чаще всего -- на ATMega328P. | Arduino -- это очень популярная платформа для разработки устройств на микроконтроллерах AVR. Чаще всего -- на ATMega328P. | ||
+ | |||
+ | |||
+ | ====== Среды разработки ====== | ||
+ | |||
+ | Для написания, отладки и загрузки программ для Arduino существует много разных средств. В том числе, существует несколько разных сред разработки (IDE). | ||
+ | |||
+ | ===== Arduino ===== | ||
+ | |||
+ | [[https://www.arduino.cc/en/Main/Software | Arduino ]] (одноимённая с самой платформой) -- это среда разработки и загрузки программ от самих создателей платформы Arduino. Фактически, она является частью платформы, видимо, поэтому и носит то же название. Сама среда разработки написана на Java, и существует для разных операционных систем. | ||
+ | |||
+ | ===== Arduide ===== | ||
+ | |||
+ | [[http://www.mupuf.org/project/arduide.html | ArduIDE]] -- это самостоятельная среда разработки (в смысле интерфейса; библиотеки же, разумеется, она подключает те же). Она является свободной, написана на Qt, поэтому работает на разных операционных системах, не требуя наличия Java-машины. | ||
+ | |||
+ | ===== MariaMole ===== | ||
+ | |||
+ | [[http://dalpix.com/mariamole | MariaMole]] -- также свободная альтернативная среда разработки для Arduino. Она также написана на Qt, поэтому может использоваться на разных операционных системах. | ||
+ | |||
+ | |||
+ | ===== Arduino CLI ===== | ||
+ | |||
+ | Arduino CLI -- це не зовсім середовище програмування. Точніше, це взагалі не середовище програмування, а інструмент, який дозволяє компілювати програми та завантажувати їх до мікроконтролера з командного рядка. [[https://arduino.github.io/arduino-cli/1.2/ | Офіційний сайт]] дає такий опис: | ||
+ | |||
+ | "//Arduino CLI is an all-in-one solution that provides Boards/Library Managers, sketch builder, board detection, uploader, and many other tools needed to use any Arduino compatible board and platform from command line or machine interfaces.//" | ||
+ | |||
+ | ==== Встановлення ==== | ||
+ | |||
+ | Встановити локально у будь-яку теку можна [[https://github.com/arduino/arduino-cli/blob/master/install.sh | скриптом від розробників]]: | ||
+ | |||
+ | cd ~/arduinocli | ||
+ | curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh | ||
+ | |||
+ | |||
+ | ==== Налаштування ==== | ||
+ | |||
+ | Спочатку рекомендують створити конфігураційний файл, щоб не повторювати деякі параметри постійно у командному рядку: | ||
+ | |||
+ | $ arduinocli/bin/arduino-cli config init | ||
+ | |||
+ | Для додавання сторонніх платформ потрібно вказати відповідні додаткові посилання у цьому конфігураційному файлі: | ||
+ | |||
+ | <file yaml arduino-cli.yaml> | ||
+ | board_manager: | ||
+ | additional_urls: | ||
+ | - https://arduino.esp8266.com/stable/package_esp8266com_index.json | ||
+ | - https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json | ||
+ | </file> | ||
+ | |||
+ | $ arduinocli/bin/arduino-cli core update-index | ||
+ | $ arduinocli/bin/arduino-cli core install rp2040:rp2040 | ||
+ | |||
+ | $ arduinocli/bin/arduino-cli board list | ||
+ | Port Protocol Type Board Name FQBN Core | ||
+ | /dev/ttyACM0 serial Serial Port (USB) GroundStudio Marble Pico rp2040:rp2040:groundstudio_marble_pico rp2040:rp2040 | ||
+ | Serial Port (USB) Waveshare RP2040 PiZero rp2040:rp2040:waveshare_rp2040_pizero rp2040:rp2040 | ||
+ | Serial Port (USB) Waveshare RP2040 Zero rp2040:rp2040:waveshare_rp2040_zero rp2040:rp2040 | ||
+ | |||
+ | Додаткові бібліотеки можна встановити наступним чином (на прикладі бібліотеки "FastLED"): | ||
+ | |||
+ | arduinocli/bin/arduino-cli lib search FastLED | ||
+ | arduinocli/bin/arduino-cli lib install FastLED | ||
+ | |||
+ | | ||
+ | ==== Компіляція ==== | ||
+ | |||
+ | arduinocli/bin/arduino-cli compile --fqbn rp2040:rp2040:waveshare_rp2040_zero MySketch | ||
+ | |||
+ | |||
+ | ==== Завантаження ==== | ||
+ | |||
+ | arduinocli/bin/arduino-cli upload -p /dev/ttyACM0 --fqbn rp2040:rp2040:waveshare_rp2040_zero MySketch | ||
+ | |||
+ | <note> | ||
+ | **Зауваження для RP2040 та віддаленої консолі Raspberry Pi.** | ||
+ | |||
+ | Для завантаження програми до мікроконтролера RP2040 з командного рядка Raspberry Pi OS може знадобитися дозвіл на автоматичне монтування дисків((https://askubuntu.com/a/1424539/298881)). | ||
+ | |||
+ | sudo nano /etc/polkit-1/localauthority/50-local.d/50-easy-mount.pkla | ||
+ | |||
+ | <file ini 50-easy-mount.pkla> | ||
+ | [Allow mounting without password] | ||
+ | Identity=unix-group:sudo | ||
+ | Action=org.freedesktop.udisks2.filesystem-mount;org.freedesktop.udisks2.filesystem-mount-other-seat | ||
+ | ResultAny=yes | ||
+ | </file> | ||
+ | </note> | ||
====== Программирование ====== | ====== Программирование ====== | ||
Рядок 15: | Рядок 101: | ||
=== I²C === | === I²C === | ||
+ | {{:lcd1602-i2c.jpg?200|}} Для Экранов на контроллере типа Hitachi HD44780 существует очень популярный I²C-модуль, позволяющий управлять экраном всего по двум сигнальным проводам. Таким образом, для полного подключения экрана достаточно четырёх проводов: | ||
+ | * "общий" или "земля" (GND), | ||
+ | * питание (+5В), | ||
+ | * и два управляющих (SCL, SDA). | ||
+ | Для управления экраном через такой блок можно воспользоваться библиотекой [[https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home | New LiquidCrystal]], которая поддерживает как прямое подсключение экрана, так и через I²C-модуль. Поскольку эта библиотека не входит в комплект поставки среды разработки Arduino, её необходимо [[https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads | скачать]] и [[https://www.arduino.cc/en/Guide/Libraries#toc5 | установить]] самостоятельно. ((В моём случае для успешной сборки проекта с использованием этой библиотеки пришлось удалить (временно перенести в другую папку) стандартную библиотеку [[https://www.arduino.cc/en/Reference/LiquidCrystal | LiquidCrystal]] из каталога библиотек Arduino, поскольку эти библиотеки конфликтовали.)) | ||
+ | Простейший пример использования этой библиотеки показан ниже. Более интересные примеры можно найти, например, [[https://arduino-info.wikispaces.com/LCD-Blue-I2C | здесь]]. | ||
+ | |||
+ | <code c "arduino-LCD1602-I2C-basic.c"> | ||
+ | #include <LiquidCrystal_I2C.h> | ||
+ | // Задание адреса устройства и других параметров: | ||
+ | LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | lcd.begin(16,2); // включение режима 16 символов, 2 строки | ||
+ | lcd.backlight(); // включение подсветки | ||
+ | lcd.setCursor(0,0); // перевод курсора в первую позицию первой строки | ||
+ | lcd.print("Hello!"); // вывод слова "Hello!" | ||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | } | ||
+ | </code> | ||
==== Растровый ЖК-экран Nokia 5110 ==== | ==== Растровый ЖК-экран Nokia 5110 ==== | ||
Рядок 25: | Рядок 135: | ||
FIXME | FIXME | ||
+ | ====== Дополнительные модули ====== | ||
+ | |||
+ | ===== GSM ===== | ||
+ | |||
+ | ==== M590 ==== | ||
+ | |||
+ | http://2150692.ru/faq/36-otpravka-sms-cherez-arduino-i-gsm-modul-neoway-m590 | ||
+ | |||
+ | http://3.bp.blogspot.com/-UKDPrI13Upc/Vc3OlCsOKgI/AAAAAAAAOOk/kheicepa20k/s1600/releveu_modul_cu_M590_curatat.JPG | ||
+ | |||
+ | http://shortn0tes.blogspot.com/2016/05/neoway-m590-gprs-tutorial-sending-and.html | ||
+ | |||
+ | http://2150692.ru/faq/62-gprs-svyaz-cherez-sim800l-i-arduino | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====== Різні мікроконтролери ====== | ||
+ | |||
+ | |||
+ | ===== ESP8266 ===== | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | |||
+ | |||
+ | ===== LGT8F328P ===== | ||
+ | |||
+ | https://github.com/RalphBacon/LGT8F328P-Arduino-Clone-Chip-ATMega328P | ||
+ | |||
+ | https://github.com/dbuezas/lgt8fx | ||
+ | |||
+ | https://github.com/dbuezas/lgt8fx/tree/master/docs | ||
+ | |||
+ | https://github.com/LaZsolt/lgt8fx/tree/master/lgt8f/libraries/lgt_LowPower | ||
+ | |||
+ | https://wolles-elektronikkiste.de/en/minievb-boards-an-overview#lqfp32_nano | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | FIXME | ||
Рядок 32: | Рядок 186: | ||
Официальный сайт Arduino: https://www.arduino.cc/ | Официальный сайт Arduino: https://www.arduino.cc/ | ||
+ | [[http://hmario.home.xs4all.nl/arduino/LiquidCrystal_I2C/ | Arduino LiquidCrystal_I²C library by Mario H.]] |