Изучаем Arduino: инструметы и методы технического волшебства - [61]

Шрифт
Интервал

11.3.3. Пример 2: управление RGB-светодиодом

В предыдущем примере мы убедились, что возможна беспроводная передача данных от Arduino к компьютеру. Теперь используем код из главы 6 для управления RGB-светодиодом, чтобы проверить, что можно отправлять данные без проводов от компьютера к плате Arduino. Удостоверившись в успешном обмене данными между компьютером и Arduino по беспроводному соединению, вы сможете создавать множество интересных приложений (некоторые есть на веб-странице для этой главы).

Сначала загрузим программу (листинг 11.3) на плату Arduino. Подобный пример был рассмотрен в главе 6. Принимаем строку значений RGB и устанавливаем цвет RGB-светодиода.

Листинг 11.3. Управление RGB-светодиодом через последовательный порт - processing_control)RGB/list_control

// Отправка многоразрядных значений

// Константы выводов RGB-светодиода

const int RED =11;

const int GREEN =10;

const int BLUE =9;

// Переменные значений выводов RGB

int rval=0;

int gval=0;

int bval=0;


- 241 -

void setup()

{

Serial.begin(9600);// Инициализация последовательного

// порта на скорости 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 напрямую.

11.4. Беспроводной дверной звонок

Беспроводная связь между двумя платами 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. Оборудование для передатчика