Джереми Блум - Изучаем Arduino: инструметы и методы технического волшебства
- Название:Изучаем Arduino: инструметы и методы технического волшебства
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2015
- Город:Санкт-Петербург
- ISBN:978-5-9775-3585-4
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джереми Блум - Изучаем Arduino: инструметы и методы технического волшебства краткое содержание
Для радиолюбителей
Изучаем Arduino: инструметы и методы технического волшебства - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Соберите схему изображенную на рис. 5.6.

рис. 5.6. Пианино
Листинг 5.3. Пианино
#define NOTE_C 262 //Hz
#define NOTE_D 294 //Hz
#define NOTE_E 330 //Hz
#define NOTE_G 392 //Hz
#define NOTE_A 440 //Hz
const int SPEAKER=9; //Speaker on Pin 9
const int BUTTON_C=7; //Button Pin
const int BUTTON_D=6; //Button Pin
const int BUTTON_E=5; //Button Pin
const int BUTTON_G=4; //Button Pin
const int BUTTON_A=3; //Button Pin
void setup()
{
//No setup needed
//Tone function sets outputs
}
void loop()
{
while (digitalRead(BUTTON_C))
tone(SPEAKER, NOTE_C);
while(digitalRead(BUTTON_D))
tone(SPEAKER, NOTE_D);
while(digitalRead(BUTTON_E))
tone(SPEAKER, NOTE_E);
while(digitalRead(BUTTON_G))
tone(SPEAKER, NOTE_G);
while(digitalRead(BUTTON_A))
tone(SPEAKER, NOTE_A);
//Stop playing если ни одна кнопка не нажата
noTone(SPEAKER);
}
Резюме
• Как динамики создают вибрацию воздуха, которая распространяется в пространстве и воспринимается нашей барабанной перепонкой в виде звука.
• Что изменение электрического тока индуцирует магнитное поле, которое генерирует звук из громкоговорителя.
• Как создавать звуки произвольной частоты и длительности с помощью функции tone().
• Что язык программирования Arduino поддерживает массивы, что удобно для перебора последовательностей данных.
• Что громкость можно регулировать потенциометром, соединенным последовательно с динамиком.
Глава 6. USB и последовательный интерфейс
Для повторения примеров главы вам понадобятся следующие детали:
• плата Arduino Uno;
• плата Arduino Leonardo;
• USB-кабель А - В (для Uno );
• USB-кабель А - микро В (для Leonardo );
• светодиод;
• RGB-светодиод с общим катодом;
• резистор номиналом 150 Ом;
• 3 резистора номиналом 220 Ом;
• 2 резистора номиналом 10 кОм;
• кнопка;
• фоторезистор;
• датчик температуры ТМР36;
• двух.координатный джойстик (Spark.Fun, Parallax или Adafruit);
• перемычки;
• провода;
• макетная плата;
• потенциометр.
На странице http://www.exploringarduino.com/content/ch6 можно загрузить программный код, видеоуроки и другие материалы для данной главы. Кроме того, листинги примеров можно скачать со страницы www.wiley.com/go/exploringarduino в разделе Downloads.
- 119 -
Обычно для загрузки программ из компьютера в микроконтроллер нужны внешние аппаратные средства, такие как программатор AVR ISP MKII. Замечательная особенность любой платы Arduino - возможность запрограммировать ее через USB-интерфейс. Это позволяет программировать Arduino без специального программатора. В плату Arduino уже встроен программатор, что дает возможность напрямую подключаться к интегрированному универсальному синхронно/асинхронному приемопередатчику ATmega (USART). Через этот интерфейс можно обмениваться данными между Arduino и компьютером или между Arduino и другими устройствами, поддерживающими протокол (включая другие платы Arduino).
В этой главе рассматривается все, что вам необходимо знать о подсоединении Arduino к компьютеру через USB и передаче данных между ними. У различных плат Arduino разные возможности последовательного соединения, и мы рассмотрим проекты с каждым из них, чтобы ознакомившись со всеми, затем использовать их максимально эффективно. Обратите внимание, что в списке деталей в начале главы указано несколько плат Arduino. В зависимости от типа платы вы можете решить, какие разделы главы читать, какие примеры выбрать для выполнения и какие из перечисленных деталей понадобятся.
6.1. Реализация последовательного интерфейса в Arduino
Как уже упоминалось во введении к данной главе, в разных платах Arduino последовательный интерфейс выполнен по-разному. Различия есть как в аппаратной, так и в программной реализации: неодинаковы типы микросхем преобразователей и перечень поддерживаемых функций. Сначала мы рассмотрим различия аппаратных интерфейсов на платах Arduino.
ПРИМЕЧАНИЕ
Чтобы узнать больше о последовательном интерфейсе, посмотрите видеоурок на странице http://www.jeremyblum.com/2011 /02/07/arduino-tutorial-6-serial-communicationand-processing/ [9] На русском: http://wiki.amperka.ru/видеоуроки:6-serial-и-processing.
или на сайте издательства Wiley.
Для начала необходимо понять разницу между последовательным портом и USB.
Если вы молоды, то наверное даже не сталкивались с последовательным портом (или RS-232), т. к. его давно уже вытеснил USB-интерфейс. Внешний вид стандартного последовательного порта изображен на рис. 6.1.
Фирменные платы Arduino снабжены последовательным портом и подключаются к компьютеру с помощью 9-контактного разъема. В настоящее время еще можно встретить компьютеры, оснащенные такими портами, хотя давно существуют адаптеры от RS232 к USB. У микроконтроллера ATmega328, который установлен на
- 120 -
плате Arduino Uno, есть один аппаратный последовательный порт. Он соединен с контактами Тх (передача) и Rx (прием), к которым можно получить доступ на цифровых выводах 0 и 1. Как мы узнали в главе 1, плата Arduino снабжена загрузчиком, который позволяет программировать ее по последовательному интерфейсу.
Это как раз те выводы, которые "мультиплексированы" (т. е. выполняют более одной функции), они используются и как линии приема-передачи кабеля USB. Но последовательный порт и USB-интерфейс несовместимы. В Arduino эта проблема решается двумя способами. Первый - применение дополнительной микросхемыпреобразователя (так сделано на платах Arduino Uno). Второй способ- использование микроконтроллера, имеющего встроенный USB-интерфейс (например, микроконтроллер 32U4 в Arduino Leonardo ).

Рис. 6.1. Последовательный порт
6.2. Платы Arduino с внутренним или внешним преобразователем FTDI
На многих платах Arduino (и их клонах) установлена дополнительная интегральная схема для преобразования USB в последовательный порт. FTDI - популярный чип, выполняющий единственную функцию: конвертирование между последовательным портом и USB. Когда компьютер подключается к микросхеме FTDI, она появляется в системе как "Virtual Serial Port", и доступ к нему аналогичен 9-проводному порту прямо в вашем компьютере. Плата Arduino Nano с установленной микросхемой преобразователя FTDI изображена на рис. 6.2.
ПРИМЕЧАНИЕ
Для обеспечения правильного взаимодействия компьютера с адаптером FTDI необходимо установить драйверы. Найти последние версии драйверов для Windows, OS Х и Linux можно на странице http://www.ftdichip.com/DriversNCP.htm. Ссылка на данную страницу есть на сайте Exploring Arduino.
Иногда для уменьшения размера платы чип FTDI встраивают в кабель (USB-кабель с чипом FTDI изображен на рис. 6.3) или устанавливают на дополнительной плате адаптера (рис. 6.4).
Плата Arduino со съемным адаптером FTDI целесообразна для проектов, в которых нет необходимости подключаться к компьютеру через USB. В результате уменьшится стоимость и габариты готового устройства.
Читать дальшеИнтервал:
Закладка: