Разное

Как написать скетч для ардуино для телескопа: Уроки Arduino. Пишем скетч | AlexGyver Technologies

Содержание

Урок 6. Как программировать Ардуино или анатомия скетча

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

Как только схема будет создана на макете (макетной плате), нам нужно будет загрузить программу в Arduino. Напоминаю, что программу мы часто будем называть скетчем. Скетч или эскиз представляет собой набор инструкций, которые сообщают плате, какие функции она должна выполнять. Плата Arduino может хранить и выполнять только один скетч за раз.

Как мы уже изучили в предыдущем уроке — программное обеспечение, используемое для создания эскизов Arduino, называется IDE, что означает интегрированную среду разработки. Программное обеспечение бесплатно и скачать вы его можете по ссылке в Уроке 5.

Каждый скетч, каждая программа Arduino состоит из двух основных частей:

  • void setup() — часть программы где нужно указать то, будет выполняться один раз без повторений.
  • void loop() — содержит инструкции, которые повторяются снова и снова, пока плата не будет выключена.

В переводе с английского языка слово loop означает — цикл. Слово setup переводится как — настройка.

Итак, программы на языке Arduino называются «скетчами» или «эскизами» и эскиз Arduino состоит из двух основных частей:

  • функции настройки (setup),
  • функции цикла (loop).

setup() — функция setup() автоматически выполняется в самом начале программы Arduino. Внутри этой функции вы будете инициализировать переменные, пины (выводы платы) и любые библиотеки, которые вы могли бы использовать в своем эскизе. Функция setup() запускается только один раз во время выполнения скетча Arduino, прямо при включении питания или сбросе.

loop() — функция loop() содержит основную часть вашей программы. Эта функция выполняется после завершения setup(). Arduino будет выполнять команды внутри цикла снова и снова, пока плата не выключится.

Вот такая простая анатомия скетча Ардуино. С этого момента вам очень пригодится Справочник программиста Arduino. Напоминаю, что платы программируются на языке, который очень близок классическому C++.

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

Iskra JS для тех, кто знаком с Arduino [Амперка / Вики]

Вы работали с платами Arduino или xDuino? Разобраться с Iskra JS и экосистемой Espruino будет просто. Iskra JS сочетает:

Зачем разбираться с JS

В 2005 году Arduino произвела фурор в мире DIY. Раньше разработчик гаджета должен был разбираться в программировании, аппаратной архитектуре и схемотехнике — даже чтобы сделать простое устройство. С появлением Arduino мир электроники стал доступен новичкам, а время разработки сократилось в разы.

Iskra JS — следующий шаг в упрощении разработки!

Разработка стала ещё быстрее, код понятнее, освоение проще. Можно сосредоточиться на сути проекта, а не на архитектурных особенностях микроконтроллера, борьбе за память и программировании на C++.

Сейчас не встретить веб-приложений на C++: балом правят PHP, Python, Ruby и JavaScript. Они медленнее C++, но гораздо выразительнее и проще: скорость разработки растает, а процесс освоения упрощается.

Так и Iskra JS: если важны результат и комфортная среда программирования, а оптимизация не является самоцелью — Iskra JS станет логичным продолжением разработки устройств на платформе Arduino.

Железо

Iskra JS сделана в форм-факторе Arduino — с ней можно использовать те же платы расширения, модули и корпуса. Отличие в микроконтроллере: Cortex M4 с 1 МБ flash-памяти способен разместить как JavaScript-ядро, так и саму программу.

Ядро прошивается в микроконтроллер при производстве, а программы загружаются через USB-порт. По USB можно и обновить ядро, а через SWD-разъём — полностью перепрошить устройство.

Отличия JavaScript

JavaScript и C++ — разные языки, в которых сходства меньше, чем различий. Но после программирования Arduino, освоение JavaScript не вызовет проблем.

Код на верхнем уровне

Как отреагирует компилятор на такой код C++?

#include <Servo.h>
Servo myServo;
myServo.attach(3); // Err
myServo.write(120); // Yargh!

Естественно, ошибкой. attach и write вызваны вне рамок setup или loop, а код не может исполняться в глобальной области видимости.

В JavaScript код можно и нужно писать на первом уровне:

var myServo = require('@amperka/servo').connect(P3);
myServo.write(120);

Этот код выставит сервопривод на 3-м пине в положение на 120°.

Динамическая типизация

В C++ каждая переменная должна обладать явно прописанным типом: int, bool, float, LiquidCrystal и т.д:

int x = 0;
bool b = true;
float f = 3.1415926;
FantasyShield myShield = FantasyShield(1, 2, 3, 4, 5, 6);
 
void setup() {
  x = myLCD; // ошибка: x и myShield имеют разные типы
}

В JavaScript всё проще: тип переменной устанавливается автоматически, а в ходе выполнения программы переменная даже может изменять свой тип.

var x = 0;
var b = true;
var f = 3.1415926;
var myShield = FantasyShield(1, 2, 3, 4, 5, 6);
 
x = myShield; // Это нормально. x стала объектом-FantasyShield

Функции для работы с пинами

Функции pinMode, digitalRead, digitalWrite, analogRead доступны и на Iskra JS. Не нужно учить ничего нового:

Arduino Iskra JS
Считать цифровой пин digitalRead(3) digitalRead(P3)
Считать аналоговый пин analogRead(A3) analogRead(A3)
Записать в цифровой пин digitalWrite(3, HIGH) digitalWrite(P3, HIGH)
Подать ШИМ-сигнал 50% analogWrite(3, 127) analogWrite(P3, 0.5)
Установить режим пина pinMode(3, OUTPUT) pinMode(P3, 'output')

Не нужно устанавливать режим пина (pinMode): при обращении к нему ядро выставит режим, основываясь на вызванной функции.

Философия Iskra JS заключается в отказе от использования низкоуровневых функций. Для популярной периферии уже написаны модули, которые позволяют оперировать терминами устройства, а не электрических сигналов.

Так выглядит код простой кнопки:

var myButton = require('@amperka/button').connect(P4);
myButton.on('click', function() {
  console.log("Hey! You've clicked on me!");
});

Понятные строки

В C++ строка представляется в виде массива байт-кодов символов со специальным символом конца строки (\x00). Операции над строками всегда выглядят запутанными:

char str[40]; // нужно задумываться о длинах буферов
char val[10];
 
// перевод числа в строку — отдельная забота
itoa(analogRead(A0), val, 10);
 
strcpy(str, "Value: "); // копирование строки — особая функция
strcat(str, val);        // склеивание тоже
 
if (strcmp(str, "Value: 0") == 0) {
  // сравнение, как и всё, тоже отдельная функция
}

Строки в JavaScript — полноправный тип данных и оперировать ими можно так же, как и числами.

var str = "Value: " + analogRead(A0);
if (str === "Value: 0") {
  // ...
}

Резиновые массивы

Массивы в C++ — просто блоки памяти заданного на этапе компиляции размера. Элемент нельзя добавить или убрать «на лету». Для C++ есть библиотека STL, но она не доступна разработчикам Arduino: работа с массивами выглядит громоздко и неуклюже.

Массив JavaScript — полноправный тип данных (Array) со своими методами и свойствами. Элементы массива можно добавлять по мере необходимости:

var values = [];
while (digitalRead(P4)) {
  // Метод push добавляет новый элемент
  // в конец массива
  values.push(analogRead(A0));
}
 
var sum = 0;
 
// Свойство length содержит текущую длину массива
for (var i = 0; i < values.length; ++i) {
  // Обращение к элементам по индексу происходит
  // привычным образом
  sum += values[i];
}
 
var average = sum / values.length;

События

В JavaScript есть механизм событий, который помогает упростить некоторые задачи. Например, чтобы при нажатии кнопки светодиод переключался в противоположенное состояние, используем код:

// Объект-кнопка умеет генерировать событие "click".
// С помощью стандартного метода "on" мы можем подписаться
// на интересующее событие, чтобы сделать что-то полезное
// при его возникновении
myButton.on('click', function() {
  myLed.toggle();
});

Библиотеки

В библиотеках — сила.

Как подключить библиотеку на Arduino? Нужно скопировать исходные файлы в правильную директорию и подключить ее в скетче директивой #include. После этого становятся доступны классы и функции библиотеки. Однако, если в двух библиотеках объявлены символы с одинаковыми именами — возникнет проблема, если обе используют один и тот же таймер — проблема. Если библиотека использует возможности другой библиотеки, забота о зависимостях — отдельная проблема.

Чтобы сделать собственную библиотеку, придется разделить код на *.h и *.cpp файлы. Это разделение — историческое следствие недостатков языка C.

В JavaScript и Espruino с библиотека подключается встроенной функцией require, с именем библиотеки в качестве параметра.

// Переменная Servo будет содержать объект-библиотеку
var Servo = require('@amperka/servo');
 
Servo.defaultOptions.valueMin = -90;
Servo.defaultOptions.valueMax = +90;
 
var servo1 = Servo.connect(P13);
var servo2 = Servo.connect(P12);
var servo3 = Servo.connect(P11);

Механизм require ищет код библиотеки на локальном диске и если он не найден, ищет его в интернете: в репозитории, на GitHub или в каталоге npmjs.org.

Можно забыть об установке библиотек вручную.

Именованные параметры

В скетчах на Arduino встречаются конструкции вида:

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

Что означают эти параметры? Это номера управляющих пинов, но без документации не разобраться на каком месте какой.

В JavaScript аналогичная запись выглядит так:

var lcd = LiquidCrystal.connect({
  rsPin: P12,
  rwPin: P11,
  enablePin: P10,
  d4Pin: P5,
  d5Pin: P4,
  d6Pin: P3,
  d7Pin: P2
});

Код длиннее, но и читабельность на порядок выше. Помните: код пишется один раз, а читается сто.

Отсутствие delay

В Arduino часто используются функция delay — она определяет период исполнение кода или позволяет дождаться определенного события. У такого подхода есть существенный недостаток: во время задержки, микроконтроллер крутит пустой цикл и не даёт выполняться другому коду. Для микроконтроллера delay — тяжёлая работа, от которой он не может оторваться.

На Iskra JS нет аналогов delay, чтобы управлять временем исполнения кода, существуют функции setTimeout, setInterval, digitalPulse, Pin.writeAtTime.

Например, чтобы заставить светодиод переключаться раз в секунду, можно воспользоваться setInterval:

// setInterval будет вызывать функцию каждые 1000 мс.
setInterval(function() {
  led.toggle();
}, 1000);

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

Среда программирования

У Arduino есть среда программирования Arduino IDE. У Iskra JS — Espruino IDE, установка и работа в которой проще.

Espruino IDE — это приложение на платформе Google Chrome, чтобы установить его достаточно одного клика.

Главное окно среды разделено на 2 части: с одной стороны — аналог Serial Monitor, с другой — поле для кода программы. Программы загружаются в плату нажатием одной кнопки.

С чего начать

Понадобится железо. Можно взять Iskra JS или набор из платы и модулей для экспериментов Йодо. А можно использовать всё те же платы расширения и модули Arduino.

Знания о JavaScript, доступных функциях и объектах можно найти в вики. Особого внимания заслуживают документация библиотек и встроенных функций. Они станут основой для новых программ.

Урок 5. Arduino IDE

К этому уроку курса «Ардуино для начинающих» мы уже узнали, что такое микроконтроллер, изучили платы Arduino и главную плату Arduino Uno. Также мы изучили понятие макетных плат и того, как с ними работать.

Отдельно мы поговорили про языки программирования, которые применяются в робототехнике, что наконец-то позволило нам вплотную приблизиться к одной из основных тем по работе с платами, процессорами и микроконтроллерами. Дальше мы достаточно много будем говорить про то, как программировать платы, чтобы они могли управлять сенсорами, собирать данные и делать много интересных вещей.

Как мы уже знаем, для того, чтобы мы могли взаимодействовать с периферийными устройствами нам нужно написать определенную программу и закачать её на плату Ардуино (или любую другую). Для таких действий применяется очень популярный инструмент, который называется Arduino IDE (англ. — Integrated development environment) — интегрированная среда разработки Ардуино. У нас есть отдельный большой материал про Arduino IDE. Самый большой плюс этой IDE — она абсолютно бесплатна.

Скачать программу

На данный момент мы готовы скачать это бесплатное программное обеспечение Arduino IDE, в которой мы будем писать скетчи, которые будут «говорить» плате что делать.

Вы можете скачать нужную версию Arduino IDE по ссылке в таблице ниже. Рекомендуем скачивать последнюю версию. Текущая стабильная версия 1.8.10:

Важно! Русский язык входит в базовый пакет установки Arduino IDE.

Скачать более ранние версии можно по этой ссылке.

Для установки программного обеспечения вам нужно будет кликнуть на ссылку, соответствующую операционной системе вашего компьютера выше. Далее вам нужно будет пройти стандартные шаги как при установке любой программы Windows (и других операционных систем).

Скетч

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

Просто помните, что в интернете часто встречается именно слово скетч в отношении работы с платами типа Ардуино.

После установки

После того, как программное обеспечение установлено на вашем компьютере, откройте его. Вы запустили Arduino IDE и всё волшебство будет происходить именно здесь. Не торопитесь и потратьте некоторое время, чтобы осмотреться и освоиться в этой программе. Нам предстоит много программировать в неё.

В программе есть основные инструменты:

  1. Меню (англ. — Menu Bar). Предоставляет вам доступ к инструментам, необходимым для создания и сохранения эскизов Arduino.
  2. Кнопка подтверждения (англ. — Verify Button). Компилирует ваш код и проверяет ошибки в написании или синтаксисе.
  3. Кнопка загрузки (англ. — Upload Button). Отправляет код на подключенную плату, такую как Arduino Uno. Светодиоды на плате будут быстро мигать при загрузке.
  4. Новый скетч (англ. — New Sketch). Открывает новое окно, содержащее пустой скетч (эскиз).
  5. Имя скетча (англ. — Sketch Name). Когда скетч сохранен, здесь отображается его имя.
  6. Открыть скетч (англ. — Open Existing Sketch). Позволяет открыть сохраненный эскиз или один из сохраненных примеров.
  7. Сохранение скетча (англ. — Save Sketch). Сохранить скетч, который у вас есть в данный момент.
  8. Последовательный монитор (англ. — Serial Monitor). Когда плата подключена, здесь отобразится последовательная информация вашего Arduino.
  9. Область написания кода (англ. — Code Area). В этой области вы пишете код, который будет «говорить» плате что делать.
  10. Область сообщений (англ. — Message Area). В этой области можно наблюдать различные сообщения, которые транслируют вам статус сохранения, компиляции кода, информацию об ошибках и многое другое.
  11. Текстовая консоль (англ. — Text Console). Показывает детали сообщений об ошибках, размер программы, которая была скомпилирована и дополнительную информацию.
  12. Плата и последовательный порт (англ. — Board and Serial Port). Сообщает, какая плата используется и к какому последовательному порту она подключена.

В целом, мы разобрали как скачать Arduino IDE и какие инструменты есть у этой среды разработки. Далее мы уже перейдем к практической части написания кода и начнем использовать программу на практике.

Кстати, совсем недавно вышла новая версия Arduino Pro IDE.

Arduino:Примеры — Онлайн справочник

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: [email protected]</br>* Максим Кузьмин на freelance.ru

Проверка/Оформление/Редактирование: Мякишев Е.А.

Всего примеров:
415

Стандартные функции

Простые программы, которые демонстрируют основные команды Arduino.

Они включены в среду Arduino; чтобы открыть их, нажмите кнопку Открыть на панели инструментов и посмотрите в папке примеров.

Основы

  • BareMinimum — Допустимый минимум кода для начала работы.
  • Blink — Включаем и отключаем светодиод.
  • DigitalReadSerial — Считывание последовательной передачи данных через цифровой контакт.
  • AnalogReadSerial — Считывание последовательной передачи данных через аналоговый контакт.
  • Fade — Затухание-загорание светодиода с помощью Arduino.
  • ReadAnalogVoltage — Считывание напряжения, проходящего через аналоговый контакт.

Цифровой сигнал

  • BlinkWithoutDelay — Моргание без команды Delay
  • Button — Управление светодиодом при помощи кнопки
  • Debounce — Антидребезг
  • Debounce2 — Антидребезг2
  • ButtonStateChange — Определение изменения состояния кнопки
  • InputPullupSerial — Отслеживание состояния кнопки с помощью встроенного подтягивающего резистора
  • Tone — Проигрывание мелодии с помощью функции Tone
  • Pitch follower — Звук, реагирующий на изменяющуюся информацию
  • Simple keyboard — Простая клавиатура при помощи функции Tone
  • Tone4 — Проигрывание нот на разных динамиках с помощью функции Tone

Аналоговый сигнал

Связь

Эти примеры позволяют Arduino «общаться» со скетчами для Processing, запущенными на компьютере. Для более подробной информации о Processing пройдите сюда – processing.org (там же можно скачать программу).

Здесь также представлены патчи Max/MSP, связанные со скетчами Arduino. Более подробно о Max/MSP читайте на Cycling 74. О патчах для Pd, которые могут работать с этими примерами, читайте в примерах Скотта Фитцджеральда.

  • ReadASCIIString — Анализ строки, состоящей из разделенных запятыми int-значений, и их последующее использование для управления RGB-светодиодом.
  • ASCII Table — Демонстрирует продвинутые способы вывода данных на Serial Monitor.
  • Dimmer — Изменение яркости светодиода при помощи движения мышкой.
  • Graph — Отправка данных на компьютер и их графическое отображение в скетче Processing.
  • Physical Pixel — Включение/выключение светодиода путем отправки данных со скетча Processing (или Max/MSP) на Arduino.
  • Virtual Color Mixer — Отправка с Arduino на компьютер сразу нескольких значений, а затем их считывание при помощи скетча для Processing или Max/MSP.
  • Serial Call Response — Многобайтная передача данных при помощи метода вызова и ответа (метода «рукопожатия»).
  • Serial Call Response ASCII — Многобайтная передача данных при помощи метода вызова и ответа (метода «рукопожатия»). До передачи данные зашифровываются в ASCII.
  • SerialEvent — Демонстрирует использование SerialEvent().
  • Serial input (Switch (case) Statement) — Как совершать различные действия, беря за основу символы, присланные через последовательный порт.
  • MIDI — Передача через последовательный порт сообщений с MIDI-нотами.
  • MultiSerialMega — Использование двух последовательных портов на Arduino Mega.

Управляющие структуры

  • If Statement — Как использовать оператор «if» для создания условий, опирающихся на входные аналоговые данные, при которых светодиод будет либо включаться, либо оставаться выключенным.
  • For Loop — Управление несколькими светодиодами, чтобы они мигали, как LED-полоска у автомобиля Китт из сериала «Рыцарь дорог».
  • Array — Вариация примера «For Loop», но с использованием массива.
  • While Loop — Использование цикла while() для калибровки датчика. Калибровка включается при нажатии на кнопку.
  • Switch Case — Как совершать какие-либо действия в зависимости от значений, полученных от датчика. Эквивалент примера «If Statement», но если бы условий было не два, а четыре. Этот пример демонстрирует, как дробить диапазон данных от датчика на четыре «суб-диапазона», а затем в зависимости от полученных результатов совершать одно из четырех действий.
  • Switch Case 2 — Второй пример, демонстрирующий использование оператора switch. Показывает, как совершать различные действия в зависимости от определенных символов, полученных через последовательный порт.

Датчики

  • ADXL3xx — Считывание данных с акселерометра ADXL3xx.
  • Knock — Определение стука при помощи пьезоэлемента.
  • Memsic2125 — Считывание данных с 2-осевого акселерометра Memsic2125.
  • Ping — Определение объектов при помощи ультразвукового дальномера.

Дисплей

Примеры, объясняющие основы управления дисплеем:

  • LED Bar Graph — Как сделать светодиодную шкалу.
  • Row Column Scanning — Как управлять матрицей светодиодов 8×8.

Строки

  • StringAdditionOperator — Добавление строк друг к другу различными способами
  • StringAppendOperator — Прибавление данных к строкам.
  • StringCaseChanges — Смена регистра в строках.
  • StringCharacters — Как задать/сосчитать значение определенного символа в строке.
  • StringComparisonOperators — Алфавитное сравнение строк.
  • StringConstructors — Как инициализировать строковые объекты.
  • StringIndexOf — Поиск символов в строке по принципу «столько-то позиций от начала» или «столько-то позиций от конца»
  • StringLength & StringLengthTrim — Как определить длину строки и обрезать ее.
  • StringReplace — Замена отдельных символов в строке.
  • StringStartsWithEndsWith — Как проверить, какими символами/подстроками начинается или заканчивается строка.
  • StringSubstring — Поиск в строке определенных «фраз».

USB (для Leonardo, Micro и Due плат)

В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.

  • KeyboardAndMouseControl — Демонстрирует использование библиотек Mouse и Keyboard в одной программе.
Клавиатура
  • KeyboardMessage — Отправка текстовой строки при нажатии на кнопку.
  • KeyboardLogout — Выход из текущей пользовательской сессии при помощи клавиатурных комманд.
  • KeyboardSerial — Считывает байт, присланный через последовательный порт, а в ответ отсылает другой байт.
  • KeyboardReprogram — Открывает новое окно в среде разработки Arduino, а затем перешивает Leonardo скетчем «Моргание».
Мышь
  • ButtonMouseControl — Управление экранным курсором при помощи пяти кнопок.
  • JoystickMouseControl — Управление экранным курсором при помощи джойстика (условие – нажатая кнопка).

Разное

Использование сдвигового регистра 74HC595

Использование одного сдвигового регистра 74HC595
Использование двух сдвиговых регистров 74HC595
  • ShftOut21 — Два светодиодных счетчика от «0» до «255» (в двоичном формате)
  • ShftOut22 — Поочередное зажигание 16 светодиодов
  • ShftOut23 — Использование двух массивов

Использование сдвигового регистра CD4021B

Использование одного сдвигового регистра CD4021B
  • ShftIn11 — Простой ввод данных
  • ShftIn12 — Какая кнопка нажата?
  • ShftIn13 — Проверка разных комбинаций
  • ShftIn14 — Нажата ли кнопка?
Использование двух сдвиговых регистров CD4021B
  • ShftIn21 — Простой ввод данных от двух сдвиговых регистров
  • ShftIn22 — Проверка разных комбинаций на двух комплектах переключателей
  • ShftIn23 — Печать включенных настроек

DHT

BMP180

Датчики дождя

Датчики влажности

Датчики освещенности

Температурные датчики

Часы реального времени

Датчики газа/дыма

Ультразвуковые датчики

Датчики движения

Уклономеры

Датчики звука

Герконы

RFID

Реле

nRF24L01

Приемники/передатчики RF 433 MHz

OLED-дисплеи

LCD-дисплеи

Светодиодные матрицы

Cветодиодные ленты

Клавиатуры

Роботы

Датчик цвета

Управление DC-моторами

Управление серводвигателями

Управление RGB-светодиодом

Источники звука

Последовательный порт

Использование библиотеки Keyboard

Использование библиотеки Wire

Использование библиотеки SPI

Использование библиотеки SD

Использование библиотеки Ethernet

Использование прерываний

Аппаратные прерывания
Прерывания по таймеру

Библиотеки

Примеры к библиотекам, входящим в состав ПО для Arduino.

Библиотека Bridge (для Arduino Yún)

  • Bridge — Доступ к контактам платы через веб-браузер.
  • Console ASCII Table — Демонстрирует, как выводить на консоль символы в разных форматах.
  • Console Pixel — Управление светодиодом при помощи консоли.
  • Console Read — Анализ информации, пришедшей через консоль, а затем отправка ее обратно.
  • Datalogger — Сохранение информации от датчика на SD-карте.
  • File Write Script — Демонстрирует, как при помощи класса Process записывать shell-скрипт в файловую систему Yun, а затем исполнять его.
  • HTTP Client — Создает простой клиент, который загружает веб-страницу и выводит ее на Serial Monitor.
  • Process — Демонстрирует, как использовать класс Process для запуска Linux-команд.
  • Shell Commands — Использует класс Process для запуска shell-команд.
  • Temperature Web Panel — После запроса через браузер постит на веб-странице данные от датчика.
  • TimeCheck — Берет информацию о текущем времени от сетевого сервера времени, а затем выводит ее на Serial Monitor.
  • WiFiStatus — Запускает преднастроенный скрипт, который в ответ сообщает о мощности сигнала в текущей WiFi-сети.
  • Yun Serial Terminal — Доступ к Linux Terminal через Serial Monitor.
  • MailboxReadMessage — Отправляет процессору Arduino текстовые сообщения через браузер и при помощи REST API.

Примеры для Temboo На сайте Temboo есть отдельная секция о библиотеке Temboo и примерах с использованием IDE Arduino. Смотрите здесь.

Примеры для Spacebrew Для Yun и Spacebrew существует множество примеров. Подробнее смотрите на страницах с проектной документацией.

Советы и хитрости при работе с Linux

Библиотека EEPROM

  • EEPROM Clear — Очищает байты с EEPROM.
  • EEPROM Read — Считывает данные с EEPROM и отсылает их на компьютер.
  • EEPROM Write — Записывает на EEPROM значения, считанные с аналогового входа.
  • EEPROM Crc – Проверка содержимого EEPROM-памяти на предмет того, изменилось/повредилось ли оно. Проверка осуществляется при помощи CRC. Содержимое EEPROM-памяти рассматривается как массив
  • EEPROM Get – Считывание данных с EEPROM-памяти и их вывод на монитор порта в виде числа с плавающей точкой (float)
  • EEPROM Iteration – Несколько разных способов пробежаться по всей EEPROM-памяти
  • EEPROM Put – Запись данных в EEPROM-память разными способами
  • EEPROM Update – Запись в EEPROM-память данные, считанные с 0-ого аналогового контакта (A0). Запись осуществляется только в том случае, если новые данные отличаются от предыдущих – это позволяет увеличить срок службы EEPROM-памяти

Библиотека Esplora

Esplora для начинающих
  • EsploraBlink — Моргание RGB-светодиодом Esplora.
  • EsploraAccelerometer — Считывание данных с акселерометра.
  • EsploraJoystickMouse — Использует джойстик для управления экранным курсором компьютера.
  • EsploraLedShow — Использует джойстик и слайдер для создания «светового шоу» при помощи светодиода.
  • EsploraLedShow2 — Использует микрофон, слайдер и световой датчик Esplora для того, чтобы менять цвет встроенного светодиода.
  • EsploraLightCalibrator — Калибрует данные от светового датчика, встроенного в Esplora.
  • EsploraMusic — Создание музыки при помощи Esplora.
  • EsploraSoundSensor — Считывает значения с микрофона Esplora.
  • EsploraTemperatureSensor — Считывает данные с температурного датчика в Фаренгейтах или Цельсиях.
Esplora для экспертов
  • EsploraKart — Использует Esplora в качестве контроллера для игры в гоночный симулятор.
  • EsploraTable — Выводит информацию от датчика Esplora в табличном формате.
  • EsploraRemote — Подключение Esplora к Processing и удаленное управление ее устройствами вывода.
  • EsploraPong — Игра в Pong при помощи Esplora и Processing.

Библиотека Ethernet

Библиотеки Firmata

Библиотека GSM

Примеры для GSM
Инструменты для GSM

Библиотека LiquidCrystal

  • LiquidCrystal Hello World — Показывает надпись «Hello, World!» и секунды с последнего RESET’а.
  • LiquidCrystal Blink — Управление блокообразным курсором.
  • LiquidCrystal Cursor — Управление курсором в виде нижнего подчеркивания.
  • LiquidCrystal Display — Как быстро погасить дисплей, при этом не теряя имеющейся на нем информации.
  • LiquidCrystal TextDirection — Управление тем, в какую сторону от курсора будет перемещаться текст.
  • LiquidCrystal Scroll — Изменение направления двигающегося текста.
  • LiquidCrystal Serial input — Принимает данные, пришедшие черед последовательный порт и отображает их.
  • LiquidCrystal SetCursor — Устанавливает позицию курсора.
  • LiquidCrystal Autoscroll — Автоматическое смещение текста.

Библиотека SD

  • Card Info – Получение информации о SD-карте
  • Yún Datalogger – Запись на SD-карту логов от трех аналоговых датчиков
  • Datalogger – Регистрация данных от датчиков при помощи SD-карты
  • Dump File – Считывание файла с SD-карты
  • Files – Создание/удаление файла с SD-карты
  • List Files – Отображение списка файлов и папок, находящихся в указанной директории на SD-карте
  • Read Write – Считывание/запись данных на SD-карту

Библиотека Robot

  • Robot Logo — Как задать направление движения для робота при помощи встроенной клавиатуры.
  • Robot Line Following — Рисуем «гоночный трек» и программируем робота, чтобы он по нему ехал.
  • Robot Disco Bot — Превращаем робота в музыкальный проигрыватель, который, к тому же, умеет еще и танцевать.
  • Robot Compass — Настраиваем компас и ищем карту сокровищ (опционально).
  • Robot Inputs — Учимся, как управлять потенциометром и кнопками на верхней (контрольной) плате Arduino Robot.
  • Robot Wheel Calibration — Регулируем точность колес.
  • Robot Runaway Robot — Оснащаем робота дальномером, а затем играем с ним в пятнашки (опционально).
  • Robot Remote control — Удаленное управление роботом при помощи пульта от телевизора.
  • Robot Picture browser — Хотите просматривать на экране Arduino Robot собственные картинки?
  • Robot Rescue — «Спасение пострадавших».
  • Robot Hello User — Взламываем приветственное демо Arduino Robot и делаем на его основе собственное.
  • Robot Calibrate Compass — Калибруем компас-модуль, чтобы он вращался равномерно (для старых моделей, использующих Honeywell HMC 6352).

Библиотека SPI

  • BarometricPressureSensor — Считываем с датчика данные об атмосферном давлении и температуре при помощи протокола SPI.
  • SPIDigitalPot — Управление цифровым потенциометром AD5206 при помощи протокола SPI.

Библиотека Servo

  • Knob — Как настроить Arduino Robot таким образом, чтобы при кручении потенциометра вращался вал сервомотора.
  • Sweep — Вращение валом сервомотора вперед и назад.

Библиотека Software Serial

  • Software Serial Example — Объясняет, как использовать библиотеку SoftwareSerial… потому что иногда одного последовательного порта просто недостаточно.
  • Two Port Receive — Как работать с несколькими портами типа Software Serial.

Библиотека Stepper

  • Motor Knob – Управление очень точным шаговым мотором при помощи потенциометра
  • Stepper One Revolution – Поворот вала на один оборот по часовой стрелке и на один оборот против часовой стрелки
  • Stepper One Step At A Time – Пошаговый поворот вала для проверки того, правильно ли подключен мотор
  • Stepper Speed Control – Управление скоростью «шагов» при помощи потенциометра

Библиотека TFT

Esplora
  • Esplora TFT Bitmap Logo — Считываем файл-картинку с карты micro-SD, а затем показываем ее в случайных местах экрана.
  • Esplora TFT Color Picker — При помощи джойстика и слайдера меняем фоновый цвет TFT-экрана.
  • Esplora TFT Etch a Sketch — Esplora-вариация на тему классической игрушки «Волшебный экран».
  • Esplora TFT Graph — Графическое отображение на TFT-экране значений от светового датчика.
  • Esplora TFT Horizon — Отображение на TFT-экране «линии горизонта», чье положение зависит от наклона акселерометра.
  • Esplora TFT Pong — Упрощенная вариация на тему игры Pong.
  • Esplora TFT Temperature — Проверка температуры при помощи встроенного сенсора, а затем ее отображение на TFT-экране.
Arduino
  • TFT Bitmap Logo — Считываем с карты micro-SD файл-картинку ,а затем отображаем ее в случайных местах экрана.
  • TFT Display Text — Считываем значение датчика, а затем выводим его на экран.
  • TFT Pong — Упрощенная вариация на тему игры Pong.
  • TFT Etch a Sketch — Arduino-вариация классической игрушки «Волшебный экран».
  • TFT Color Picker — Изменение фонового цвета TFT-экрана при помощи трех датчиков.
  • TFT Graph — Графическое отображение на TFT-экране значений от переменного резистора.

Библиотека Wire

  • SFRRanger Reader — При помощи I2C-коммуникации считывает данные с ультразвукового дальномера Devantech SRFxx.
  • Digital Potentiometer — Управление цифровым потенциометром AD5171 при помощи библиотеки Wire.
  • Master Reader — Настройка двух (или более) плат Arduino таким образом, чтобы они делились информацией по принципу «ведущая плата считывает / ведомая плата отсылает».
  • Master Writer — Настройка двух (или более) плат Arduino таким образом, чтобы они делились информацией по принципу «ведущая плата отсылает / ведомая плата считывает».

Библиотека WiFi

  • Connect No Encryption — Демонстрирует, как подключаться к открытой сети.
  • Connect With WEP — Демонстрирует, как подключаться к WEP-зашифрованной сети.
  • Connect With WPA — Демонстрирует, как подключаться к сети, зашифрованной через WPA2 Personal.
  • Scan Networks — Показывает все доступные WiFi-сети.
  • WiFi Chat Server — Настраиваем простой чат-сервер.
  • WiFi Web Client — Подключаемся к удаленному веб-серверу.
  • WiFi Web Client Repeating — Делаем повторяющиеся HTTP-запросы на сервер.
  • WiFi Web Server — Настраиваем Arduino и WiFi Shield, чтобы они служили веб-сервером с веб-страницей.
  • WiFi Send Receive UDP String – Отправка и получение текстовых строк через UDP при помощи WiFi-модуля
  • WiFi Udp NTP Client – Создание при помощи WiFi-модуля клиента, запрашивающего время через NTP

Только для Arduino 101

Библиотека CurieBLE
Библиотека Curie IMU
Библиотека Curie Timer One
  • Curie Timer One Interrupt – Устанавливает таймер и запускает прерывание
  • Curie Timer One PWM – Генерация ШИМ-сигнала на цифровом контакте (полное управление всеми параметрами)

Только для Arduino Due

Библиотека Audio
Библиотека Scheduler
  • MultipleBlinks – Мигание несколькими светодиодами, выполняемое в их собственных loop-функциях.

Только для Arduino Due, Zero и MKR1000

Библиотека USBHost
  • MouseController – Скетч, демонстрирующий работу функций MouseController
  • KeyboardController – Скетч, демонстрирующий работу функций KeyboardController

Только для Arduino Zero и MKR1000

Библиотека Audio Frequency Meter Library
Библиотека AudioZero
Библиотеки RTC
  • Simple RTC — Простые часы реального времени (RTC)
  • Simple RTC Alarm — Простой будильник для часов реального времени (RTC)
  • Sleep RTC Alarm — RTC-будильник, выводящий плату из спящего режима

Только для WiFi 101 и MKR1000

  • wifi101ConnectNoEncryption – Демонстрирует, как подключиться к открытой сети.
  • wifi101ConnectWithWEP – Демонстрирует, как подключаться к WEP-зашифрованной сети. wifi101ConnectWithWPA – Демонстрирует, как подключаться к сети, зашифрованной через WPA2 Personal.
  • wifi101ConnectWithWPA — Демонстрирует, как подключаться к WPA2 Personal — зашифрованной сети.
  • wifi101ScanNetworks – Показывает все доступные WiFi-сети.
  • wifi101WiFiChatServer – Настройка простого чат-сервера.
  • wifi101WiFiWebClient – Подключение к удаленному веб-серверу.
  • wifi101WiFiWebClientRepeating – Генерация повторяющихся HTTP-запросов на сервер.
  • wifi101WiFiWebServer – Настройка Arduino и WiFi-модуля, чтобы они служили веб-сервером с веб-страницей.
  • Wifi101WiFiUdpSendReceiveString – Отправка и получение текстовых строк через UDP при помощи WiFi-модуля
  • wifi101UdpNTPClient – Демонстрирует, как при помощи WiFi-модуля создать клиент, запрашивающий время через NTP

Библиотека CmdMessenger

  • Receive – Настройка PC-переключателя для светодиода, встроенного в Arduino.
  • SendandReceive – Расширенная версия Receive. Теперь Arduino отсылает обратно статус.
  • SendandReceiveArguments – Расширенная версия SendandReceive. Теперь Arduino получает и отправляет множество float-значений.
  • SendandReceiveBinaryArguments – Расширенная версия SendandReceiveArguments. Теперь Arduino принимает и отсылает множество двоичных значений, тем самым демонстрируя более эффективный способ коммуникации
  • DataLogging – Расширенная версия SendandReceiveBinaryArguments. Теперь при перемещении ползунка PC будет отправлять команды на Arduino.
  • ArduinoController – Расширенная версия Receive. Теперь Arduino отправляет обратно статус.
  • SimpleWatchdog – Демонстрирует настройку автоматического подключения между PC и Arduino.
  • TemperatureControl – Расширенная версия ArduinoController. Демонстрирует, как создать адаптивный интерфейс (в данном случае для отображения температурных данных).
  • ConsoleShell – Демонстрирует, как использовать ConsoleShell в качестве оболочки и коммуницировать с нею при помощи консоли. Этот пример отличается от других тем, что для него нет PC-кода.

Библиотека OneWire

  • DS18x20 Temperature — Этот пример демонстрирует, как при помощи библиотеки OneWire считывать данные с температурных датчиков типа 1-Wire. Поддерживаются модели DS18S20, DS18B20 и DS1822.
  • DS2408 Switch — Этот пример показывает, как при помощи библиотеки OneWire работать с PIO-чипом DS2048.
  • DS250x PROM — Этот пример показывает, как считывать данные с PROM-чипа семейства DS250x.

Библиотека PS2Keyboard

Библиотека SimpleMessageSystem

Библиотека SSerial2Mobile

Библиотека Webduino

  • Web AjaxBuzzer — Управление зуммером через браузерный интерфейс (AJAX)
  • Web AjaxRGB — Управление RGB-светодиодом через браузерный интерфейс
  • Web AjaxRGB mobile — Управление RGB-светодиодом при помощи смартфона
  • Web Authentication — HTTP-аутентификация
  • Web Buzzer — Управление зуммером через браузерный интерфейс
  • Web Demo — Запрос значений на контактах через браузерный интерфейс
  • Web HelloWorld — Показ в браузере надписи «Hello, World!»
  • Web Image — Показ в браузере иконки со светодиодом
  • Web Net Setup — Браузерный интерфейс для настройки сети
  • Web Parms — Передача и анализ параметров

Библиотека X10

  • x10Blink — Мигание лампочкой
  • x10Fade — Управление яркостью лампочки
  • x10Multi — Включение/выключение нескольких лампочек

Библиотека XBee

  • AtCommand — Отправка AT-запросов к XBee-модулю
  • Echo Callbacks — Прослушка входящих пакетов и отправка идентичных ответов
  • RemoteAtCommand — Отправка AT-команд на удаленный XBee-модуль
  • Series1 IoSamples — Получение данных от удаленного XBee-модуля
  • Series1 Rx — Получение пакетов и преобразование в ШИМ-сигнал
  • Series1 Tx — Отправка пакетов
  • Series2 IoSamples — Получение данных от удаленного XBee-модуля (Series 2)
  • Series2 Rx — Получение пакетов и преобразование в ШИМ-сигнал (Series 2)
  • Series2 Rx Nss — Получение и отображение пакетов (Series 2)
  • Series2 Sleep — Введение и выведение XBee-модуля из режима ожидания
  • Series2 Tx — Отправка пакетов (Series 2)
  • ZdpScan — Поиск узлов в XBee-сети

Библиотека CapacitiveSensing

Библиотека Bounce

  • Bounce — Устранение дребезга при нажатии на кнопку (вариант с одной кнопкой)
  • Bounce2Buttons — Устранение дребезга при нажатии на кнопку (вариант с двумя кнопками)
  • Change — Определение перехода из HIGH в LOW
  • Duration — Определение продолжительности нажатия на кнопку
  • Retrigger — Перезапуск события

Библиотека GLCD

  • BigNums — Использование текстовых областей
  • clockFace — Аналоговые часы
  • GLCDdemo — Пример работы нескольких графических функций
  • GLCDdiags — Тест памяти и интерфейса GLCD-модуля
  • HelloWorld — «Привет, мир!»
  • ks0108example — Пример работы нескольких графических функций (версия для ks0108)
  • life — Игра «Жизнь»
  • Rocket — Игра «Ракета»
  • Serial2GLCD — Показ символов, введенных через монитор порта
  • GLCD BigDemo — Большое демо

Библиотека LedControl

Библиотека LedDisplay

Библиотека Matrix

Библиотека PCD8544

Библиотека ST7735

  • graphicstest — Графический тест
  • rotationtest — Тест функций вращения
  • shieldtest — Перемещение картинки на TFT-дисплее (при помощи джойстика)
  • soft spitftbitmap — Вывод изображения на 1,8-дюймовый TFT-дисплей
  • spitftbitmap — Вывод изображения на 1,8-дюймовый или 1,44-дюймовый TFT-дисплей

Библиотека FFT

  • fft adc — Применение БПФ на данных от АЦП и отправка результата посредством write()
  • fft adc serial — Применение БПФ на данных от АЦП и отправка результата посредством println()
  • fft codec — Применение БПФ на данных от модуля Codec Shield

Библиотека Tone

  • DTMFTest — Тональный сигнал
  • RTTTL — RTTTL
  • ToneTest — Одновременное проигрывание нот

Библиотека TLC5940

Библиотека Time

  • TimeArduinoDue — Синхронизация времени с помощью RTC (для Arduino Due)
  • TimeGPS — Синхронизация времени с помощью GPS
  • TimeNTP — Синхронизация времени с помощью NTP-сервера
  • TimeNTP ESP8266WiFi — Синхронизация времени с помощью NTP-сервера и WiFi
  • TimeRTC — Синхронизация времени с помощью RTC (для остальных Arduino)
  • TimeRTCLog — Учет изменений состояний на контактах с помощью RTC
  • TimeRTCSet — Установка RTC-времени
  • TimeSerial — Настройка библиотеки Time при помощи последовательного порта
  • TimeSerialDateStrings — Настройка библиотеки Time при помощи последовательного порта (со строковыми сообщениями)
  • TimeTeensy3 — Синхронизация времени с помощью RTC на Teensy

Библиотека Metro

  • blinking — Периодическое мигание светодиодом
  • blinking 2 instances — Периодическое мигание двумя светодиодами
  • blinking 2 intervals — Мигание светодиодом с использованием двух периодичностей
  • serialInterval — Периодическая отправка сообщений по последовательному порту

Библиотека MsTimer2

  • FlashLed — Периодическое включение и выключение светодиода

Библиотека FlexiTimer2

Библиотека PString

Библиотека Streaming

См.также

Внешние ссылки

Урок 6. Загрузка первого скетча «Blink»

Arduino IDE поставляется с несколькими примерами скетчей, которые вы можете использовать для изучения основ Arduino.

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

Поскольку Arduino Uno не имеет подключенного дисплея, вам нужен способ увидеть физический вывод вашей программы. На данном этапе мы будем использовать пример скетча «Blink» (рус. — моргание светодиодом), чтобы встроенный светодиод на плате Arduino начал мигать.

Для начала подключите плату Arduino к компьютеру с помощью USB-кабеля и запустите установленную ранее среду Arduino IDE. Чтобы открыть пример эскиза Blink:

  1. откройте меню «Файл» (File)
  2. выберите «Примеры» (Examples)
  3. выберите «01. Основы» (англ. — 01.Basics)
  4. далее выбираем «Blink»

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

Чтобы настроить плату, откройте меню «Инструменты» (Tools), а затем «Плата» (Board). Для Arduino Uno вы должны выбрать «Arduino / Genuino Uno»:

После того, как вы выбрали плату, вы должны установить соответствующий порт. Снова откройте меню «Инструменты» (Tools) и выберите «Порт» (Port):

Имена портов могут отличаться в зависимости от вашей операционной системы.

В Windows порты будут называться COM4, COM5 или что-то подобное.

В macOS или Linux вы можете увидеть что-то вроде /dev/ttyACM0 или /dev/ttyUSB0.

После того, как вы настроили плату и порт, у вас все готово для загрузки эскиза на Arduino. Для этого вам просто нужно нажать кнопку «Загрузить» (Upload) на панели инструментов IDE:

Когда вы нажимаете Upload (рус. — загрузить), IDE компилирует эскиз и загружает его на вашу плату. Если вы хотите проверить на наличие ошибок, вы можете нажать Verify (рус. — проверить) перед загрузкой, что скомпилирует только ваш эскиз.

Кабель USB обеспечивает последовательное соединение для загрузки программы и питания платы Arduino. Во время загрузки вы увидите мигающие светодиоды на плате. Через несколько секунд загруженная программа запустится, и вы увидите, что светодиодный индикатор мигает один раз в секунду:

После завершения загрузки USB-кабель продолжит питание платы Arduino. Программа хранится во флэш-памяти микроконтроллера Arduino. Вы также можете использовать аккумулятор или другой внешний источник питания для запуска приложения без USB-кабеля.

Как завершить свой первый эскиз Arduino

  1. Компьютеры
  2. Arduino
  3. Как завершить свой первый эскиз Arduino

Джон Насси

Теперь, когда у вас есть основы, вы можете завершить свой первый эскиз. Теперь перед вами должны быть Arduino Uno R3, USB-кабель и компьютер с выбранной вами операционной системой (Windows, Mac OS или Linux).

Набросок «Найди моргание»

Чтобы убедиться, что программное обеспечение Arduino взаимодействует с оборудованием, вы загружаете эскиз .Вы спросите, что такое набросок? Arduino был создан как устройство, которое позволяет людям быстро создавать прототипы и тестировать идеи, используя небольшие фрагменты кода, демонстрирующие идею — вроде того, как вы могли бы набросать идею на бумаге.

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

Конкретный скетч, который вы хотите использовать здесь, называется Blink. Это самый простой набросок, который вы можете написать, своего рода «Привет, мир!» для Ардуино. Щелкните в окне Arduino. В строке меню выберите Файл → Примеры → 01.Basics → Blink.

Новое окно откроется перед вашим пустым эскизом.

Определите свою доску

Прежде чем вы сможете загрузить эскиз, вам нужно проверить несколько вещей. Сначала вы должны подтвердить, какая у вас плата. Вы можете выбирать из множества устройств Arduino и нескольких вариантов платы USB.Последнее поколение USB-плат — это Uno R3.

Если вы купили устройство новым, вы можете быть уверены, что это именно тот тип платы, который у вас есть. Чтобы убедиться вдвойне, проверьте обратную сторону платы. Вы должны увидеть подробную информацию о модели платы.

Также стоит проверить микросхему ATMEL на Arduino. Чип ATMEL является мозгом Arduino и похож на процессор в вашем компьютере. Поскольку платы Uno и более ранние версии позволяют заменять чип, всегда есть шанс, особенно с использованной платой, что чип был заменен на другой.

Хотя микросхема ATMEL выглядит весьма своеобразно на отдельной плате, если вы сравните ее со старым Arduino, отличить их на первый взгляд будет сложно. Важный отличительный признак написан на поверхности микросхемы. В этом случае вам нужен ATmega328P-PU.

Настроить ПО

После того, как вы подтвердите тип используемой платы, вы должны предоставить эту информацию программному обеспечению. В строке главного меню Arduino (в верхней части окна Arduino в Windows и в верхней части экрана в Mac OS X) выберите Инструменты → Плата.Вы должны увидеть список различных типов плат, поддерживаемых программным обеспечением Arduino. Выберите свою доску из списка.

Далее нужно выбрать последовательный порт. Последовательный порт — это соединение, которое позволяет вашему компьютеру и устройству Arduino обмениваться данными. Последовательный описывает способ отправки данных, по одному биту (0 или 1) за раз. Порт физический интерфейс, в данном случае разъем USB.

Чтобы определить последовательный порт, выберите Инструменты → Последовательный порт.В списке отображаются устройства, подключенные к вашему компьютеру. В этом списке перечислены любые устройства, которые могут подключаться к последовательному интерфейсу, но на данный момент вас интересует только поиск Ардуино.

Если вы только что установили Arduino и подключили его, он должен быть в верхней части списка. Для пользователей OS X это отображается как /dev/tty.usbmodemXXXXXX (где XXXXXX — это число со случайной подписью). В Windows то же самое, но последовательные порты называются COM1, COM2, COM3 и так далее. Наибольшее число обычно соответствует самому последнему устройству.

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

Загрузить эскиз

Теперь, когда вы сообщили программе Arduino, с какой платой вы взаимодействуете и какое соединение через последовательный порт она использует, вы можете загрузить скетч Blink.

Сначала нажмите кнопку «Проверить». Verify проверяет код, чтобы убедиться, что он имеет смысл. Это не обязательно означает, что ваш код будет делать то, что вы ожидаете, но он проверяет, что синтаксис написан так, как это может понять Arduino.Вы должны увидеть индикатор выполнения и текст «Компиляция скетча» на несколько секунд, а затем текст «Готово, компиляция» после завершения процесса.

Если скетч был успешно скомпилирован, вы можете нажать кнопку «Загрузить» рядом с кнопкой проверки. Появится индикатор выполнения, и вы увидите большую активность на своей плате с помощью двух светодиодов, отмеченных RX и TX. Они показывают, что Arduino отправляет и получает данные. Через несколько секунд светодиоды RX и TX перестанут мигать, а в нижней части окна появится сообщение Done Uploading.

Вы должны увидеть, как светодиод, помеченный буквой L, успокаивающе мигает: горит на секунду, гаснет на секунду. Если это так, похлопайте себя по плечу. Вы только что загрузили свой первый фрагмент кода Arduino и вошли в мир физических вычислений!

Если вы не видите мигающую букву L, повторите предыдущие шаги. Убедитесь, что вы правильно установили Arduino, а затем попробуйте еще раз. Если вы по-прежнему не видите мигающую букву L, ознакомьтесь с отличной страницей устранения неполадок на официальном сайте Arduino.

Вы, не беспокоясь, загрузили свой первый скетч в Arduino.

Об авторе книги

Джон Насси — дизайнер, технолог и предприниматель, который любит использовать технологии новыми и интересными способами. Он много лет работал с Arduino над прототипами продуктов и интерактивными произведениями искусства. Гордый сторонник Arduino, он обучал искусству физических вычислений и прототипирования людей всех возрастов, компетенций и способностей.

.

Как загрузить эскиз в Arduino

  1. Компьютеры
  2. Arduino
  3. Как загрузить эскиз в Arduino

Автор: John Nussey

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

Выполните следующие действия, чтобы загрузить свой эскиз:

  1. Подключите Arduino с помощью кабеля USB.

    Квадратный конец USB-кабеля подключается к Arduino, а плоский конец подключается к USB-порту на вашем компьютере.

  2. Выберите Инструменты → Плата → Arduino Uno, чтобы найти свою плату в меню Arduino.

    Вы также можете найти все платы в этом меню, например, Arduino MEGA 2560 и Arduino Leonardo.

  3. Выберите правильный последовательный порт для вашей платы.

    Вы найдете список всех доступных последовательных портов, выбрав Инструменты → Последовательный порт → comX или / dev / tty.usbmodemXXXXX. X обозначает номер, присвоенный последовательно или случайным образом. В Windows, если вы только что подключили Arduino, COM-порт обычно имеет наивысший номер, например com 3 или com 15.

    Многие устройства могут быть перечислены в списке COM-портов, и если вы подключите несколько Arduinos, каждому из них будет присвоен новый номер. В Mac OS X номер /dev/tty.usbmodem будет назначаться случайным образом и может различаться по длине, например /dev/tty.usbmodem1421 или /dev/tty.usbmodem262471. Если у вас не подключен другой Arduino, он должен быть единственным видимым.

  4. Щелкните кнопку Загрузить.

    Это кнопка, которая указывает вправо в среде Arduino. Вы также можете использовать сочетание клавиш Ctrl + U для Windows или Cmd + U для Mac OS X.

Теперь, когда вы знаете, как загрузить скетч, у вас должно возникнуть желание получить еще несколько скетчей Arduino.

Об авторе книги

Джон Насси — дизайнер, технолог и предприниматель, который любит использовать технологии новыми и интересными способами.Он много лет работал с Arduino над прототипами продуктов и интерактивными произведениями искусства. Гордый сторонник Arduino, он обучал искусству физических вычислений и прототипирования людей всех возрастов, компетенций и способностей.

.

Понимание альбома Arduino Sketchbook: открытие и сохранение эскизов Arduino

Понимание того, как Arduino IDE настраивает свою систему файловых каталогов, может избавить вас от некоторой путаницы, когда дело доходит до сохранения, организации и открытия ваших эскизов Arduino (или эскизов, которые вы загрузили из Интернета).

Эпизод этой недели охватывает следующее:

  1. Папка Arduino Sketchbook
  2. Как изменить местоположение по умолчанию, в котором сохраняются ваши эскизы Arduino
  3. Что происходит, когда файл Arduino не имеет вложенной папки эскиза с тем же именем
  4. Где и как сохраняются несколько вкладок в эскизе Arduino
  5. Почему поджелудочная железа сурка подходит лучше, чем наша

Хотите ускорить свои навыки Arduino?

Вы, вероятно, знакомы с системой файловых каталогов на компьютере.Обычно он представлен в виде иерархии папок и файлов.

Примером может быть ваш диск C — внутри диска C у вас может быть папка для файлов приложений, пользователей и систем. Внутри папки «Пользователи» могут быть подпапки «Документы», «Загрузки», «Музыка» и т. Д.

Все файлы на компьютере организованы таким образом, и скетчи Arduino не исключение.

Папка Arduino Sketchbook и изменение места сохранения по умолчанию

Местоположение по умолчанию, в котором будут сохранены наброски Arduino, которые вы пишете, называется Sketchbook.

Sketchbook — это просто папка на вашем компьютере, как и любая другая. Он действует как удобный репозиторий для эскизов, а также в нем сохраняются дополнительные библиотеки кода.

Вы можете увидеть эскизы в папке Sketchbook, перейдя в File> Sketchbook.

Имя папки Sketchbook по умолчанию — «Arduino», а папка Sketchbook по умолчанию находится в папке «Мои документы» (или просто «Документы» для пользователей Mac).

Если ваш Sketchbook не находится в этом месте по умолчанию, вы можете точно увидеть, где он находится, открыв Arduino IDE и перейдя в Arduino> Preferences.

Путь к файлу по умолчанию для ваших эскизов указан в верхней части окна настроек Arduino. Мой:

/ Пользователи / michaelJames / Документы / Arduino

Когда я сохраняю файл в Arduino IDE, эта папка «Arduino» является местом по умолчанию, в котором будет сохранен эскиз, если я не решу изменить это место, выбрав другую папку в каталоге моего компьютера.

Если вы хотите изменить это расположение по умолчанию, нажмите кнопку «Обзор» рядом с путем к каталогу файлов и выберите другое место.Довольно просто.

Папки для эскизов

Если вы войдете в систему файловых каталогов и откроете папку Sketchbook (опять же, по умолчанию названную «Arduino»), вы можете увидеть кучу папок, которые вы не создавали.

Это связано с тем, что каждый файл Arduino должен находиться в папке, имя которой совпадает с именем файла (есть некоторые исключения, о которых мы поговорим чуть позже).

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

Каждый файл Arduino должен находиться в папке с тем же именем, что и файл

Когда я пишу новый скетч и сохраняю его, Arduino IDE автоматически создает новую папку с тем же именем, что и сам скетч.Файл Arduino (с расширением .ino) находится внутри этой закрывающей папки, которая называется папкой эскиза.

Если вы войдете в папку Sketchbook и измените имя окружающей папки, это создаст некоторые проблемы. Первая проблема заключается в том, что когда вы переходите в меню «Файл»> «Скетчбук», эскиз больше не отображается! Если вы хотите открыть этот скетч, вам нужно перейти к файлу .ino в вашем каталоге и открыть его оттуда.

Если вы откроете файл .ino, который не находится внутри вложенной папки эскиза с тем же именем, вы получите всплывающее окно из среды разработки Arduino, в котором говорится:

«Файл« sketch_name.ino »должен находиться в папке эскиза с именем« sketch_name ». Создать эту папку, переместить файл и продолжить? »

Если вы выберете «Отмена», скетч не откроется. Если вы выберете OK, будет создана папка (она будет иметь то же имя, что и эскиз), и файл .ino будет помещен в нее.

Эта папка эскиза будет создана в любом каталоге, в котором находился файл .ino, который вы пытались открыть. Например, если вы попытались открыть файл .ino, который находился в папке «Мои загрузки», тогда в папке «Мои загрузки» также будет создана вложенная папка эскиза.

Сохранение вкладок в Arduino

Исключением из правила о папке эскиза, имеющей то же имя, что и файл .ino, является случай, когда вы создаете несколько вкладок в эскизе Arduino.

Дополнительные вкладки НЕ должны иметь то же имя, что и папка с эскизами.

Как только вы разберетесь с некоторыми из этих тонкостей файловой системы Arduino IDE, это действительно поможет прояснить ситуацию.

Пожалуйста, уделите время, чтобы оставить комментарий, если у вас есть какие-либо идеи или мысли об этом руководстве.Я бы хотел их услышать!

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *