Arduino — различия между версиями

Материал из CADR
Перейти к: навигация, поиск
(Добавил категорию "База знаний")
(Arduino Nano 168p)
 
(не показано 12 промежуточных версий этого же участника)
Строка 1: Строка 1:
= Прерывания =
+
= Ручная установка Arduino IDE на GNU/Linux =
Допустим, мы сделали "бегущий огонь" и теперь хотим прикрутить кнопку для управления режимом светодиодовСамым прямолинейным решением, на первый взгляд, является считвание значение кнопки в начале <code>loop</code>. Собираем схему, добавляем считывание значения с цифрового порта и логику переключения режимов. Всё бы хорошо, но наше кратковременное нажатие на кнопку обычно приводит к многократному считыванию значения; как следствие, логика не работает, как должна.
+
Большинство популярных дистрибутивов 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>/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
+
После добавления пользователя в группу надо перезайти под этим пользователем в систему, или же перезагрузить компьютер, чтобы новые права вступили в силу.
  
== Прерывания по таймеру ==
+
= Общая информация =
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] (на русском языке)
 +
* 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/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] (англ.)
 
* [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).
  
 
[[Категория:База знаний]]
 
[[Категория:База знаний]]

Текущая версия на 21:58, 28 августа 2021

Ручная установка Arduino IDE на GNU/Linux

Большинство популярных дистрибутивов GNU/Linux (Ubuntu, ALT Linux, ...) содержат пакет Arduino в репозитории, который ставится средствами пакетного менеджера. Однако версия в репозитории как правило не самая свежая, поэтому здесь мы рассмотрим установку в ручном режиме под 64-битную систему.

Переходим по ссылке: https://www.arduino.cc/en/software/

Скачиваем последнюю стабильную версию Arduino IDE (файл называется примерно так: arduino-1.8.15-linux64.tar.xz)

Перемещаем архив в /opt:

$ sudo su -
$ mv ~/Downloads/arduino-1.8.15-linux64.tar.xz /opt

Распаковываем архив:

$ cd /opt
$ tar -Jxf arduino-1.8.15-linux64.tar.xz

Чтобы всё было красиво, создаём симлинк:

$ ln -s arduino-1.8.15 arduino
<pre>

Запускаем установщик:
<pre>
$ cd arduino
$ ./install.sh

Не забываем добавить вашего пользователя в группу dialout, иначе система вам не даст прав для доступа к устройству в /dev. Допустим, имя пользователя -- avp:

$ usermod -a -G dialout avp

После добавления пользователя в группу надо перезайти под этим пользователем в систему, или же перезагрузить компьютер, чтобы новые права вступили в силу.

Общая информация

Прерывания

Работа с программатором

Подключение оборудования

Arduino Nano 168p

Специфика работы с Arduino Nano на базе микроконтроллера MEGA 168PA.

Судя по отзывам на AliExpress, некоторые Arduino на базе МК 168pa поставляются без загрузчика. Необходимо прошить сначала загрузчик через USBasp, потом уже использовать обычное подключение по USB (встроенный USB-UART).