Монк - Программируем Arduino. Профессиональная работа со скетчами.
- Название:Программируем Arduino. Профессиональная работа со скетчами.
- Автор:
- Жанр:
- Издательство:Издательский дом Питер
- Год:2017
- Город:СПб.
- ISBN:978-5-496-02385-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Монк - Программируем Arduino. Профессиональная работа со скетчами. краткое содержание
Простые проекты на основе Arduino не вызывают сложностей в реализации. Но, вступив на территорию, не охваченную вводными руководствами, и увеличивая сложность проектов, вы быстро столкнетесь с проблемой нехватки знаний — врагом всех программистов.
Эта книга задумана как продолжение бестселлера «Programming Arduino: Getting Started with Sketches». Несмотря на то что эта книга включает краткое повторение основ из книги «Programming Arduino», она познакомит читателя с более продвинутыми аспектами программирования плат Arduino.
Программируем Arduino. Профессиональная работа со скетчами. - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
В библиотеке Arduino доступно большое число команд. В табл. 1.2 перечислены наиболее часто используемые из них вместе с примерами.
Таблица 1.2.Функции из библиотеки Arduino
Команда | Пример | Описание |
---|---|---|
Цифровой ввод/вывод | ||
pinMode | pinMode(8, OUTPUT); | Переводит контакт 8 в режим работы цифрового выхода. Поддерживаются также режимы INPUT и INPUT_PULLUP |
digitalWrite | digitalWrite(8, HIGH); | Устанавливает высокий уровень напряжения на контакте 8. Чтобы установить низкий уровень напряжения, используйте константу LOW вместо HIGH |
digitalRead | int i; i = digitalRead(8); | Присваивает переменной i значение HIGH или LOW в зависимости от уровня напряжения на указанном контакте (в данном случае — на контакте 8) |
pulseIn | i = pulseIn(8, HIGH); | Возвращает продолжительность в микросекундах следующего импульса с напряжением HIGH на контакте 8 |
tone | tone(8, 440, 1000); | Генерирует на контакте 8 серию импульсов с частотой 440 Гц продолжительностью 1000 мс |
noTone | noTone(); | Прерывает любые серии импульсов, запущенные вызовом tone |
Аналоговый ввод/вывод | ||
analogRead | int r; r = analogRead(0); | Присваивает переменной r значение в диапазоне от 0 до 1023. Значение 0 соответствует напряжению 0 В на контакте 0, а значение 1023 — напряжению 5 В (или 3,3 В, если для питания платы используется напряжение 3,3 В) |
analogWrite | analogWrite(9, 127); | Выводит широтно-импульсный сигнал. Протяженность положительного импульса может изменяться в диапазоне от 0 до 255, где число 255 соответствует 100%. Этой функции можно передавать номера контактов, обозначенных на плате как PWM (контакты 3, 5, 6, 9, 10 и 11) |
Команды для работы со временем | ||
millis | unsigned long l; l = millis(); | Переменные типа long в Arduino хранят 32-битные значения. Значение, возвращаемое функцией millis(), — это число миллисекунд, прошедших с момента последнего сброса платы. Примерно через 50 дней значение обнуляется и счет начинается заново |
micros | long l; l = micros(); | Действует подобно millis, но возвращает число микросекунд, прошедших с момента последнего сброса платы. Значение обнуляется примерно через 70 минут |
delay | delay(1000); | Приостанавливает работу скетча на 1000 мс, или на 1 с |
delayMicroseconds | delayMicroseconds(10000) | Приостанавливает работу скетча на 10 000 мкс. Обратите внимание: минимальная задержка составляет 3 мкс, максимальная — около 16 мс |
Прерывания (глава 3) | ||
attachInterrupt | attachInterrupt(1, myFunction, RISING); | Устанавливает функцию myFunction, как обработчик положительного фронта прерывания 1 (контакт D3 в UNO) |
detachInterrupt | detachInterrupt(1); | Запрещает обработку сигналов от прерывания 1 |
Полный перечень всех команд Arduino вы найдете в официальной документации на сайте Arduino: http://arduino.cc [6] Аналогичный справочник с описанием команд на русском языке можно найти по адресу http://arduino.ru/Reference . — Примеч. пер.
.
В заключение
Из-за ограниченного объема книги в этой главе было дано очень краткое введение в мир Arduino. Более подробную информацию об основах вы найдете на многочисленных онлайн-ресурсах, включая бесплатные руководства по Arduino на сайте http://www.learn.adafruit.com.
В следующей главе мы заглянем под капот Arduino и посмотрим, как действует эта плата и что происходит у нее внутри, используя для этого удобную среду программирования Arduino.
2. Под капотом
Самое замечательное в Arduino — в большинстве случаев нет необходимости знать, что происходит за кулисами после того, как вы выгрузите скетч. Но так как вы собираетесь вникнуть в особенности работы Arduino и узнать больше о ее возможностях, вы должны знать чуть больше о происходящем в ее глубинах.
Краткая история Arduino
Первая плата Arduino была создана в 2005 году в итальянском Институте проектирования взаимодействий (Interaction Design Institute) в городе Ивреа, близ Турина. Целью было создание недорогого и простого в использовании инструмента для обучения студентов искусству проектирования интерактивных систем. Программное обеспечение для Arduino, которое обеспечило этой плате значительную долю успеха, является доработкой открытого фреймворка с названием Wiring, созданного студентом этого же института.
Доработанная версия для Arduino получилась очень близкой к оригиналу Wiring, а среда разработки Arduino IDE написана с использованием фреймворка Processing, старшего брата Wiring, способного работать на PC, Mac и других персональных компьютерах. Вам стоит обратить внимание на Processing, если вы работаете над проектом, в котором плата Arduino должна обмениваться информацией с PC через USB или Bluetooth.
Аппаратура Arduino все эти годы продолжала развиваться, но современные платы Arduino Uno и Leonardo сохранили форму и набор контактов, доставшиеся от оригинала.
Устройство Arduino
На рис. 2.1 изображена структурная схема платы Arduino Uno. Модель Leonardo имеет схожее устройство, но интерфейс USB в ней интегрирован в чип микроконтроллера. Похожее устройство имеет и модель Due, но в ней используется процессор с напряжением питания 3,3 В вместо 5 В.
Рис. 2.1.Устройство платы Arduino Uno
Во многих отношениях Arduino — не более чем микроконтроллер с небольшим количеством поддерживающих компонентов. В действительности вполне можно создать Arduino на макетной плате, добавив микропроцессор и несколько дополнительных компонентов, или создать свою печатную плату, взяв за основу плату Arduino. Готовые платы Arduino избавляют от такой необходимости, но вообще можно повторить любую плату Arduino, используя микроконтроллер и несколько действительно необходимых компонентов. Например, если ваша разработка предназначена только для одной цели, есть смысл отказаться от интерфейса USB, так как программы можно выгружать в микросхемы памяти на плате Arduino, а затем переносить их на свои платы.
Далее в книге будет показано, как можно программировать платы Arduino непосредственно через последовательный интерфейс внутрисхемного программирования ICSP (In Circuit Serial Programming).
Процессоры AVR
Во всех платах семейства Arduino используются микроконтроллеры, производимые компанией Atmel. Все они имеют схожую аппаратную архитектуру и, за исключением микроконтроллера, используемого в модели Due (SAM3X8E ARM Cortex-M3 CPU), схожую конструкцию.
ATmega328
В Arduino Uno и ее предшественнице Duemilanove используется микроконтроллер ATmega328. Фактически первые версии Arduino комплектовались микроконтроллером ATmega168, который, по сути, является полным аналогом ATmega328, но имеет в два раза меньше памяти каждого вида.
На рис. 2.2 изображена функциональная схема ATmega328 из технического описания микроконтроллера. Полное описание можно найти по адресу www.atmel.com/Images/doc8161.pdf. Вам стоит просмотреть ее, чтобы лучше понимать, как действует это устройство.
Читать дальшеИнтервал:
Закладка: