Монк . - Программируем Arduino

Тут можно читать онлайн Монк . - Программируем Arduino - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-db, издательство Издательский дом Питер, год 2017. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программируем Arduino
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Питер
  • Год:
    2017
  • ISBN:
    978-5-496-02385-6
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Монк . - Программируем Arduino краткое содержание

Программируем Arduino - описание и краткое содержание, автор Монк ., читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Программируем Arduino - читать онлайн бесплатно полную версию (весь текст целиком)

Программируем Arduino - читать книгу онлайн бесплатно, автор Монк .
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Serial.print("Lat: ");

getField(field, 3); // число

Serial.print(field);

getField(field, 4); // широта N/S

Serial.print(field);

Serial.print(" Long: ");

getField(field, 5); // число

Serial.print(field);

getField(field, 6); // долгота E/W

Serial.println(field);

}

}

void getField(char* buffer, int index)

{

int sentencePos = 0;

int fieldPos = 0;

int commaCount = 0;

while (sentencePos < sentenceSize)

{

if (sentence[sentencePos] == ',')

{

commaCount ++;

sentencePos ++;

}

if (commaCount == index)

{

buffer[fieldPos] = sentence[sentencePos];

fieldPos ++;

}

sentencePos ++;

}

buffer[fieldPos] = '\0';

}

Сообщения, посылаемые модулем GPS, имеют разную длину, но не более 80 символов, поэтому в скетче используется буфер емкостью 80 символов, который заполняется данными, пока не заполнится или не будет получен признак конца строки.

После того как полное сообщение будет прочитано, в конец буфера вставляется нулевой символ, завершающий строки в языке C. Это необходимо, только если вы пожелаете «напечатать» сообщение в его исходном виде.

Остальная часть скетча реализует извлечение полей и форматирование выходной строки для записи в монитор последовательного порта. Функция getField извлекает текст из поля с указанным индексом.

Функция displayGPS игнорирует любые сообщения, тип которых отличается от "$GPRMC", и извлекает широту и долготу, а также односимвольные названия полушарий для отображения.

В заключение

В этой главе мы исследовали несколько способов программирования взаимодействий через последовательный интерфейс между платами Arduino, периферийными устройствами и компьютерами.

В следующей главе мы обратим внимание на одну интересную особенность Arduino Leonardo, которая позволяет имитировать поведение периферийных устройств USB, таких как клавиатура и мышь. А также рассмотрим некоторые аспекты программирования интерфейса USB.

8 Похожее описание на русском языке: http://arduino.ru/Reference/Serial. — Примеч. пер.

9 Описание на русском языке: http://arduino.ua/ru/prog/SoftwareSerial. — Примеч. пер.

11. Программирование интерфейса USB

В этой главе рассматриваются разные аспекты использования порта USB на плате Arduino. В том числе возможность эмуляции клавиатуры и мыши, поддерживаемой платой Arduino Leonardo, а также подключения клавиатуры или мыши к соответственно оборудованной плате Arduino.

Эмуляция клавиатуры и мыши

Три модели Arduino — Due, Leonardo и Micro (основанная на модели Leonardo) — позволяют использовать их порт USB для эмуляции клавиатуры или мыши. Существуют также Arduino-совместимые платы, такие как LeoStick от компании Freetronics (рис. 11.1), поддерживающие аналогичную возможность.

Эта возможность широко используется, например, с музыкальными контроллерами, что позволяет плате Arduino взаимодействовать с музыкальными синтезаторами и управляющими программами, такими как Ableton Live. Благодаря ей можно, к примеру, на основе Arduino создавать новые музыкальные инструменты, управляющие музыкальным программным обеспечением с помощью датчиков поворота, прерываемых лучей света или педальной клавиатуры. К несерьезным применениям этой возможности можно отнести устройства, которые создают впечатление, что мышь живет

Рис 111Плата LeoStick своей жизнью независимо от действий пользователя или - фото 74

Рис. 11.1.Плата LeoStick

своей жизнью независимо от действий пользователя или клавиатура сама печатает случайные символы.

Модель Arduino Due имеет два порта USB. Эмуляция клавиатуры и мыши осуществляется через локальный порт USB , а программирование Arduino Due — через порт USB для программирования (рис. 11.2).

Рис 112Плата Arduino Due с двумя портами USB Эмуляция клавиатуры Функции - фото 75

Рис. 11.2.Плата Arduino Due с двумя портами USB

Эмуляция клавиатуры

Функции эмуляции клавиатуры просты в использовании. Они входят в состав стандартной библиотеки языка, поэтому для доступа к ним не требуется подключать дополнительные библиотеки. Чтобы включить режим эмуляции клавиатуры, добавьте в функцию setup следующую команду:

Keyboard.begin();

Чтобы заставить Arduino печатать что-нибудь, можно воспользоваться командами print и println, и переданный им текст появится в позиции текстового курсора:

Keyboard.println("It was the best of times.");

Чтобы сымитировать нажатие клавиш-модификаторов, например ввести комбинацию CTRL+C, используйте команду press:

Keyboard.press(KEY_LEFT_CTRL);

Keyboard.press('x');

delay(100);

Keyboard.releasrAll();

Команда press имеет односимвольный параметр, в котором ей можно передавать любые обычные символы или предопределенные константы, такие как KEY_LEFT_CTRL. После вызова команды press плата будет имитировать удержание клавиши в нажатом состоянии, пока не будет вызвана команда releaseAll. Полный список специальных клавиш можно найти по адресу http://arduino.cc/en/Reference/KeyboardModifiers.

ПРИМЕЧАНИЕ

При использовании функций эмуляции клавиатуры и мыши можно столкнуться со сложностями при программировании платы, так как она будет пытаться вводить текст, пока вы пытаетесь запрограммировать ее. Чтобы преодолеть эту проблему, примените следующий трюк: нажмите и удерживайте нажатой кнопку сброса Reset и отпустите ее, только когда в строке состояния Arduino IDE появится сообщение «uploading» («загрузка»).

Пример эмуляции клавиатуры

Следующий пример автоматически вводит текст по вашему выбору (например, пароль) после каждого сброса платы Arduino:

// sketch_11_01_keyboard

char phrase[] = "secretpassword";

void setup()

{

Keyboard.begin();

delay(5000);

Keyboard.println(phrase);

}

void loop()

{

}

Этот пример можно сделать эффективнее, если активировать ввод нажатием внешней клавиши: если вы пользуетесь компьютером Mac, операционная система будет думать, что в момент сброса платы к компьютеру подключается новая клавиатура, и выведет системный диалог, который нужно успеть закрыть до того, как плата напечатает текст.

Эмуляция мыши

Эмуляция мыши реализуется с применением того же шаблона, что и эмуляция клавиатуры. Вообще говоря, нет никаких причин, препятствующих эмуляции обоих устройств ввода в одном скетче.

Чтобы запустить эмуляцию, прежде всего следует выполнить команду

Mouse.begin();

Управление указателем мыши осуществляется командой Mouse.move. Она имеет три параметра: смещение по осям x и y и поворот колесика. Все три параметра измеряются в пикселах. Эти значения могут быть положительными (смещение указателя вправо или вниз) или отрицательными (смещение указателя влево или вверх). Смещения откладываются относительно текущей позиции указателя, а так как нет никакой возможности указать абсолютные координаты указателя, эта команда лишь имитирует поведение мыши, перемещающей указатель, но не управляет самим указателем.

Сымитировать щелчок мышью можно с помощью команды click. Без параметров эта команда имитирует щелчок левой кнопкой мыши. При желании ей можно передать аргумент MOUSE_RIGHT или MOUSE_MIDDLE.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Монк . читать все книги автора по порядку

Монк . - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Программируем Arduino отзывы


Отзывы читателей о книге Программируем Arduino, автор: Монк .. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x