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

Рис. 6.2. Плата Arduino Nano с чипом FTDI

Рис. 6.3. Кабель FTDI

Рис. 6.4. Плата адаптера FTDI Sparkfun
Далее перечислены платы Arduino со встроенным чипом FTDI. Большинство из них уже не выпускается, тем не менее, продается еще много клонов этих плат:
• Arduino Nano;
• Arduino Extreme;
• Arduino NG;
• Arduino Diecimila;
• Arduino Duemilanove;
• Arduino Mega ( original).
А вот список плат, рассчитанных на работу с внешним адаптером FTDI:
• Arduino Pro;
• Arduino Pro Mini;
- 122 -
LilyPad Arduino;
Arduino Fio;
Arduino Mini;
Arduino Ethemet.
6.3. Платы Arduino с дополнительным микроконтроллером для преобразования USB в последовательный порт
Плата Arduino Uno была первой платой, где для преобразования USB в последовательный порт применен дополнительный контроллер. Функционирует все точно так же, но с небольшими техническими различиями. На рис. 6.5 изображен последовательный адаптер 8U2, установленный в Arduino Uno (в новых версиях используется преобразователь 16U2).
Микроконтроллер Atmel 8U2 или 16U2

Рис. 6.5. Чип 8U2 на плате Arduino Uno
Вот краткий перечень различий:
• в операционной системе Windows для плат с новым адаптером требуется специальный драйвер. Этот драйвер поставляется в комплекте с загруженной версией Arduino IDE (драйверы для операционных систем OS Х и Linux не нужны);
• использование второго микроконтроллера в качестве адаптера позволило при подключении передавать в компьютер идентификатор производителя и код продукта. Ранее при подключении платы Arduino к компьютеру она определялась
- 123 -
как последовательное устройство. Плата Arduino с адаптером 8U2 и 16U2 определяется компьютером как устройство Arduino;
вспомогательный микроконтроллер можно перепрограммировать ( он работает на прошивке LUF А, которая эмулирует конвертер USB), следовательно, есть возможность изменить прошивку, чтобы плата Arduino определялась, например, как джойстик, клавиатура или MIDI-устройство. При замене прошивки плату Arduino придется программировать через программатор, например AVR ISP MKII.
Вот список плат Arduino со вспомогательным микроконтроллером для преобразования USB в последовательный порт:
• Arduino Uno;
• Arduino Mega 2560;
• Arduino Mega ADK (на основе 2560);
• Arduino Due (эту плату можно запрограммировать непосредственно).
6.4. Платы Arduino с микроконтроллером, снабженным встроенным интерфейсом USB
Плата Arduino Leonardo была первой платой, имеющей только одну микросхему, выполняющую функции и программируемого пользователем микроконтроллера, и интерфейса USB. На плате Arduino Leonardo (и ее клонах) установлен микроконтроллер 32U4, поддерживающий прямую передачу через USB. Это дает несколько преимуществ.
Во-первых, уменьшается стоимость платы, потому что на ней меньше компонентов и короче программа первоначальной загрузки платы. Во-вторых, плата способна эмулировать не только последовательный порт, но и другие устройства (такие как клавиатура, мышь или джойстик). В-третьих, обычный порт USART на ATmega не мультиплексирован с выводами интерфейса USB, поэтому возможен параллельный обмен данными как с главным компьютером, так и с внешним последовательным устройством (таким как модуль GPS).
Вот список плат Arduino, снабженных микроконтроллером со встроенным интерфейсом USB:
• Arduino Due ( ее также можно запрограммировать через вспомогательный микроконтроллер);
• LilyPad Arduino USB;
• Arduino Esplora;
• Arduino Leonardo;
• Arduino Micro.
- 124 -
6.5. Платы Arduino с возможностями USB-хоста
Некоторые платы Arduino обладают возможностями USB-хоста, что позволяет подсоединить к ним традиционные USB-устройства (клавиатуры, мыши, телефоны на базе Android). Естественно, для поддержки этих устройств потребуются дополнительные драйверы. Например, нельзя просто так соединить веб-камеру с Arduino Due и сразу же ожидать получения фотографий. Arduino Due поддерживает класс USB Host, что позволяет подключить к USB-порту клавиатуру или мышь. Arduino Mega ADK поддерживает протокол Android Open Accessory Protocol (АОА), что упрощает обмен данными между Arduino и устройством на базе Android. Прежде всего, это нужно для управления вводом-выводом Arduino из приложения, работающего на устройствах на базе Android.
Возможности USB-хоста поддерживают две платы: Arduino Due и Arduino Mega ADK (на основе Mega 2560).
6.6. Опрос Arduino с компьютера
Основная функция, которую обеспечивает последовательный интерфейс, - вывод данных с Arduino в терминал компьютера. В предыдущих главах об этом уже упоминалось. В этом разделе более детально остановимся на данном вопросе и позже рассмотрим примеры приложений, которые отвечают на данные, которые вы отправляете, вместо того, чтобы просто выводить их в терминал. Этот процесс одинаков для всех плат Arduino.
Для вывода данных в терминал существуют три функции:
• Serial.begin (baud_rate);
• Serial.print ( "Message");
• Serial.println ("Message"),
где baud_rate и message- переменные, задаваемые пользователем.
Как вы уже знаете, функция Serial. begin() вызывается один раз в начале программы в setup(), чтобы настроить последовательный порт для связи. После этого можно вызвать функции Serial.print() и serial.println() для передачи данных в последовательный порт. Единственное различие между ними состоит в том, что функция serial.println() добавляет символ перевода в конце строки. Чтобы поэкспериментировать с этими функциями, соберем простую схему, подключив потенциометр к контакту A0 платы Arduino, как показано на рис. 6.6.
После подключения потенциометра загрузите простую программу, приведенную в листинге 6.1, которая выводит показания потенциометра в виде абсолютного значения и в процентах.

Рис. 6.6. Схема подключения потенциометра
Листинг 6.1. Тестовая программа ввода значений потенциомтре в последовательный порт - pot.ino
// Тестовая программа вывода значений потенциометра в последовательный порт
const int POT=0; // Подключение потенциометра к аналоговому входу A0
void setup()
{
Serial.begin(9600); // Инициализация последовательного порта на скорости 9600
}
- 126 -
void loop()
{
int val = analogRead(POT);// Чтение данных с потенциометра
int per = map(val, 0, 1023, 0, 100);// Перевод в процентное значение
Serial.print("Analog Reading: ");
Serial.print(val);// Вывод аналогового значения
Serial.print(" Percentage: ");
Serial.print(per);// Вывод значения в процентах
Читать дальшеИнтервал:
Закладка: