Интерфейс программирования на Processing достаточно прост и он похож на тот, с которым вы уже знакомы при программировании Arduino. В этом разделе вы установите Processing, а затем напишете простой графический интерфейс для отображения данных, передаваемых с платы Arduino через последовательный порт.
После этого вы реализуете связь в обратном направлении, чтобы управлять платой Arduino из приложения, установленного на вашем компьютере.
Сначала необходимо установить Processing на вашей машине. Делается это так же, как и в главе 1, когда устанавливали Arduino IDE. Зайдите на страницу
http://processing.org/download/ (или найдите ссылку на скачивание на www.exploringarduino.com) и скачайте заархивированный пакет в соответствии с вашей операционной системой. Затем распакуйте его и программа будет готова к работе!
Запустите Processing, и вы должны увидеть окно программы, которое выглядит как на рис. 6.12.
Для первого эксперимента с приложением на Processing подключим к плате Arduino потенциометр, чтобы управлять цветом окна на вашем компьютере. Соберите схему, изображенную на рис. 6.6. Плата Arduino должна послать аналоговые значения от потенциометра к компьютеру. Тот факт, что вы сейчас отправляете последовательные данные в приложение на Processing, не имеет никакого влияния, как вы передаете их.
- 137 -
Рис. 6.12. Графический интерфейс Processing. Узнаете?
Скопируйте код из листинга 6.6 и загрузите его на плату Arduino. Arduino посылает обновленное значение от потенциометра в последовательный порт компьютера каждые 50 мс. Если отправлять данные быстрее, приложение на Processing не будет успевать их обрабатывать и буфер последовательного порта на вашем компьютере переполнится.
Листинг 6.6. Программа для отправки даных в компьютер - pot_to_processing/arduino_read_pot
// Отправка данных от потенциометра на компьютер
const int POT=0;// Подключение потенциометра к выводу A0
int val;// Переменная для хранения значения потенциометра
void setup()
{
Serial.begin(9600); // Инициализация последовательного порта
// на скорости 9600
}
void loop()
{
- 138 -
val = map(analogRead(POT), 0, 1023, 0, 255);//Чтение значения потенциометра
Serial.println(val);//Отправка значения
delay(50);//Задержка 50 мс
}
Теперь напишем код для обработки входящих данных.
Программа из листинга 6.7 считывает данные из буфера последовательного порта и регулирует яркость цвета на экране вашего компьютера в зависимости от полученного значения. Скопируйте листинг 6.7 и внесите одно важное изменение. В программе на Processing должен быть указан конкретный последовательный порт получения данных. Замените "COM3" на номер вашего последовательного порта. Помните, что в Linux и Mac он будет выглядеть примерно как /dev/ttyUSBO. Если вы не уверены, скопируйте точное название порта из Arduino IDE.
Листинг 6.7. Код Processing для получения данных и изменения цвета экрана - pot_to_processing/processing_display_color
// Программа на Processing для чтения переменной и изменения цвета экрана