четверг, 14 января 2016 г.

Arduino + Processing. Пример простого взаимодействия через Serial порт. Передача данных с ардуино на компьютер(процессинг)

Покажу простой пример связи ардуино и пк. Для этого будем использовать Processing(2.0.1 32 битная версия, Serial не может в 64), Arduino IDE, сама платка и потенциометр.

Подключение.. ну прям предельно простое
[​IMG]


Увеличить
Код для Arduino IDE:


Код:
int potPin = 0; // указываем порт, куда подцепили потенциометр

void setup()
{
Serial.begin(9600);  // запускаем наш сериал
  
  
}
void loop()
    {
     int val = map(analogRead(potPin), 0, 1023, 0, 255);  //*2
     Serial.println(val); //*3
     delay(50);
    }
 
*2 гуглим "arduino map". С пина получаем 0-1023, на выходе необходимо 0-255, 
сразу обрабатываем с помощью мк(можно и в процессинге было) и записываем в переменную val 
*3 выводим в порт значение переменной val. Обрати внимание! Serial.println а не print. т.к.
 в таком случае выводится необходимый нам '\n'
Загружаем этот код на наш контроллер, и переходим к процессингу.

Код для Processing:


Код:
import processing.serial.*;
Serial port;
float input = 0;

void setup()
{
size(400, 400);
port = new Serial(this, "COM3", 9600); //активируем наш порт
port.bufferUntil('\n');//считываем значение строки до символа '\n' 

void draw() // основной цикл отрисовки
{
background(0,input,0);//догадались что будет делать input?
float rect = map(input, 0, 255, 0, 370);
rect(15,200,rect,30);
 
}

void serialEvent (Serial port)
{
 
input = float(port.readStringUntil('\n')); //считываем с порта значение и -
//-записываем в переменную input
 
 
}
1. Загружаем код на ардуино
2. Подключаем к пк
3. Запускаем код в processing
4. Крутим потенциометр
5. Крутим потенциометр
6. Офигеваем

Комментариев нет:

Отправить комментарий