• Что громкость можно регулировать потенциометром, соединенным последовательно с динамиком.
Глава 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
Читать дальше