İçindekiler:

Processing ve Arduino'yu Bağlama ve 7 Segment ve Servo GUI Denetleyici Yapın: 4 Adım
Processing ve Arduino'yu Bağlama ve 7 Segment ve Servo GUI Denetleyici Yapın: 4 Adım

Video: Processing ve Arduino'yu Bağlama ve 7 Segment ve Servo GUI Denetleyici Yapın: 4 Adım

Video: Processing ve Arduino'yu Bağlama ve 7 Segment ve Servo GUI Denetleyici Yapın: 4 Adım
Video: Amazing arduino project 2024, Kasım
Anonim
Processing ve Arduino'yu Bağlama ve 7 Segment ve Servo GUI Denetleyici Yapın
Processing ve Arduino'yu Bağlama ve 7 Segment ve Servo GUI Denetleyici Yapın

Yaptığınız bazı projeler için Arduino'yu kullanmanız gerekiyor, çünkü kolay bir prototipleme platformu sağlıyor, ancak grafikleri Arduino'nun seri monitöründe görüntülemek oldukça uzun sürebilir ve hatta yapılması zordur. Arduino Seri Monitörde grafikleri görüntüleyebilirsiniz, ancak görüntülemeniz gereken tek şey grafikler değildir. 2B, 3B, PDF veya SVG çıktılı kaydırıcılar, düğmeler, programlar gibi tüm etkileşimli nesneler ve ayrıca kolayca animasyonlar oluşturabilirsiniz. İşleme için varsayılan programlama modu Java'dır, ancak bunu Android, p5.js, REPL, CoffeeScript ve JavaScript arasında değiştirebilirsiniz. Ancak bu Eğitilebilir Tabloda Java programlama modunu kullanacağız.

Tüm içerik ve kod, buradaki github'ımda da mevcuttur.

Adım 1: Processing.serial'ı kullanma

İşleme Kodu

İlk iki kod satırı olacak

işleme.serisini içe aktar.*; Seri myPort;

Burada ilk satırda kitaplığı içe aktarıyoruz - işleme ve ikinci satırda MyPort adlı Seri sınıfının bir nesnesini oluşturuyoruz, bir tanımlayıcı adlandırma kurallarını izleyerek onu istediğiniz gibi adlandırabilirsiniz.

İşleme sırasında void setup() ve void draw() var, burada void fonksiyonun dönüş tipidir, bunu int setup() ve int draw() veya beğendiğiniz diğer veri tipleri olarak da değiştirebilirsiniz, ancak bir işlevlerden önce kullandığınız veri türüyle aynı veri türüne sahip değer.

setup()'ta yürütmemiz gereken ifadeleri bir kez yazarken, draw()'da birden çok kez yürütmemiz gereken ifadeleri yazarız. Yukarıda bahsedilen iki kod satırı, global erişime sahip olmaları gerektiğinden void setup() üzerine yazılmalıdır.

void setup() içinde myPort nesnesini başlatacağız.

geçersiz kurulum(){

boyut(800, 800);

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

}

Çizgi boyutu(800, 800); 800 piksele 800 piksel ekran boyutunu tanımlar.

İkinci satırdaki anahtar sözcük, bellekteki nesneye yer ayırmak için kullanılır, this argümanı, geçerli nesneye atıfta bulunan bir referans değişkenidir. COM18 argümanı bağlı Arduino portudur, verileri seri arayüz üzerinden taşıyacağımız için buna ihtiyacımız var. Sizin durumunuzda 18 sayısı farklı olabilir, bunu Arduino IDE'deki Araçlar>Port altında bulabilirsiniz ve 9600, bunu hem Arduino'da hem de İşleme'de değiştirebileceğiniz baud hızıdır.

Adım 2: Seri Sınıfını Anlayın

Seri için yapıcı

Seri (ebeveyn, portName, baudRate, parity, dataBits, stopBits)

Argümanlar:

ebeveyn: genellikle "bunu" kullanın

baudRate (int): 9600 varsayılandır

portName (Dize): bağlantı noktasının adı (varsayılan COM1'dir)

parite (char): hiçbiri için 'N', çift için 'E', tek için 'O', işaret için 'M', boşluk için 'S' (varsayılan 'N'dir)

dataBits (int): 8 varsayılandır

stopBits (float): 1.0, 1.5 veya 2.0 (1.0 varsayılandır)

Önemli Yöntemler:

  1. myPort.available() - mevcut bayt sayısını döndürür.
  2. myPort.clear() - arabelleği boşaltır ve orada depolanan tüm verileri kaldırır.
  3. myPort.read() - Arabellekte bekleyen sonraki bayt için 0 ile 255 arasında bir sayı döndürür.
  4. myPort.readString() - Arabellekteki tüm verileri bir Dize veya kullanılabilir bir şey yoksa boş olarak döndürür.
  5. myPort.write("test") - Seri bağlantı noktasına bayt, karakter, int, bayt, Dize yazar.
  6. myPort.stop() - Bağlantı noktasındaki veri iletişimini işaretler.

Adım 3: Arduino Seri Sınıfı

Kullanmadan önce Seri Sınıfını Arduino'ya aktarmanız gerekmez.

Arduino'da setup() ve loop() adında 2 fonksiyon vardır, setup sadece bir kez çalışır ancak döngü birden çok kez çalışır. setup()'ta seri iletişimi başlatmak için start() yöntemini kullanmamız gerekiyor. Arduino'da işlemeden farklı olarak, taslağı Arduino'ya yüklerken portu zaten belirttiğimiz için start() yönteminin argümanları olarak porttan bahsetmemize gerek yok.

Böylece setup() şöyle görünecek:

geçersiz kurulum(){

Seri.başla(9600); //seri iletişimi başlat

}

Burada 9600, işleme dosyasında da bahsettiğimiz baud hızını belirtir. Doğru iletişim için, her iki baud hızının da eşit olması gerekir veya seri çıktıyı anlamsız bir şey olarak görebilirsiniz.

Şimdi loop() kısmını görelim. Kodun bu kısmı birden çok kez çalışır. Port tarafından bazı verileri okumak istiyorsak Serial.read() yöntemini kullanacağız. Bu işlev, herhangi bir veri yoksa null döndürür, bu nedenle bu yöntemi yalnızca Seri akışta kullanılabilir verilerimiz olduğunda çağırırız.

Kullanılabilir bazı veriler olup olmadığını kontrol etmek için Serial.available() yöntemini kullanacağız. 0'dan büyük bir değer döndürürse - bazı veriler mevcuttur.

Yani loop() kısmı şöyle görünecek:

boşluk döngüsü(){

if(Serial.available() > 0){ //seri portta bazı veriler mevcutsa

karakter durumu = Serial.read(); // değeri oku

// if ifadeleri veya büyük/küçük harf geçişi

}

}

Şimdi if merdivenini kullanabiliriz veya birçok olası sonuç varsa, değişken durum için de switch case kullanabiliriz.

Adım 4: Bir GUI 7 Segment Denetleyicisi Oluşturun

Bir GUI 7 Segment Denetleyicisi Oluşturun
Bir GUI 7 Segment Denetleyicisi Oluşturun
Bir GUI 7 Segment Denetleyicisi Oluşturun
Bir GUI 7 Segment Denetleyicisi Oluşturun
Bir GUI 7 Segment Denetleyicisi Oluşturun
Bir GUI 7 Segment Denetleyicisi Oluşturun

Dosyalar buraya eklenmiştir. Not: İşleme için ayrıca GUI etkileşimli düğmeler oluşturmak için kullandığım kontrol p5 kitaplığını da kurmanız gerekecek.

Pin numaraları

7 segment (alfabetik sırayla) resme bakın

a - dijital pin 2

b - dijital pin 3

c - dijital pin 4

d - dijital pin 5

e - dijital pin 6

f - dijital pin 7

g - dijital pim 8

dp - dijital pin 9

Tüm içerik ve kod, buradaki github'ımda da mevcuttur.

Önerilen: