Spisu treści:

Przejście graficzne przetwarzania Arduino: 5 kroków
Przejście graficzne przetwarzania Arduino: 5 kroków

Wideo: Przejście graficzne przetwarzania Arduino: 5 kroków

Wideo: Przejście graficzne przetwarzania Arduino: 5 kroków
Wideo: ILU POLICJANTÓW POTRZEBA ABY OBEZWŁADNIĆ OJCA BEZ SPRZĘTU 2024, Listopad
Anonim
Przejście graficzne przetwarzania Arduino
Przejście graficzne przetwarzania Arduino

Cześć, ten projekt jest przeznaczony do tworzenia widocznej grafiki z niewidzialnych cząstek, które mogłyby być wykryte przez czujniki. W tym przypadku wykorzystałem czujnik ultradźwiękowy i fotorezystor do kontroli światła i odległości. Wizualizuję to, czyniąc zmienne z czujnika jako zmienne w przetwarzaniu. Następnie podłączam Arduino i Processing, aby sterować Arduino z Processing. W ten sposób grafika w Przetwarzaniu zastosowałaby zmienne z czujnika Arduino.

Krok 1: Krok 1: Przygotuj części

Krok 1: Przygotuj części
Krok 1: Przygotuj części

Oto komponenty, które będą potrzebne do wykonania tego projektu:

- 10 tys. omów

- Czujnik ultradźwiękowy

- Fotorezystor

- Arduino Uno

- 7 przewodów

Krok 2: Krok 2: Podłącz wszystkie komponenty

Krok 2: Połącz wszystkie komponenty
Krok 2: Połącz wszystkie komponenty

Fotorezystor i czujnik ultradźwiękowy potrzebują miejsca do dokładnego wykrywania. Zaoszczędź trochę miejsca i pomyśl o świetle do fotorezystora.

Krok 3: Krok 3: Kod

Krok 3: Kod!
Krok 3: Kod!

* Dodaj bibliotekę zarówno w Arduino, jak i Processing.

Arduino: wyszukaj „nowy ping” w bibliotece

Przetwarzanie: wyszukaj „serial” w bibliotece

Kod dla Arduino:

#włączać

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

sonar NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analogValue = 0;

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

void loop() { int Wartość1 = sonar.ping_cm(); Wartość1 = mapa(Wartość1, 1, 60, 500, 24); Wartość1 = ograniczenie(Wartość1, 24, 500);

analogValue = analogRead(lightSensorPin); int cVal1 = mapa (wartość analogowa, 200, 600, 249, 100);

int cVal2 = mapa (wartość analogowa, 200, 600, 247, 97);

int cVal3 = mapa (wartość analogowa, 200, 600, 243, 101);

int cVal4 = mapa (wartość analogowa, 200, 600, 243, 150);

opóźnienie(50);

Serial.print(Wartość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(); }

Kod do przetwarzania:

//klasa: (podstawowa)//

importowanie przetwarzania.serial.*;

int koniec = 10; szeregowy ciąg; Port szeregowy;

liczba int = 350; Cząstka p = nowa Cząstka[liczba]; int przekątna; int e = 100;

void setup() { port = new Serial(this, "/dev/cu.usbmodem141101"); port.wyczyść(); serial = port.odczytStringUntil(koniec); serial= null; dla (int i = 0; i

obrót pływaka = 0;

void draw() { while (port.available() > 0) { serial = port.readStringUntil(end); opóźnienie(10); } if (serial != null) { String a = split(serial, ', '); println(a[0]); println(a[1]); println(a[2]); println(a[3]); println(a[4]); int wynik1 = Integer.parseInt(a[0]); System.out.println(wynik1); FrameRate(wynik1); int wynik2 = Integer.parseInt(a[1]); System.out.println(wynik2); int wynik3 = Integer.parseInt(a[2]); System.out.println(wynik3); int wynik4 = Integer.parseInt(a[3]); System.out.println(wynik4); int wynik5 = Integer.parseInt(a[4]); System.out.println(wynik5); tło(wynik2, wynik3, wynik4); przetłumacz(szerokość/2, wysokość); rotacja-=0,0005; obracać(obrót); for (int i = 0; i przekątna) { p = nowa Cząstka(); } } } }

//klasa: Cząstka//

klasa Cząstka { float n; pływak r; pływać o; pływak c; pływak d; wew l; Cząstka() { l = 100; n = losowo (3, szerokość/2); r = losowy (0,10, DWA_PI); o = losowo (1, losowo (1, szerokość/n)); c = losowo (180, 228); d = losowo (160, 208); } void rysuj() { l++; pushMatrix(); obracać(r); przetłumacz(rysujDist(), 1); elipsa(10, 10, szerokość/o/4, szerokość/o/4); popMatrix(); o=0,06; } float drawDist() { return atan(n/o)*szerokość/HALF_PI; } }

Krok 4: Krok 4: Połącz i przetestuj

Krok 4: Połącz i testuj
Krok 4: Połącz i testuj

Krok 5: Krok 5: Zobacz wynik

Krok 5: Zobacz wynik!
Krok 5: Zobacz wynik!

Prędkość poruszającej się piłki będzie większa, gdy cokolwiek znajdzie się bliżej czujnika ultradźwiękowego. Dodatkowo kontrola światła za pomocą fotorezystora pojawi się podczas przetwarzania jako ciemność tła.

Zalecana: