Mundarija:

Arduino grafik ishlov berish: 5 qadam
Arduino grafik ishlov berish: 5 qadam

Video: Arduino grafik ishlov berish: 5 qadam

Video: Arduino grafik ishlov berish: 5 qadam
Video: Xotirani kuchaytiruvchi 10 ta SIR. Hamma uchun birdek to'gri keladi! 10 daqiqada 2024, Noyabr
Anonim
Arduino grafik ishlov berishni qayta ishlash
Arduino grafik ishlov berishni qayta ishlash

Salom, bu loyiha sensorlar sezishi mumkin bo'lgan ko'rinmas zarrachalardan ko'rinadigan grafikalar yaratish uchun mo'ljallangan. Bunday holda, men yorug'lik va masofani boshqarish uchun ultratovush sensori va fotorezistordan foydalandim. Men buni sensordan o'zgaruvchilarni ishlov berishda o'zgaruvchilar qilib ko'rsatish orqali tasavvur qilaman. Keyin men Arduino va Processing -ni Arduino -ni ishlov berish bilan boshqarish uchun ulayman. Shunday qilib, ishlov berish grafigi Arduino sensori o'zgaruvchilarini qo'llaydi.

1 -qadam: 1 -qadam: qismlarni tayyorlang

1 -qadam: qismlarni tayyorlang
1 -qadam: qismlarni tayyorlang

Loyihani amalga oshirish uchun sizga kerak bo'lgan komponentlar:

- 10 min OHM

- Ultrasonik sensor

- Fotoresistor

- Arduino Uno

- 7 ta sim

2 -qadam: 2 -qadam: Barcha komponentlarni ulang

2 -qadam: Barcha komponentlarni ulang
2 -qadam: Barcha komponentlarni ulang

Fotorezistor va ultratovush sensori aniq aniqlash uchun bo'sh joyga muhtoj. Bir oz joy tejang va fotorezistor uchun yorug'lik haqida o'ylang.

3 -qadam: 3 -qadam: Kod

3 -qadam: kod!
3 -qadam: kod!

*Arduino va Processing -ga kutubxona qo'shing.

Arduino: kutubxonada "yangi ping" ni qidiring

Ishlov berish: kutubxonada "ketma -ket" ni qidiring

Arduino uchun kod:

#qo'shing

#TIGER_PIN 12 ni belgilang #ECHO_PIN 11ni belgilang #MAX_DISTANCE 200 ni aniqlang.

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 (); Qiymat1 = xarita (Qiymat1, 1, 60, 500, 24); Qiymat1 = cheklash (Qiymat1, 24, 500);

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

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

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

int cVal4 = xarita (analogValue, 200, 600, 243, 150);

kechikish (50);

Serial.print (Value1); Serial.print (",");

Serial.print (cVal1); Serial.print (","); Serial.print (cVal2); Serial.print (","); Serial.print (cVal3); Serial.print (","); Ketma -ket chop etish (cVal4); Serial.print (",");

Serial.println (); }

Qayta ishlash kodi:

// sinf: (asosiy) //

importni qayta ishlash.serial.*;

int end = 10; String seriali; Seriya porti;

int pcount = 350; Zarracha p = yangi zarracha [pcount]; int diagonal; int e = 100;

void setup () {port = new Serial (this, "/dev/cu.usbmodem141101"); port.clear (); serial = port.readStringUntil (oxiri); ketma -ket = nol; uchun (int i = 0; i

suzuvchi aylanish = 0;

void draw () {while (port.available ()> 0) {serial = port.readStringUntil (end); kechikish (10); } if (serial! = null) {String a = split (serial, ','); println (a [0]); println (a [1]); println (a [2]); println (a [3]); println (a [4]); int natija1 = Integer.parseInt (a [0]); System.out.println (natija1); frameRate (natija1); int natija2 = Integer.parseInt (a [1]); System.out.println (natija2); int result3 = Integer.parseInt (a [2]); System.out.println (natija3); int result4 = Integer.parseInt (a [3]); System.out.println (natija4); int natijasi5 = Integer.parseInt (a [4]); System.out.println (natija 5); fon (natija2, natija3, natija4); tarjima qilish (kenglik/2, balandlik); aylanish- = 0.0005; aylantirish (aylantirish); uchun (int i = 0; i diagonal) {p = yangi zarracha (); }}}}

// sinf: zarracha //

sinf zarracha {float n; float r; suzish o; suzuvchi c; suzuvchi d; int l; Zarracha () {l = 100; n = tasodifiy (3, kenglik/2); r = tasodifiy (0.10, TWO_PI); o = tasodifiy (1, tasodifiy (1, kenglik/n)); c = tasodifiy (180, 228); d = tasodifiy (160, 208); } void draw () {l ++; pushMatrix (); aylantirish (r); tarjima qilish (drawDist (), 1); ellips (10, 10, kenglik/o/4, kenglik/o/4); popMatrix (); o- = 0,06; } float drawDist () {return atan (n/o)*width/HALF_PI; }}

4 -qadam: 4 -qadam: Ulanish va sinov

4 -qadam: Ulanish va sinov
4 -qadam: Ulanish va sinov

5 -qadam: 5 -qadam: Natijani ko'ring

5 -qadam: Natijani ko'ring!
5 -qadam: Natijani ko'ring!

Har qanday narsa ultrasonik sensorga yaqinroq bo'lsa, harakatlanuvchi to'pning tezligi tezroq bo'ladi. Bundan tashqari, fotorezistorli yorug'likni boshqarish fonda qorong'i bo'lib ko'rinadi.

Tavsiya: