| Порівняння попередніх версійПопередня ревізіяНаступна ревізія | Попередня ревізія |
| arduino [2015/11/18 08:52] – [Символьный ЖК-экран 1602] I²C wombat | arduino [2026/03/09 12:03] (поточний) – [Завантаження] 50-easy-mount.rules wombat |
|---|
| |
| 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 |
| | network: |
| | connection_timeout: 600s |
| | </file> |
| | |
| | Параметр "''connection_timeout: 600s''" буде корисним для випадків, коли мережеве з'єднання недостатньо швидке, або файли для додаткових платформ занадто великі, і не встигають завантажитися за 60 секунд (час за замовчуванням). |
| | |
| | $ 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> |
| | |
| | Якщо попереднє рішення не працює, і під час спроби завантажити програму до мікроконтролера на екрані все одно видається запит на введення паролю, то можна спробувати додати файл "''/etc/polkit-1/rules.d/50-easy-mount.rules''" з наступним вмістом((https://askubuntu.com/a/1556654/298881)): |
| | |
| | <file udev 50-easy-mount.rules> |
| | polkit.addRule(function(action, subject) { |
| | if ((action.id == "org.freedesktop.udisks2.filesystem-mount-system" || |
| | action.id == "org.freedesktop.udisks2.filesystem-mount" || |
| | action.id == "org.freedesktop.udisks2.filesystem-mount-other-seat") && |
| | subject.isInGroup("sudo")) { |
| | return polkit.Result.YES; |
| | } |
| | }); |
| | </file> |
| | |
| | після чого перезапустити сервіс Polkit |
| | |
| | sudo systemctl restart polkit.service |
| | |
| | Принаймні, це рішення перевірено на Ubuntu 24.04. |
| | </note> |
| |
| ====== Программирование ====== | ====== Программирование ====== |
| 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 |
| |
| |
| Официальный сайт 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.]] |