Mündəricat:

Qenerasiya və Arduino -ya qoşulun və 7 Segment və Servo GUI Nəzarətçisi olun: 4 addım
Qenerasiya və Arduino -ya qoşulun və 7 Segment və Servo GUI Nəzarətçisi olun: 4 addım

Video: Qenerasiya və Arduino -ya qoşulun və 7 Segment və Servo GUI Nəzarətçisi olun: 4 addım

Video: Qenerasiya və Arduino -ya qoşulun və 7 Segment və Servo GUI Nəzarətçisi olun: 4 addım
Video: Arduino Nano and GY-521 MPU6050 3-осевой гироскоп, 3-осевой акселерометр и DMP 2024, Noyabr
Anonim
Qenerasiya və Arduino -ya qoşulun və 7 Segment və Servo GUI Nəzarətçisi olun
Qenerasiya və Arduino -ya qoşulun və 7 Segment və Servo GUI Nəzarətçisi olun

Bəzi layihələr üçün asan bir prototip platforması təmin etdiyi üçün Arduinodan istifadə etməlisiniz, ancaq qrafikləri Arduinonun ardıcıl monitorunda göstərmək olduqca uzun çəkə bilər və bunu etmək hətta çətindir. Qrafikləri Arduino Serial Monitor -da göstərə bilərsiniz, ancaq qrafikləri göstərmək lazım ola biləcək tək şey deyil. Sürgülər, düymələr, 2D, 3D, PDF və ya SVG çıxışı olan proqramlar kimi bütün interaktiv obyektlər və asanlıqla animasiyalar da yarada bilərsiniz. Emal üçün standart proqramlaşdırma rejimi Java -dır, ancaq onu Android, p5.js, REPL, CoffeeScript və JavaScript -ə dəyişə bilərsiniz. Bu Təlimat kitabında Java proqramlaşdırma rejimindən istifadə edəcəyik.

Bütün məzmun və kod mənim githubumda da mövcuddur.

Addım 1: Processing.serial istifadə edin

Kod emal olunur

Kodun ilk iki sətri olacaq

idxal emalı.serial.*; Serial myPort;

Burada birinci sətirdə kitabxananı idxal edirik - emal edirik və ikinci sətirdə Serial sinifinin myPort adlı bir obyektini yaradırıq, bir identifikatorun adlandırılması qaydalarına uyğun olaraq istədiyiniz hər şeyi adlandıra bilərsiniz.

İşlənərkən void setup () və void draw () funksiyalarının geri dönmə növüdür, onu int setup () və int draw () və ya bəyəndiyiniz digər məlumat növünə də dəyişə bilərsiniz, ancaq funksiyalardan əvvəl istifadə etdiyiniz məlumat növü ilə eyni məlumat tipinə malik olan dəyər.

setup () 'da bir dəfə icra etməli olduğumuz ifadələri yazırıq, draw () də isə bir neçə dəfə icra etməli olduğumuz ifadələri yazırıq. Yuxarıda göstərilən iki kod sətri, void setup () üstündə yazılmalıdır, çünki onların qlobal girişə ehtiyacı var.

Void setup () obyektində myPort obyektini işə salacağıq.

boş quraşdırma () {

ölçü (800, 800);

myPort = yeni Serial (bu, "COM18", 9600);

}

Xəttin ölçüsü (800, 800); Ekranın ölçüsünü 800 piksel ilə 800 piksel arasında təyin edir.

İkinci sətirdəki yeni açar söz, yaddaşdakı obyekt üçün yer ayırmaq üçün istifadə olunur, bu arqument cari obyektə aid olan bir istinad dəyişənidir. COM18 arqumenti, Arduino ilə əlaqəli bir portdur, buna ehtiyacımız var, çünki məlumatları serial interfeysi ilə nəql edəcəyik. Sizin vəziyyətinizdə 18 rəqəmi fərqli ola bilər, Arduino IDE -də Alətlər> Liman altında tapa bilərsiniz və 9600, bunu həm Arduino, həm də Qenerasiya sistemində dəyişə biləcəyiniz baud sürətidir.

Addım 2: Serial Sinifini anlayın

Serial üçün konstruktor

Serial (ana, portName, baudRate, parite, dataBits, stopBits)

Arqumentlər:

valideyn: ümumiyyətlə "bu" istifadə edin

baudRate (int): 9600 standartdır

portName (String): limanın adı (COM1 standartdır)

parite (char): heç kim üçün 'N', cüt üçün 'E', tək üçün 'O', işarə üçün 'M', boşluq üçün 'S' (varsayılan olaraq 'N')

dataBits (int): 8 standartdır

stopBits (float): 1.0, 1.5 və ya 2.0 (1.0 standartdır)

Əhəmiyyətli üsullar:

  1. myPort.available () - mövcud bayt sayını qaytarır.
  2. myPort.clear () - tamponu boşaldır və orada saxlanan bütün məlumatları silir.
  3. myPort.read () - Buferdə gözləyən növbəti bayt üçün 0 ilə 255 arasında bir ədəd qaytarır.
  4. myPort.readString () - Mövcud heç bir şey yoxdursa, buferdəki bütün məlumatları String və ya sıfır olaraq qaytarır.
  5. myPort.write ("test") - Seriya portuna bayt, simvol, ints, bayt , Strings yazır.
  6. myPort.stop () - Limanda məlumat ötürülməsini dayandırır.

Addım 3: Arduino Serial Sınıfı

İstifadə etməzdən əvvəl Arduino Serial Sinifini idxal etməyinizə ehtiyac yoxdur.

Arduino'da setup () və loop () adlanan 2 funksiya var, quraşdırma yalnız bir dəfə işləyir, lakin döngə bir neçə dəfə işləyir. Setup () da serial ünsiyyətə başlamaq üçün begin () metodundan istifadə etməliyik. Arduinoda, emaldan fərqli olaraq, Arduinoda eskiz yükləyərkən portu artıq göstərdiyimiz üçün start () metodunun arqumentləri olaraq portu qeyd etməyə ehtiyac yoxdur.

Beləliklə, setup () belə görünəcək:

boş quraşdırma () {

Serial.begin (9600); // serial ünsiyyətinə başlayın

}

Burada 9600, işləmə sənədində də qeyd etdiyimiz baud dərəcəsini təyin edir. Düzgün ünsiyyət qurmaq üçün həm ötürmə dərəcələri bərabər olmalıdır, ya da serial çıxışı mənasız bir şey kimi görə bilərsiniz.

İndi loop () hissəsinə baxaq. Kodun bu hissəsi bir neçə dəfə işləyir. Limandan bəzi məlumatları oxumaq istəsək, Serial.read () metodundan istifadə edəcəyik. Məlumat olmadıqda bu funksiya sıfır qaytarır, buna görə də Serial axınında mövcud olan bəzi məlumatlar olduqda bu üsula zəng edəcəyik.

Bəzi məlumatların olub olmadığını yoxlamaq üçün Serial.available () metodundan istifadə edəcəyik. 0 -dan böyük bir dəyər qaytararsa - bəzi məlumatlar mövcuddur.

Beləliklə, loop () hissəsi belə görünəcək:

boşluq döngəsi () {

if (Serial.available ()> 0) {// seriya portunda bəzi məlumatlar varsa

char vəziyyəti = Serial.read (); // dəyəri oxuyun

// ifadələr və ya hərfləri dəyişdirin

}

}

İndi nərdivandan istifadə edə bilərik və ya bir çox mümkün nəticələr varsa, dəyişkən vəziyyət üçün də keçid qutusundan istifadə edə bilərik.

Addım 4: GUI 7 Segment Controller qurun

GUI 7 Segment Nəzarətçisi yaradın
GUI 7 Segment Nəzarətçisi yaradın
GUI 7 Segment Nəzarətçisi yaradın
GUI 7 Segment Nəzarətçisi yaradın
GUI 7 Segment Nəzarətçisi yaradın
GUI 7 Segment Nəzarətçisi yaradın

Fayllar bura əlavə olunur. Qeyd: Emal etmək üçün GUI interaktiv düymələri yaratmaq üçün istifadə etdiyim nəzarət p5 kitabxanasını da qurmalısınız.

Pin nömrələri

7 seqment (əlifba sırası ilə) görüntüyə istinad edir

a - rəqəmsal pin 2

b - rəqəmsal pin 3

c - rəqəmsal pin 4

d - rəqəmsal pin 5

e - rəqəmsal pin 6

f - rəqəmsal pin 7

g - rəqəmsal pin 8

dp - rəqəmsal pin 9

Bütün məzmun və kod mənim githubumda da mövcuddur

Tövsiyə: