Мазмуну:

Arduino Processing Graphic Transition: 5 Steps
Arduino Processing Graphic Transition: 5 Steps

Video: Arduino Processing Graphic Transition: 5 Steps

Video: Arduino Processing Graphic Transition: 5 Steps
Video: Arduino - Processing: serial data 2024, Июль
Anonim
Arduino Processing Graphic Transition
Arduino Processing Graphic Transition

Саламатсызбы, бул долбоор сенсорлор сезе турган көрүнбөгөн бөлүкчөлөрдөн көрүнөө графиканы түзүү үчүн. Бул учурда мен жарык менен аралыкты көзөмөлдөө үчүн УЗИ сенсорун жана фоторезисторду колдондум. Мен муну сенсордон өзгөрмөлөрдү иштетүүдө өзгөрмөлөр кылуу менен элестетем. Андан кийин мен Arduino менен Processing'ди туташтырып, Arduino'yu Processing менен башкарам. Ошентип, иштетүү графиги Arduino сенсорунун өзгөрмөлөрүн колдонот.

1 -кадам: 1 -кадам: Бөлүктөрдү даярдоо

1 -кадам: Бөлүктөрдү даярдоо
1 -кадам: Бөлүктөрдү даярдоо

Бул жерде бул долбоорду жасоо үчүн керек болгон компоненттер:

- 10k OHM

- УЗИ сенсор

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

- Ардуино Уно

- 7 зым

2 -кадам: 2 -кадам: Бардык компоненттерди туташтыруу

2 -кадам: Бардык компоненттерди туташтыруу
2 -кадам: Бардык компоненттерди туташтыруу

Фоторезистор менен УЗИ сенсоруна так аныктоо үчүн орун керек. Бир аз орун сактап, фоторезистор үчүн жарык жөнүндө ойлонуп көрүңүз.

3 -кадам: 3 -кадам: Код

3 -кадам: код!
3 -кадам: код!

*Китепкананы Arduino жана Processingке кошуңуз.

Arduino: китепканадан "жаңы пингди" издеңиз

Иштетүү: китепканадан "сериялык" издөө

Arduino коду:

#кошуу

#TRIGGER_PIN 12 аныктоо #ECHO_PIN 11 аныктоо #MAX_DISTANCE 200 аныктоо

NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int lightSensorPin = A0; int analogValue = 0;

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

void loop () {int Value1 = sonar.ping_cm (); Value1 = карта (Value1, 1, 60, 500, 24); Value1 = чектөө (Value1, 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 (Value1); Serial.print (",");

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

Serial.println (); }

Иштетүү коду:

// класс: (негизги) //

импортту иштетүү.сериал.*;

int end = 10; Сап сериясы; Сериялык порт;

int pcount = 350; Бөлүкчө p = жаңы бөлүкчө [pcount]; int diagonal; int e = 100;

void setup () {port = new Serial (this, "/dev/cu.usbmodem141101"); port.clear (); serial = port.readStringUntil (аягы); serial = null; үчүн (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 (result1); frameRate (result1); int result2 = Integer.parseInt (a [1]); System.out.println (result2); int result3 = Integer.parseInt (a [2]); System.out.println (result3); int result4 = Integer.parseInt (a [3]); System.out.println (result4); int result5 = Integer.parseInt (a [4]); System.out.println (result5); фон (result2, result3, result4); которуу (туурасы/2, бийиктиги); ротация- = 0.0005; айлануу (айлануу); for (int i = 0; i диагоналдуу) {p = new Particle (); }}}}

// класс: бөлүкчө //

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

4 -кадам: 4 -кадам: Туташуу жана тестирлөө

4 -кадам: Туташуу жана тестирлөө
4 -кадам: Туташуу жана тестирлөө

5 -кадам: 5 -кадам: Жыйынтыгын караңыз

5 -кадам: Жыйынтыгын караңыз!
5 -кадам: Жыйынтыгын караңыз!

УЗИ сенсоруна жакыныраак болгондо, кыймылдаган топтун ылдамдыгы тезирээк болот. Мындан тышкары, фоторезистор менен жарык көзөмөлү караңгылык катары иштетилүүдө пайда болот.

Сунушталууда: