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

// порта на скорости 9600

// Установить выводы на выход OUT

pinMode(RED, OUTPUT);

pinMode(GREEN, OUTPUT);

pinMode(BLUE, OUTPUT);

}

void loop()

{

// Пока в буфере есть данные

while (Serial.available() > 0)

{

rval=Serial.parselnt(); //Первое число

gval=Serial.parselnt(); //второе число

bval=Serial.parselnt(); //Третье ЧИСЛО

if (Serial. read() == '\n') //Конец передачи

{

// Установить яркость R,G,B светодиода

analogWrite(RED, rval);

analogWrite(GREEN, gval);

analogWrite(BLUE, bval);

}

}

}

Далее соединяем элементы, как вы делали в главе 6 (рис. 11.18). К плате Arduino присоединяем переходник ХВее и модуль ХВее.

Как и в предыдущем разделе, подключаем адаптер USB ХВее Explorer к компьютеру и запускаем программу на Processing (листинг 11.4).

Убедитесь, что файл hsv.jpg находится в папке data в каталоге программы. И не забудьте установить правильное имя последовательного порта.

Листинг 11.4. Программа на Processing для установки цвета RGB-светрдиода processing_control_RGB/processing_control_RGB.pde

import processing.serial.*;

PImage img;

Serial port;

// Подключение библиотеки serial

void setup()

{

size(640,256);

// Загрузка фоновой картинки

img = loadImage("hsv.jpg");

port = new Serial(this, "СОМ9", 9600); // Открыть последовательный порт

}

- 242 -

void draw()

{

background(0);// Установка цвета фона

image(img,0,0);// Картинка

}

void mousePressed()

{

color с = get(mouseX, mouseY); // Получить RGB-цвет по позиции курсора мыши

String colors = int(red(c))+","+int(green(c))+","+int(blue(c))+"\n";

// Преобразовать в строку

// Вывод для отладки

print(colors);

port.write(colors); // Отправка переменной в Arduino

}

Рис. 11.18. Соединение Arduino и RGB-светодиода

- 243 -

При запуске программы появится экран выбора цвета как в главе 6. Выберите цвет.

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

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

<p>11.4. Беспроводной дверной звонок</p>

Беспроводная связь между двумя платами Arduino имеет много практических применений. На основе нескольких плат Arduino можно построить сеть датчиков, передавать команды для радиоуправляемого автомобиля или осуществлять удалеый мониторинг. В этом примере с помощью двух плат Arduino, снабженных модулями ХВее, создадим беспроводной звонок для дома, квартиры или офиса. Плата Arduino, встроенная в дверь, будет реагировать на нажатие наружной кнопки звонка. Когда кто-нибудь позвонит в дверь, другая плата Arduino включит световой или звуковой сигнал, чтобы сообщить, что к вам пришел посетитель.

ПРИМЕЧАНИЕ

Возможно, прежде чем создавать проект, вы захотите посмотреть видеоклип, демонстрирующий действие системы, доступный на странице

http://www.exploringarduino.com/content/ch11.

11.4.1. Разработка системы

Система будет состоять из двух плат Arduino. На каждой плате дополнительно установлен переходник с модулем ХВее. Одну плату Arduino можно разместить за пределами дома или квартиры, рядом с кнопкой. Другая плата может находиться в любом месте внутри помещения, чтобы уведомить вас, что кто-то звонит в дверь.

Дальность действия зависит от типа ХВее-модулей, от количества стен между модулями и других факторов окружающей среды.

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

Общая структура системы показана на рис. 11.19. Сверяясь с этим рисунком, будет проще разработать каждый из блоков.

- 244 -

Рис. 11.19. Структура системы беспроводного звонка

11.4.2. Оборудование для передатчика

Начнем с передатчика. Вам нужно подключить кнопку с резистором к цифровому входу платы Arduino с установленным на ней переходником с модулем ХВее (рис. 11.20).

Тип платы Arduino не имеет принципиального значения, но важно отметить, что последовательное соединение на плате Leonardo будет работать по-другому, нежели на Uno. На платах Uno и Micro один и тот же процессор управляет последовательным обменом и выполняет программу, а на Leonardo и Mega для этих целей

Рис. 11.20. Схема подключения передатчика беспроводного дверного замка

- 245 -

предусмотрены отдельные процессоры. Чтобы продемонстрировать эти различия, я выбрал для передатчика плату Leonardo. Схема для любой платы одна и та же.

Программные различия рассмотрим далее.

Перейти на страницу:

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