Arduino – это очень популярная платформа для разработки устройств на микроконтроллерах AVR. Чаще всего – на ATMega328P.
Для написания, отладки и загрузки программ для Arduino существует много разных средств. В том числе, существует несколько разных сред разработки (IDE).
Arduino (одноимённая с самой платформой) – это среда разработки и загрузки программ от самих создателей платформы Arduino. Фактически, она является частью платформы, видимо, поэтому и носит то же название. Сама среда разработки написана на Java, и существует для разных операционных систем.
ArduIDE – это самостоятельная среда разработки (в смысле интерфейса; библиотеки же, разумеется, она подключает те же). Она является свободной, написана на Qt, поэтому работает на разных операционных системах, не требуя наличия Java-машины.
MariaMole – также свободная альтернативная среда разработки для Arduino. Она также написана на Qt, поэтому может использоваться на разных операционных системах.
Arduino CLI – це не зовсім середовище програмування. Точніше, це взагалі не середовище програмування, а інструмент, який дозволяє компілювати програми та завантажувати їх до мікроконтролера з командного рядка. Офіційний сайт дає такий опис:
“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.”
Встановити локально у будь-яку теку можна скриптом від розробників:
cd ~/arduinocli curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
Спочатку рекомендують створити конфігураційний файл, щоб не повторювати деякі параметри постійно у командному рядку:
$ arduinocli/bin/arduino-cli config init
Для додавання сторонніх платформ потрібно вказати відповідні додаткові посилання у цьому конфігураційному файлі:
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
$ 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
Для завантаження програми до мікроконтролера RP2040 з командного рядка Raspberry Pi OS може знадобитися дозвіл на автоматичне монтування дисків1).
sudo nano /etc/polkit-1/localauthority/50-local.d/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
Для Экранов на контроллере типа Hitachi HD44780 существует очень популярный I²C-модуль, позволяющий управлять экраном всего по двум сигнальным проводам. Таким образом, для полного подключения экрана достаточно четырёх проводов:
Для управления экраном через такой блок можно воспользоваться библиотекой New LiquidCrystal, которая поддерживает как прямое подсключение экрана, так и через I²C-модуль. Поскольку эта библиотека не входит в комплект поставки среды разработки Arduino, её необходимо скачать и установить самостоятельно. 2)
Простейший пример использования этой библиотеки показан ниже. Более интересные примеры можно найти, например, здесь.
#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() { }
http://2150692.ru/faq/36-otpravka-sms-cherez-arduino-i-gsm-modul-neoway-m590
http://shortn0tes.blogspot.com/2016/05/neoway-m590-gprs-tutorial-sending-and.html
http://2150692.ru/faq/62-gprs-svyaz-cherez-sim800l-i-arduino
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
Официальный сайт Arduino: https://www.arduino.cc/