Оглавление:

Графический переход обработки Arduino: 5 шагов
Графический переход обработки Arduino: 5 шагов

Видео: Графический переход обработки Arduino: 5 шагов

Видео: Графический переход обработки Arduino: 5 шагов
Видео: Arduino - строим график в реальном времени 2024, Июль
Anonim
Графический переход обработки Arduino
Графический переход обработки Arduino

Привет, этот проект предназначен для создания видимой графики из невидимых частиц, которые могут быть обнаружены датчиками. В этом случае я использовал ультразвуковой датчик и фоторезистор для управления освещением и расстоянием. Я визуализирую это, превращая переменные датчика в переменные при обработке. Затем я подключаю Arduino и Processing для управления Arduino с помощью Processing. Таким образом, на графике в разделе «Обработка» будут применяться переменные датчика Arduino.

Шаг 1: Шаг 1: Подготовка деталей

Шаг 1. Подготовьте детали
Шаг 1. Подготовьте детали

Вот компоненты, которые вам понадобятся для создания этого проекта:

- 10 кОм

- Ультразвуковой датчик

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

- Ардуино Уно

- 7 проводов

Шаг 2: Шаг 2: Подключите все компоненты

Шаг 2: Подключите все компоненты
Шаг 2: Подключите все компоненты

Фоторезистору и ультразвуковому датчику требуется место для точного обнаружения. Сэкономьте немного места и подумайте о свете для фоторезистора.

Шаг 3: Шаг 3: Код

Шаг 3: Код!
Шаг 3: Код!

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

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 = sonar.ping_cm (); Значение1 = карта (Значение1, 1, 60, 500, 24); Значение1 = ограничение (Значение1, 24, 500);

analogValue = analogRead (lightSensorPin); int cVal1 = map (analogValue, 200, 600, 249, 100);

int cVal2 = map (analogValue, 200, 600, 247, 97);

int cVal3 = map (analogValue, 200, 600, 243, 101);

int cVal4 = map (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 (); }

Код для обработки:

// класс: (базовый) //

import processing.serial. *;

int end = 10; Строковый серийный номер; Последовательный порт;

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

void setup () {port = new Serial (this, "/dev/cu.usbmodem141101"); port.clear (); последовательный = порт.readStringUntil (конец); серийный = ноль; для (int i = 0; i

вращение поплавка = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (конец); задержка (10); } if (серийный! = 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; вращать (вращать); для (int i = 0; i диагональ) {p = new Particle (); }}}}

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

class Particle {float n; float r; float o; float c; float d; int l; Частица () {l = 100; n = случайный (3, ширина / 2); r = случайный (0,10, TWO_PI); o = random (1, random (1, width / 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) * ширина / HALF_PI; }}

Шаг 4: Шаг 4: Подключите и проверьте

Шаг 4. Подключите и проверьте
Шаг 4. Подключите и проверьте

Шаг 5: Шаг 5: Посмотрите результат

Шаг 5: Посмотрите результат!
Шаг 5: Посмотрите результат!

Скорость движущегося мяча будет выше, когда что-нибудь окажется ближе к ультразвуковому датчику. Кроме того, управление освещением с фоторезистором будет отображаться при обработке как фоновая темнота.

Рекомендуемые: