Arduino:Содержание
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Справочник языка Arduino
Конструкции языка
Управляющие операторы
Синтаксис
- ; (точка с запятой)
- () (фигурные скобки)
- // (однострочный комментарий)
- /* */ (многострочный комментарий)
- #define
- #include
Арифметические операторы
- = (оператор присваивания)
- + (оператор сложения)
- - (оператор вычитания)
- * (оператор умножения)
- / (оператор деления)
- % (оператор деления по модулю)
Операторы сравнения
- == (оператор равенства)
- != (оператор неравенства)
- < (оператор меньше)
- > (оператор больше)
- <= (оператор меньше или равно)
- >= (оператор больше или равно)
Логические операторы
Указатели
Побитовые операторы
- Побитовый оператор AND (&)
- Побитовый оператор OR
- Побитовый оператор XOR (^)
- Побитовый оператор NOT (~)
- Побитовый оператор сдвига влево (<<)
- Побитовый оператор сдвига вправо (>>)
Унарные операторы
- ++ (инкремент)
- -- (декремент)
- += (сложение с присваиванием)
- -= (вычитание с присваиванием)
- *= (умножение с присваиванием)
- /= (деление с присваиванием)
- &= (побитовый оператор AND, совмещенный с присваиванием)
- |= (побитовый оператор OR, совмещенный с присваиванием)
Данные
Константы
- Константы
- HIGH
- LOW
- INPUT
- OUTPUT
- INPUT_PULLUP
- LED_BUILTIN
- true
- false
- Целочисленные константы
- Константы с плавающей запятой
Типы данных
Преобразование типов данных
Область видимости переменных и квалификаторы
Utilities
Функции
Цифровой ввод/вывод
Аналоговый ввод/вывод
Due & Zero
Дополнительные функции ввода/вывода
Работа со временем
Математические функции
Тригонометрические функции
Функции для символьного анализа
- isAlphaNumeric()
- isAlpha()
- isAscii()
- isWhitespace()
- isControl()
- isDigit()
- isGraph()
- isLowerCase()
- isPrintable()
- isPunct()
- isSpace()
- isUpperCase()
- isHexadecimalDigit()
Генераторы случайных значений
Работа с битами и байтами
Внешние прерывания
Прерывания
Функции передачи данных
Serial
- if (Serial)
- available()
- availableForWrite()
- begin()
- end()
- find()
- findUntil()
- flush()
- parseFloat()
- parseInt()
- peek()
- print()
- println()
- read()
- readBytes()
- readBytesUntil()
- readString()
- readStringUntil()
- setTimeout()
- write()
- serialEvent()
Stream
- available()
- read()
- flush()
- find()
- findUntil()
- peek()
- readBytes()
- readBytesUntil()
- readString()
- readStringUntil()
- parseInt()
- parsefloat()
- setTimeout()
USB (Leonardo based boards and Due only)
Примеры
Стандартные функции
Простые программы, которые демонстрируют основные команды Arduino.
Они включены в среду Arduino; чтобы открыть их, нажмите кнопку "Открыть" на панели инструментов и посмотрите в папке примеров.
Основы
Цифровой сигнал
Аналоговый сигнал
Связь
Эти примеры позволяют Arduino «общаться» со скетчами для Processing, запущенными на компьютере. Для более подробной информации о Processing пройдите сюда – processing.org (там же можно скачать программу).
Здесь также представлены патчи Max/MSP, связанные со скетчами Arduino. Более подробно о Max/MSP читайте на Cycling 74. О патчах для Pd, которые могут работать с этими примерами, читайте в примерах Скотта Фитцджеральда.
Управляющие структуры
Датчики
Дисплей
Примеры, объясняющие основы управления дисплеем:
Строки
USB (для Leonardo, Micro и Due плат)
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
Клавиатура
Мышь
Разное
Использование сдвигового регистра 74HC595
Использование одного сдвигового регистра 74HC595
- ShftOut11 - Простая передача битов
- ShftOut12 - Один за одним
- ShftOut13 - Использование массива
- Управление светодиодами с помощью сдвигового регистра 74HC595
- Создание эффекта "бегущий всадник" с помощью сдвигового регистра 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
- Запись произвольных данных на SD карту
- Чтение и запись произвольных данных на SD карту
- Чтение и запись произвольных данных на 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
- Pacakage Manager - Как установить на Yun дополнительное ПО.
- Expanding Yún disk space - Как расширить дисковое пространство Yun при помощи SD-карты.
Библиотека EEPROM
Библиотека Esplora
Esplora для начинающих
Esplora для экспертов
Библиотека Ethernet
Библиотеки Firmata
Библиотека GSM
Примеры для GSM
Инструменты для GSM
Библиотека LiquidCrystal
Библиотека SD
Библиотека Robot
Библиотека SPI
Библиотека Servo
Библиотека Software Serial
Библиотека Stepper
Библиотека TFT
Esplora
Arduino
Библиотека Wire
Библиотека WiFi
Только для Arduino 101
Библиотека CurieBLE
Библиотека Curie IMU
Библиотека Curie Timer One
- Curie Timer One Interrupt – Устанавливает таймер и запускает прерывание
- Curie Timer One PWM – Генерация ШИМ-сигнала на цифровом контакте (полное управление всеми параметрами)
Только для Arduino Due
Библиотека Audio
- Simple Audio Player - Простой аудиопроигрыватель
Библиотека Scheduler
- MultipleBlinks – Мигание несколькими светодиодами, выполняемое в их собственных loop-функциях.
Только для Arduino Due, Zero и MKR1000
Библиотека USBHost
- MouseController – Скетч, демонстрирующий работу функций MouseController
- KeyboardController – Скетч, демонстрирующий работу функций KeyboardController
Только для Arduino Zero и MKR1000
Библиотека Audio Frequency Meter Library
- Simple Audio Frequency Meter - Простой измеритель звуковой частоты
Библиотека AudioZero
- Simple Audio Player Zero - Простой аудиопроигрыватель для Arduino Zero
Библиотеки RTC
- Simple RTC - Простые часы реального времени (RTC)
- Simple RTC Alarm - Простой будильник для часов реального времени (RTC)
- Sleep RTC Alarm - RTC-будильник, выводящий плату из спящего режима
Только для WiFi 101 и MKR1000
Библиотека 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
- PS2Keyboard International - Работа с разными клавиатурными раскладками
- PS2Keyboard Simple Test - Отображение символов, введенных на клавиатуре
Библиотека SimpleMessageSystem
- SimpleMessageSystem example 1 - Управление функциями Arduino при помощи сообщений
Библиотека SSerial2Mobile
- SSerial2Mobile Example1 - Отправка SMS и имейлов
Библиотека 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
- Demo Sketch - Демо-скетч библиотеки CapacitiveSensor
- Threshold - Установление порога для запуска события
Библиотека Bounce
- Bounce - Устранение дребезга при нажатии на кнопку (вариант с одной кнопкой)
- Bounce2Buttons - Устранение дребезга при нажатии на кнопку (вариант с двумя кнопками)
- Change - Определение перехода из HIGH в LOW
- Duration - Определение продолжительности нажатия на кнопку
- Retrigger - Перезапуск события
Библиотека GLCD
- BigNums - Использование текстовых областей
- clockFace - Аналоговые часы
- GLCDdemo - Пример работы нескольких графических функций
- GLCDdiags - Тест памяти и интерфейса GLCD-модуля
- HelloWorld - «Привет, мир!»
- ks0108example - Пример работы нескольких графических функций (версия для ks0108)
- life - Игра «Жизнь»
- Rocket - Игра «Ракета»
- Serial2GLCD - Показ символов, введенных через монитор порта
- GLCD BigDemo - Большое демо
Библиотека LedControl
- Demo for a Led matrix - Управление матрицей светодиодов
- Demo for a 7-segment display - Управление 7-сегментным дисплеем
- Demo for driving more than one MAX72XX - Управление двумя и более MAX72xx
Библиотека LedDisplay
- LedDisplay fade - Печать функцией print() и изменение яркости дисплея
- LedDisplay print - Печать функцией print()
- LedDisplay printAnalog - Печать аналоговых данных
- LedDisplay scroll - Перемещение строки влево/вправо
- LedDisplay scroll multiple - Печать на трех LED-дисплеях
- LedDisplay scroll serial - Печать данных из последовательного порта
- LedDisplay writeCharacters - Печать функцией write()
Библиотека Matrix
- hello matrix - Приветственный смайлик
- sprite animation - Спрайтовая анимация
Библиотека PCD8544
- pcdtest - Тестовый скетч для библиотеки 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
Библиотека TLC5940
- BasicAnimations - Базовые анимации
- BasicUse - Базовое использование
- CircularLightBuffer - Анимированный «значок загрузки» из светодиодов
- FadeScope - Простой осциллограф
- Fades - Затухание светодиодов
- Servos - Сервомотор
- UsingProgmem - Использование PROGMEM
Библиотека 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
- FlashLedFlexiTimer2 - Периодическое включение и выключение светодиода (для FlexiTimer2)
Библиотека PString
- test pstring - Тестовый скетч для класса PString
Библиотека Streaming
- streaming example - Пример для библиотеки Streaming
Библиотеки[1]
Как и большинство платформ для программирования, возможности IDE Arduino можно расширить за счет добавления новых библиотек. Благодаря этим библиотекам при написании скетчей можно будет использовать дополнительный функционал – например, для управления определенными устройствами или манипуляции данными. Чтобы задействовать в скетче нужную библиотеку, выберите ее в меню Скетч > Подключить библиотеку (Sketch > Include Library).
В IDE Arduino уже установлены некоторые библиотеки, но вы можете загрузить новые и даже создать свои собственные. Более подробно об установке библиотек читайте тут. А по этой ссылке – руководство по написанию собственных библиотек. О том, как создать для своей библиотеки API в Arduino-стиле, читайте тут.
Стандартные библиотеки
- EEPROM – считывание и запись в «постоянную» память
- Ethernet – для подключения к интернету при помощи Arduino Ethernet Shield
- Firmata – для коммуникации с программами на компьютере при помощи стандартизированного протокола Firmata
- GSM – для подключения к GSM/GPRS сети при помощи GSM-модуля
- LiquidCrystal – для управления жидко-кристаллическими дисплеями (LCD)
- SD – для считывания и записи на SD-карту
- Servo – для управления сервомоторами
- SPI – для коммуникации с устройствами при помощи шины SPI
- SoftwareSerial – для последовательной коммуникации на любых цифровых контактах. В IDE Arduino версии 1.0 и выше для этих целей служит библиотека NewSoftSerial от Микала Харта (Mikal Hart)
- Stepper – для управления шаговыми моторами
- TFT – для рисования текста, изображений и фигур на TFT-дисплее Arduino
- WiFi – для подключения к интернету при помощи Arduino WiFi Shield
- Wire – для коммуникации (т.е. получения и отправки данных) с устройствами и датчиками при помощи шины TWI/I2C
Библиотеки Matrix и Sprite вместе с IDE Arduino больше не распространяются.
Только для Arduino 101
- CurieBLE
- CurieIMU – управление встроенными акселерометром и гироскопом
- CurieTimerOne – позволяет использовать функции таймера
Только для Arduino Due
- Audio – проигрывает аудиофайлы с SD-карты
- Scheduler – позволяет одновременно запускать несколько разных функций
Только для Arduino Due, Zero и MKR1000
- USBHost – коммуникация с периферийными USB-устройствами вроде мыши или клавиатуры
Только для Arduino Zero и MKR1000
- Audio Frequency Meter Library – позволяет брать образец аудиосигнала и определять его частоту
- AudioZero – проигрывает аудиофайлы с SD-карты
- RTC – часы реального времени для установления графика событий
Только для WiFi 101 и MKR1000
- WiFi101 – библиотека для использования только с WiFi Shield 101
Только для Esplora
- Esplora – библиотека, обеспечивающая упрощенный доступ к датчикам и контроллерам на плате Esplora
Только для Arduino Robot
- Robot – библиотека, обеспечивающая упрощенный доступ к функциям Arduino Robot
Только для Arduino Yun
- Bridge – для коммуникации между процессорами Linux и Arduino
USB-библиотеки (Leonardo, Micro, Due, Zero и Esplora)
- Keyboard – отсылает компьютеру, присоединенному к плате, информацию о нажатиях на клавиши
- Mouse – отсылает компьютеру, присоединенному к плате, информацию о перемещении курсора
Дополнительные библиотеки
Чтобы использовать эти библиотеки, их сначала нужно установить. Подробнее об этом читайте тут. О написании собственных библиотек читайте тут.
Коммуникация (сети и протоколы)
- CmdMessenger - для обработки текстовых сообщений от компьютера
- NewSoftSerial – улучшенная версия библиотеки SoftwareSerial
- OneWire – управление устройствами (от Dallas Semiconductor), использующими протокол One Wire
- PS2Keyboard – считывание символов с клавиатуры PS2
- SimpleMessageSystem – отправка сообщений между Arduino и компьютером
- SSerial2Mobile – отправка текстовых сообщений или эмейлов при помощи мобильного телефона и AT-команд (через SoftwareSerial)
- Webduino – расширенная веб-серверная библиотека (для использования с Arduino Ethernet Shield)
- X10 – отправка сигналов X10 по линиям переменного тока
- XBee – для коммуникации с XBee в API-режиме
- SerialControl – дистанционное управление Arduino через последовательное соединение
Датчики
- CapacitiveSensing – превращает два или более контакта Arduino в емкостные датчики
- Bounce – для считывания шумных входящих сигналов с цифровых контактов (например, от кнопок)
Дисплеи и светодиоды
- Adafruit GFX – базовый класс со стандартными функциями для работы с графикой (от Adafruit Industries)
- GLCD – функции для работы с графикой для LCD на базе чипсета KS0108 (или эквивалентного ему)
- Улучшенная LiquidCrystal – исправляет баги с инициализацией LCD в официальной LCD-библиотеке Arduino
- LedControl – для управления светодиодными матрицами или 7-сегментными дисплеями с MAX7221 или MAX7219
- LedControl – альтернатива библиотеке Matrix для управления несколькими светодиодами с чипами Maxim
- LedDisplay – управление LED-дисплеем HCMS-29xx с функцией скроллинга
- Matrix -
- PCD8544 – для LCD-контроллера на дисплеях вроде Nokia 55100 (от [www.adafruit.com Adafruit Industries])
- Sprite – библиотека для управления спрайтовыми изображениями (для анимации на LED-матрице)
- ST7735 – для LCD-контроллера на 1,8 дюймовом 128х160 TFT-экране (от Adafruit Industries)
Аудио и звуковые волны
- FFT – частотный анализ аудио и других аналоговых сигналов
- Tone – генерация квадратных звуковых волн на любом контакте микроконтроллера
Моторы и ШИМ
- TLC5940 – 16-канальный 12-битный ШИМ-контроллер
Синхронизация
- Time – библиотека для слежения за текущей датой и временем в ПО
- Metro – помогает распределять действия по регулярным интервалам
- MsTimer2 – использует прерывания timer2 для запуска действий каждые N миллисекунд
- FlexiTimer2 - Это библиотека, позволяющая использовать timer2 на Arduino.