Съдържание:

Графичен преход за обработка на Arduino: 5 стъпки
Графичен преход за обработка на Arduino: 5 стъпки

Видео: Графичен преход за обработка на Arduino: 5 стъпки

Видео: Графичен преход за обработка на Arduino: 5 стъпки
Видео: #57 Visual Studio - Обработка и получение данных с Arduino Serial Monitor VB.NET ►◄ 2024, Ноември
Anonim
Графичен преход за обработка на Arduino
Графичен преход за обработка на Arduino

Здравейте, този проект е за създаване на видими графики от невидими частици, които могат да бъдат засечени от сензори. В този случай използвах ултразвуковия сензор и фоторезистора за контрол на светлината и разстоянието. Визуализирам го, като направя променливите от сензора като променливи в обработката. След това свързвам Arduino и Processing, за да контролирам Arduino с Processing. По този начин графиката в Processing ще прилага променливи от сензора Arduino.

Стъпка 1: Стъпка 1: Подгответе части

Стъпка 1: Подгответе части
Стъпка 1: Подгответе части

Ето компонентите, които ще ви трябват, за да направите този проект:

- 10k OHM

- Ултразвуков сензор

- Фоторезистор

- Arduino Uno

- 7 проводника

Стъпка 2: Стъпка 2: Свържете всички компоненти

Стъпка 2: Свържете всички компоненти
Стъпка 2: Свържете всички компоненти

Фоторезисторът и ултразвуковият сензор се нуждаят от място за точно откриване. Спестете малко място и помислете за светлина за фоторезистор.

Стъпка 3: Стъпка 3: Код

Стъпка 3: Кодирайте!
Стъпка 3: Кодирайте!

*Добавете библиотека както в Arduino, така и в Processing.

Arduino: потърсете „нов пинг“в библиотеката

Обработка: потърсете „сериен“в библиотеката

Код за Arduino:

#включва

#define TRIGGER_PIN 12 #define ECHO_PIN 11 #define MAX_DISTANCE 200

NewPing сонар (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analogValue = 0;

void setup () {Serial.begin (9600); }

void loop () {int Value1 = sonar.ping_cm (); Стойност1 = карта (Стойност1, 1, 60, 500, 24); Стойност1 = ограничение (Стойност1, 24, 500);

analogValue = analogRead (lightSensorPin); int cVal1 = карта (analogValue, 200, 600, 249, 100);

int cVal2 = карта (analogValue, 200, 600, 247, 97);

int cVal3 = карта (analogValue, 200, 600, 243, 101);

int cVal4 = карта (analogValue, 200, 600, 243, 150);

забавяне (50);

Serial.print (Стойност1); Serial.print (",");

Serial.print (cVal1); Serial.print (","); Serial.print (cVal2); Serial.print (","); Serial.print (cVal3); Serial.print (","); Serial.print (cVal4); Serial.print (",");

Serial.println (); }

Код за обработка:

// клас: (основен) //

обработка на внос.serial.*;

int end = 10; Низов сериал; Сериен порт;

int pcount = 350; Частица p = нова частица [pcount]; int диагонал; int e = 100;

void setup () {port = new Serial (this, "/dev/cu.usbmodem141101"); port.clear (); serial = port.readStringUntil (край); сериен = нулев; за (int i = 0; i

въртене на поплавък = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (end); забавяне (10); } if (serial! = null) {String a = split (serial, ','); println (a [0]); println (a [1]); println (a [2]); println (a [3]); println (a [4]); int result1 = Integer.parseInt (a [0]); System.out.println (резултат1); frameRate (резултат1); int result2 = Integer.parseInt (a [1]); System.out.println (резултат2); int result3 = Integer.parseInt (a [2]); System.out.println (резултат3); int result4 = Integer.parseInt (a [3]); System.out.println (резултат4); int result5 = Integer.parseInt (a [4]); System.out.println (резултат5); фон (резултат2, резултат3, резултат4); превод (ширина/2, височина); въртене- = 0,0005; завъртане (въртене); for (int i = 0; i диагонал) {p = нова частица (); }}}}

// клас: Частици //

клас частици {float n; поплавък r; поплавък o; поплавък c; поплавък d; int l; Частици () {l = 100; n = случаен (3, ширина/2); r = случаен (0.10, TWO_PI); o = случаен (1, случаен (1, ширина/n)); c = случаен (180, 228); d = случаен (160, 208); } void draw () {l ++; pushMatrix (); завъртане (r); превод (drawDist (), 1); елипса (10, 10, ширина/o/4, ширина/o/4); popMatrix (); o- = 0,06; } float drawDist () {return atan (n/o)*width/HALF_PI; }}

Стъпка 4: Стъпка 4: Свържете и тествайте

Стъпка 4: Свържете се и тествайте
Стъпка 4: Свържете се и тествайте

Стъпка 5: Стъпка 5: Вижте резултата

Стъпка 5: Вижте резултата!
Стъпка 5: Вижте резултата!

Скоростта на движещата се топка ще бъде по -голяма, когато нещо е по -близо до ултразвуковия сензор. Освен това контролът на светлината с фоторезистор ще се появи при обработка като фонова тъмнина.

Препоръчано: