Читаем Изучаем Arduino: инструменты и методы технического волшебства полностью

Так как обновлять текст нужно в режиме реального времени, необходимо сначала узнать, как загрузить шрифты в программу на Processing. Откройте Processing приложение и создайте новый пустой проект. Сохраните файл, прежде чем продолжить. Затем через контекстное меню Tools -> Create Font вызовите окно, которое изображено на рис. 8.9.

Рис. 8.9. Загрузка шрифтов в Processing-приложение

Выберите свой любимый шрифт и размер (для этой программы я рекомендую размер около 200). После этого нажмите кнопку ОК. Шрифт будет автоматически установлен в папку data данного проекта.

Программа на Processing должна выполнить следующее:

• Сгенерировать графическое окно на компьютере для отображения данных температуры в градусах Цельсия и Фаренгейта.2


- 183 -

• Прочитать входящие данные из последовательного порта, преобразовать их и сохранить значения в локальных переменных для отображения на компьютере.

• Постоянно обновлять экран при получении новых значений из последовательного порта.

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

Листинг 8.3. Программа на Processing для отображения данных температуры - display_temp.pde

// Отображение температуры, получаемой с I2C-датчика

import processing.serial.*;

Serial port;

String temp_c = "";

String temp_f = "";

String data = "";

int index = 0;

PFont font;


void setup()

{

size(400,400);

// Измените "СОМ9" на имя вашего последовательного порта

port = new Serial(this, "СОМ9", 9600);

port.bufferUntil('.');

// Измените имя шрифта, выбранное вами

font = loadFont("AgencyFB-Bold-200.vlw");

textFont(font, 200);

}


void draw()

{

background(0,0,0);

fill(46, 209, 2);

text(temp_c, 70, 175);

fill(0, 102, 153);

text(temp_f, 70, 370);

}


void serialEvent (Serial port)

{

data = port.readStringUntil('.');

data = data.substring(0, data.length() - 1);

// Ищем запятую - разделитель данных по Цельсию и Фаренгейту

index = data.indexOf(",");

- 184 -

// Получить температуру в градусах Цельсия

temp_c = data.substring(0, index);

// Получить температуру по Фаренгейту

temp_f = data.substring(index+1, data.length());

}

Как и в предыдущих примерах на Processing, программа начинается с импорта библиотеки serial и настройки последовательного порта. В секции setup() задается размер окна отображения, загружается сгенерированный шрифт и настраивается загрузка данных последовательного порта в буфер до получения символа точки.

Функция draw() заполняет фон окна черным цветом и выводит значения температуры по Цельсию и по Фаренгейту двумя цветами. С помощью команды fill() вы сообщаете Processing о цвете (в значениях RGB) следующего элемента, который будет добавлен на экран. Функция serialEvent() вызывается при наступлении события bufferuntil(), она считывает содержимое буфера в строку, а затем разбивает его, учитывая расположение запятой. Два значения температуры хранятся в переменных, которые затем выводятся в окно приложения.

Результат выполнения программы показан на рис. 8.10.

Рис. 8.10. Отображение температуры на Processing

При изменении температуры датчика данные в окне Processing-приложения, а также светодиодная гистограмма должны обновиться.

ПРИМЕЧАНИЕ

Для просмотра демонстрационного видеофильма системы мониторинга температуры посетите страницу http:/lwww.exploringarduino.com/content/ch8. Этот видеофильм доступен также на сайте издательства Wiley.

- 185 -

Резюме

В этой главе вы узнали следующее:

• Как организовать связь платы Arduino с несколькими I2C ведомыми 2 устройствами (если они имеют разные адреса) по двухпроводному протоколу I c.

• Как библиотека Wire облегчает связь с I2C-устройствами, подключенными к выводам А4 и А5 платы.

• Как объединить связь по протоколу I2C со сдвиговыми регистрами и обменом по последовательному порту для создания более сложных систем.

• Как генерировать шрифты для динамически обновляемых текстов в программе на Processing.

• Как отображать данные, полученные от I2C-устройств, подключенных к Arduino, с помощью приложения на Processing.

Глава 9. Интерфейсная шина SPI

Интерфейсная

Список деталей

Для повторения примеров главы вам понадобятся следующие детали:

• плата Arduino Uno;

• USB-кабель В (для Uno );

• 1 красный светодиод;

• 1 желтый светодиод;

• 1 зеленый светодиод;

• 1 синий светодиод;

• 4 резистора номиналом 100 Ом;

• 2 резистора номиналом 4,7 кОм;

• динамик;

• цифровой SPI потенциометр МСР4231;

• перемычки;

• макетная плата.

Электронные ресурсы к главе

На странице http://www.exploringarduino.com/content/ch9 можно загрузить программный код, видеоуроки и другие материалы для данной главы. Кроме того, листинги примеров можно скачать со страницы www.wiley.com/go/exploringarduino в разделе Downloads.

Что вы узнаете в этой главе
Перейти на страницу:

Похожие книги

Самоучитель UML
Самоучитель UML

Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы. Цель книги – помочь программистам освоить новую методологию разработки корпоративных программных приложений для последующего применения полученных знаний с использованием соответствующих CASE-инструментов.

Александр Васильевич Леоненков , Александр Леоненков

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Прочая компьютерная литература / Книги по IT
Внутреннее устройство Microsoft Windows (гл. 1-4)
Внутреннее устройство Microsoft Windows (гл. 1-4)

Книга посвящена внутреннему устройству и алгоритмам работы основных компонентов операционной системы Microsoft Windows — Windows Server 2003, Windows XP и Windows 2000 — и файловой системы NTFS. Детально рассмотрены системные механизмы: диспетчеризация ловушек и прерываний, DPC, APC, LPC, RPC, синхронизация, системные рабочие потоки, глобальные флаги и др. Также описываются все этапы загрузки операционной системы и завершения ее работы. B четвертом издании книги больше внимания уделяется глубокому анализу и устранению проблем, из-за которых происходит крах операционной системы или из-за которых ее не удается загрузить. Кроме того, рассматриваются детали реализации поддержки аппаратных платформ AMD x64 и Intel IA64. Книга состоит из 14 глав, словаря терминов и предметного указателя. Книга предназначена системным администраторам, разработчикам серьезных приложений и всем, кто хочет понять, как устроена операционная система Windows.Названия всех команд, диалоговых окон и других интерфейсных элементов операционной системы приведены как на английском языке, так и на русском.Версия Fb2 редакции — 1.5.

Марк Руссинович , Дэвид Соломон

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
Основы информатики: Учебник для вузов
Основы информатики: Учебник для вузов

Учебник состоит из двух разделов: теоретического и практического. В теоретической части учебника изложены основы современной информатики как комплексной научно-технической дисциплины, включающей изучение структуры и общих свойств информации и информационных процессов, общих принципов построения вычислительных устройств, рассмотрены вопросы организации и функционирования информационно-вычислительных сетей, компьютерной безопасности, представлены ключевые понятия алгоритмизации и программирования, баз данных и СУБД. Для контроля полученных теоретических знаний предлагаются вопросы для самопроверки и тесты. Практическая часть освещает алгоритмы основных действий при работе с текстовым процессором Microsoft Word, табличным редактором Microsoft Excel, программой для создания презентаций Microsoft Power Point, программами-архиваторами и антивирусными программами. В качестве закрепления пройденного практического курса в конце каждого раздела предлагается выполнить самостоятельную работу.

Максим Анатольевич Беляев , Вадим Васильевич Лысенко , Лариса Александровна Малинина

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT