11.3.1. Автономное питание платы Arduino

Поскольку плата Arduino не будет подключена к компьютеру через USB, необходимо предусмотреть внешнее питание. Рассмотрим несколько вариантов решения этой проблемы.

Питание от USB с компьютера или сетевого адаптера

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

Можно использовать 5-вольтовый сетевой блок питания с USB-выходом. При этом отпадает привязка к компьютеру. Подобные адаптеры широко применяются для зарядки iPhone, Android-устройств, а также других планшетов и смартфонов. На рис. 11.13 показан стандартный сетевой USB-адаптер для американских розеток.

- 236 -

Рис. 11.13. Сетевой 5-вольтовый USB-адаптер

Питание от батареи

Можно питать плату Arduino от батареи, подключив ее к разъему питания или входу Vin. С этих входов напряжение поступает на встроенный стабилизатор, который выдает напряжение 5 В для питания микропроцессора и других компонентов. На рис. 11.14 показана 9-вольтовая батарея со встроенным выключателем и разъемом питания.

Вместо 9-вольтовой батареи можно использовать несколько батареек АА с напряжением 1,5 В. Если соединить последовательно четыре таких батарейки, получится напряжение около 6 В. Минимальное падение напряжения на встроенном в Arduino стабилизаторе равно 1 В. При входном напряжении 5,5 В на шине питания будет

рис. 11.14. Батарея 9 В

- 237 -

4,5 В. Можно рассчитывать, что плата будет работать и при напряжении 4,5 В, что приемлемо для платы на базе ATMega, хотя и ниже напряжения при питании от USB.

Сетевые источники питания

Еще один вариант питания для удаленной платы Arduino - стандартный сетевой адаптер. Он подключается к обычной розетке и имеет на другом конце разъем для соединения с Arduino. При выборе подобного сетевого блока питания необходимо обратить внимание на три важных характеристики:

• размеры разъема (диаметр 2,1 мм с плюсовым центральным контактом (рис. 11.15) );

• напряжение питания (желательно 7-12 В);

• максимальный ток (чем выше ток, тем больше устройств можно подключить к плате Arduino ). Блок с током 1 А довольно распространен и обеспечивает более чем достаточную мощность для платы Arduino и некоторых дополнительных компонентов.

Рис. 11.15. Разъем сетевого адаптера с плюсовым центральным контактом

11.3.2. Пример 1: беспроводное управление цветом окна на компьютере

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

1. Загрузите программу, которая позволяет изменить цвет окна обработки с помощью потенциометра, подключенного к Arduino. Сделайте это до установки переходника ХВее на плату Arduino, чтобы избежать коллизий UART, которые обсуждались ранее в этой главе. Если на переходнике есть перемычка или переключатель для выбора режима подключения/отключения ХВее к UART, то сам переходник при программировании платы Arduino можно не извлекать. Уточните это в документации на ваш переходник ХВее. Код программы, читающий данные потенциометра и передающий их на компьютер, приведен в листинге 11.1.

Листинг 11.1. Программа Arduino для отправки данных на компьютер - pot_to_processing/arduino_read_pot

// Отправка данных потенциометра на компьютер

const int POT=0; // Аналоговый вход для подключения потенциометра

int val;

// Переменная для хранения данных потенциометра

- 238 -

void setup()

{

Serial.begin(9600); // Запуск последовательного порта

}

void loop()

{

val = map(analogRead(POT), 0, 1023, 0, 255); //

//Чтение и масштабирование данных

//Отправка данных

Serial.println(val);

delay(50); // Задержка

}

2. Отключите плату Arduino от компьютера и подсоедините к ней переходник вместе с модулем ХВее. Подключите потенциометр к аналоговому входу 0, как показано на электрической схеме, изображенной на рис. 11.16.

3. Для питания платы Arduino используйте один из методов, описанных в предыдущем разделе. Я выбрал сетевой USB-адаптер питания.

4. Подключите ХВее USB Explorer с другим запрограммированным модулем ХВее к компьютеру с помощью кабеля USB. Если модули настроены правильно, Rx светодиод на переходнике USB ХВее Explorer будет быстро мигать в момент получения данных.

5. Перед использованием приходящих данных в Processing-приложении откройте монитор последовательного порта в Arduino IDE. Выберите последовательный порт, к которому подключен ваш переходник USB ХВее Explorer, и убедитесь, что данные поступают в компьютер (рис. 11.17).

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

Листинг 11.2. Программа на Processlng для чтения последовательных данных и установки цвета экрана - pot_to_processing/processlng_d,splay_color

// Программа на Processing для чтения переменной и изменения цвета экрана

// Подключение и инициализация библиотеки serial

import processing.serial.*;

Serial port;

float brightness = 0; // Переменная для хранения значения потенциометра

void setup()

{

// Размер окна

size(500,500);

port = new Serial(this, "COM3", 9600); // Инициализация

// последовательного порта

- 239 -

port.bufferUntil(' ');// Символ конца строки

}

void draw()

{

background(0,0,brightness);// Перерисовать окно

}

void serialEvent (Serial port)

{

brightness = float(port.readStringUntil(' ')); // Получить переменную

}

Рис. 11.16. Схема соединения платой Arduino с потенциометром и переходником ХВее

- 240 -

Рис. 11.17. Данные, переданные по беспроводному каналу в монитор последовательного порта

При запуске программы она должна работать так же, как это было при подсоединении платы Arduino непосредственно к компьютеру. Теперь вы можете ходить вокруг дома и офиса (если питаете Arduino от батареи) и менять цвет на экране компьютера.

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() == ' ') //Конец передачи

{

// Установить яркость 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))+" ";

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

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

print(colors);

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

}

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

- 243 -

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

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

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

Более 800 000 книг и аудиокниг! 📚

Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением

ПОЛУЧИТЬ ПОДАРОК