Изменения

Перейти к: навигация, поиск

Arduino

1461 байт добавлено, 21:58, 28 августа 2021
Arduino Nano 168p
= Прерывания Ручная установка Arduino IDE на GNU/Linux =ДопустимБольшинство популярных дистрибутивов GNU/Linux (Ubuntu, ALT Linux, мы сделали "бегущий огонь" и теперь хотим прикрутить кнопку для управления режимом светодиодов...) содержат пакет Arduino в репозитории, который ставится средствами пакетного менеджера. Самым прямолинейным решениемОднако версия в репозитории как правило не самая свежая, на первый взгляд, является считвание значение кнопки поэтому здесь мы рассмотрим установку в ручном режиме под 64-битную систему. Переходим по ссылке: https://www.arduino.cc/en/software/ Скачиваем последнюю стабильную версию Arduino IDE (файл называется примерно так: <code>arduino-1.8.15-linux64.tar.xz</code>) Перемещаем архив в начале <code>loop/opt</code>:<pre>$ sudo su -$ mv ~/Downloads/arduino-1. Собираем схему, добавляем считывание значения с цифрового порта и логику переключения режимов8.15-linux64.tar.xz /opt</pre> Распаковываем архив:<pre>$ cd /opt$ tar -Jxf arduino-1.8.15-linux64. Всё бы хорошо, но наше кратковременное нажатие на кнопку обычно приводит к многократному считыванию значения; как следствие, логика не работает, как должнаtar.xz</pre>
Плюс, добавляя кнопку в наш проектЧтобы всё было красиво, мы добавляем в наш проект неопределённость создаём симлинк:<pre>$ ln -s arduino- нажатие на кнопку может возникнуть в любой момент, и (если всё делать по-нормальному) мы должны обрабатывать это событие в тот момент, как оно возникла1. В таких случаях говорят, что событие возникает асинхронно (по отношению к нашей программе8.)15 arduino<pre>
Для правильного решения данной задачи необходимо использовать прерыванияЗапускаем установщик:<pre>$ cd arduino$ ./install.sh</pre>
== Реакция на внешние события ==Не забываем добавить вашего пользователя в группу <code>dialout</code>, иначе система вам не даст прав для доступа к устройству в <code>/dev</code>. Допустим, имя пользователя -- <code>avp</code>:Для обработки внешнего асинхнонного события нам потребуются как минимум две вещи:<pre>* Написать обработчик события$ usermod -a -G dialout avp* Связать обработчик с внешним событием</pre>
TODOПосле добавления пользователя в группу надо перезайти под этим пользователем в систему, или же перезагрузить компьютер, чтобы новые права вступили в силу.
=Общая информация = Прерывания * Методичка/Книга [https://docs.google.com/document/d/1bDCyNURCL4vtBt96BZDe56C4fJJWLA7_b3P4lXrUvzY/edit "Разработка микропроцессорных систем"]* [http://forum.arduino.cc/index.php?topic=73748.0 Loop-Back Test] -- описание одного из методов тестирования МК.* [https://cdn.solarbotics.com/products/documentation/ardx-eg-sola-russian.pdf Руководство по таймеру ==освоению Arduino] (на русском языке)TODO* Brian W. Evans, [http://playground.arduino.cc/uploads/Main/arduino_notebook_v1-1.pdf arduino programming notebook] (на анлийском языке)
== См. также =Прерывания =
* [http://www.engblaze.com/we-interrupt-this-program-to-bring-you-a-tutorial-on-arduino-interrupts/ We interrupt this program to bring you an Arduino interrupt tutorial] (англ.)
* [http://www.engblaze.com/microcontroller-tutorial-avr-and-arduino-timer-interrupts/ Microcontroller tutorial series: AVR and Arduino timer interrupts] (англ.)
 
= Работа с программатором =
* Vcc2GND, [http://www.instructables.com/id/Uploading-Sketch-to-Arduino-Pro-Mini-using-usbASP/ "Uploading Sketch to Arduino Pro Mini using usbASP"]
= Подключение оборудования =
* [[Arduino/MT-16S2H|ЖК-дисплей МЭЛТ MT-16S2H]]
* [[Arduino/RotaryDial|Дисковый номеронабиратель]]
 
= Arduino Nano 168p =
Специфика работы с Arduino Nano на базе микроконтроллера [[маркировка::MEGA 168PA]].
* http://playground.arduino.cc/Bootloader/ArduinoBootloader168P
 
Судя по отзывам на AliExpress, некоторые Arduino на базе МК 168pa поставляются без загрузчика. Необходимо прошить сначала загрузчик через USBasp, потом уже использовать обычное подключение по USB (встроенный USB-UART).
[[Категория:База знаний]]

Навигация