Arduino Fizikselsel Piksel (Processing)
Arduino Fizikselsel Piksel. Bu örnek örnek, bilgisayardan veri almak için Arduino veya Genuino kartını kullanır. Kart, ‘H’ karakterini aldığında bir LED’i açar ve ‘L’ karakterini aldığında LED’i kapatır. Veriler Arduino Yazılım (IDE) seri monitöründen veya İşleme (başka bir kod), Flash (bir seri ağ proxy üzerinden), PD veya Max / MSP gibi başka bir programdan gönderilebilir.
Donanım
- Arduino veya Genuino
- LED (isteğe bağlı)
- 220 ohm direnç (isteğe bağlı)
“Arduino Uno, ATmega328P tabanlı bir mikro denetleyici karttır. 14 adet dijital giriş / çıkış pini (6’sı PWM çıkışı olarak kullanılabilir), 6 analog giriş, 16 MHz kristali, bir USB bağlantısı, bir güç girişi, bir ICSP başlığı ve bir sıfırlama düğmesi vardır. Mikrodenetleyiciyi desteklemek için gereken her şeyi içerir; Başlamak için bir USB kablosuyla bir bilgisayara bağlayın ya da AC-DC adaptörü ya da pille çalıştırın. UNO’yu, yanlış bir şey yapmadan çok fazla endişe etmeden tamir edebilir, en kötü durum senaryosunu değiştirebilirsiniz. Birkaç dolara çip alır ve tekrar kullanabilirsiniz.”
Gerekli Yazılım
- Processing veya
- Max / MSP sürüm 5
Devre
Birçok Arduino ve Genuino anakartında pin 13’e bağlı yerleşik bir LED bulunur; Kartınızın yerleşik LED’i yoksa, pim 13’e bir harici LED takın. Uzun bacak veya anot, bir 220 rezistörü yoluyla pime 13 geçer. Kısa bacak veya katot (-).
Kod
/* Fiziksel Piksel Bilgisayardan veri almak için Arduino kartını kullanma örneği. İçinde Bu durumda, Arduino kartları karakteri aldığında bir LED açar 'H' ve 'L' karakterini aldığında LED'i kapatır. Veri Arduino Seri Monitör'den veya benzeri başka bir programdan gönderilebilir İşleme (aşağıdaki kod), Flash (bir seri ağ proxy'si üzerinden), PD veya Max / MSP. Devre: - Dijital pim 13'ten toprağa bağlanan LED 2006 oluşturuldu David A. Mellis tarafından değiştirildi 30 Ağu 2011 Tom Igoe ve Scott Fitzgerald tarafından Bu örnek kod kamu malıdır. http://www.arduino.cc/en/Tutorial/PhysicalPixel */ const int ledPin = 13; // LED'in bağlı olduğu pin int incomingByte; // gelen seri veriyi okumak için bir değişken void setup() { // seri iletişimi başlat: Serial.begin(9600); // LED pinini çıkış olarak başlatır: pinMode(ledPin, OUTPUT); } void loop() { // gelen seri veri olup olmadığına bakın: if (Serial.available() > 0) { // seri tampondaki en eski baytı oku: incomingByte = Serial.read(); // Eğer bir Büyük H (ASCII 72) ise, LED'i açın: if (incomingByte == 'H') { digitalWrite(ledPin, HIGH); } // L (ASCII 76) ise, LED'i kapatır: if (incomingByte == 'L') { digitalWrite(ledPin, LOW); } } } /* Bu örnek için işlem kodu // Seriye göre fare // Açmak için Arduino G / Ç kartına veri göndermeyi gösterir // farenin bir karenin üzerindeyse bir ışık ve farenin olmaması durumunda onu kapatın. // 2003-4 oluşturuldu // Casey Reas ve Hernando Barragan'ın örneklerine dayanarak // değiştirildi 30 Ağu 2011 // Tom Igoe tarafından // Bu örnek kod genel etki alanında. import processing.serial.*; float boxX; float boxY; int boxSize = 20; boolean mouseOverBox = false; Serial port; void setup() { size(200, 200); boxX = width / 2.0; boxY = height / 2.0; rectMode(RADIUS); // Çıkış bölmesindeki tüm kullanılabilir seri portları listeleyin. // Arduino kartının bağlı olduğu portu seçmeniz gerekecek. // bu listeden. Listedeki ilk bağlantı noktası bağlantı noktası # 0 ve üçüncü bağlantı noktasıdır. // listede 2 numaralı bağlantı noktası. // İşlem 2.1 veya daha yenisini kullanıyorsanız, Serial.printArray () öğesini kullanın. println(Serial.list()); // Arduino kartının bağlı olduğu portu açın (bu durumda # 0) // Arduino'nun kullandığı hızda (9600bps) aynı portu açtığınızdan emin olun. port = new Serial(this, Serial.list()[0], 9600); } void draw() { background(0); // İmlecin kutunun üzerinde olup olmadığını test edin if (mouseX > boxX - boxSize && mouseX < boxX + boxSize && mouseY > boxY - boxSize && mouseY < boxY + boxSize) { mouseOverBox = true; // kutunun etrafında bir çizgi çizin ve rengini değiştirin: stroke(255); fill(153); // farenin kare üzerinde olduğunu belirtmek için bir 'H' gönderin: port.write('H'); } else { // kutusunu etkin olmayan durumuna döndürün: stroke(153); fill(153); // LED'i kapatmak için bir 'L' gönderin: port.write('L'); mouseOverBox = false; } // Kutuyu çiz rect(boxX, boxY, boxSize, boxSize); } */ /* Max / MSP sürüm 5 düzeltme eki şu örnekle çalıştırılacak: ----------begin_max5_patcher---------- 1672.3oc2ZszaaiCD9ryuBBebQVCQRYao8xhf1cQCPVfBzh8RRQ.sDsM2HSZ HQmlzh9eu7gjsjsEk7y0oWjiHoHm4aluYHGlueUmtiDuPy5B9Cv8fNc99Uc5 XZR2Pm726zcF4knDRlYXciDylQ4xtWa6SReQZZ+iSeMiEQR.ej8BM4A9C7OO kkAlSjQSAYTdbFfvA27o2c6sfO.Doqd6NfXgDHmRUCKkolg4hT06BfbQJGH3 5Qd2e8d.QJIQSow5tzebZ7BFW.FIHow8.2JAQpVIIYByxo9KIMkSjL9D0BRT sbGHZJIkDoZOSMuQT.8YZ5qpgGI3locF4IpQRzq2nDF+odZMIJkRjpEF44M3 A9nWAum7LKFbSOv+PSRXYOvmIhYiYpg.8A2LOUOxPyH+TjPJA+MS9sIzTRRr QP9rXF31IBZAHpVHkHrfaPRHLuUCzoj9GSoQRqIB52y6Z.tu8o4EX+fddfuj +MrXiwPL5+9cXwrOVvkbxLpomazHbQO7EyX7DpzXYgkFdF6algCQpkX4XUlo hA6oa7GWck9w0Gnmy6RXQOoQeCfWwlzsdnHLTq8n9PCHLv7Cxa6PAN3RCKjh ISRVZ+sSl704Tqt0kocE9R8J+P+RJOZ4ysp6gN0vppBbOTEN8qp0YCq5bq47 PUwfA5e766z7NbGMuncw7VgNRSyQhbnPMGrDsGaFSvKM5NcWoIVdZn44.eOi 9DTRUT.7jDQzSTiF4UzXLc7tLGh4T9pwaFQkGUGIiOOkpBSJUwGsBd40krHQ 9XEvwq2V6eLIhV6GuzP7uzzXBmzsXPSRYwBtVLp7s5lKVv6UN2VW7xRtYDbx 7s7wRgHYDI8YVFaTBshkP49R3rYpH3RlUhTQmK5jMadJyF3cYaTNQMGSyhRE IIUlJaOOukdhoOyhnekEKmZlqU3UkLrk7bpPrpztKBVUR1uorLddk6xIOqNt lBOroRrNVFJGLrDxudpET4kzkstNp2lzuUHVMgk5TDZx9GWumnoQTbhXsEtF tzCcM+z0QKXsngCUtTOEIN0SX2iHTTIIz968.Kf.uhfzUCUuAd3UKd.OKt.N HTynxTQyjpQD9jlwEXeKQxfHCBahUge6RprSa2V4m3aYOMyaP6gah2Yf1zbD jVwZVGFZHHxINFxpjr5CiTS9JiZn6e6nTlXQZTAFj6QCppQwzL0AxVtoi6WE QXsANkEGWMEuwNvhmKTnat7A9RqLq6pXuEwY6xM5xRraoTiurj51J1vKLzFs CvM7HI14Mpje6YRxHOSieTsJpvJORjxT1nERK6s7YTN7sr6rylNwf5zMiHI4 meZ4rTYt2PpVettZERbjJ6PjfqN2loPSrUcusH01CegsGEE5467rnCdqT1ES QxtCvFq.cvGz+BaAHXKzRSfP+2Jf.KCvj5ZLJRAhwi+SWHvPyN3vXiaPn6JR 3eoA.0TkFhTvpsDMIrL20nAkCI4EoYfSHAuiPBdmJRyd.IynYYjIzMvjOTKf 3DLvnvRLDLpWeEOYXMfAZqfQ0.qsnlUdmA33t8CNJ7MZEb.u7fiZHLYzDkJp R7CqEVLGN75U+1JXxFUY.xEEBcRCqhOEkz2bENEWnh4pbh0wY25EefbD6EmW UA6Ip8wFLyuFXx+Wrp8m6iff1B86W7bqJO9+mx8er4E3.abCLrYdA16sBuHx vKT6BlpIGQIhL55W7oicf3ayv3ixQCm4aQuY1HZUPQWY+cASx2WZ3f1fICuz vj5R5ZbM1y8gXYN4dIXaYGq4NhQvS5MmcDADy+S.j8CQ78vk7Q7gtPDX3kFh 3NGaAsYBUAO.8N1U4WKycxbQdrWxJdXd10gNIO+hkUMmm.CZwknu7JbNUYUq 0sOsTsI1QudDtjw0t+xZ85wWZd80tMCiiMADNX4UzrcSeK23su87IANqmA7j tiRzoXi2YRh67ldAk79gPmTe3YKuoY0qdEDV3X8xylCJMTN45JIakB7uY8XW uVr3PO8wWwEoTW8lsfraX7ZqzZDDXCRqNkztHsGCYpIDDAOqxDpMVUMKcOrp 942acPvx2NPocMC1wQZ8glRn3myTykVaEUNLoEeJjVaAevA4EAZnsNgkeyO+ 3rEZB7f0DTazDcQTNmdt8aACGi1QOWnMmd+.6YjMHH19OB5gKsMF877x8wsJ hN97JSnSfLUXGUoj6ujWXd6Pk1SAC+Pkogm.tZ.1lX1qL.pe6PE11DPeMMZ2 .P0K+3peBt3NskC -----------end_max5_patcher----------- */
Processing Kodu
İşleme kodunu yukarıdaki kod örneğinden kopyalayın. Merkez karenin üzerine geldiğinizde, pim 13 üzerindeki LED açılmalı ve kapatılmalıdır. İşleme uygulaması şu şekilde görünür:
LED’i açmak ve kapatmak için karenin üzerine gelin.
Max Kodu
Max / MSP yaması aşağıdaki görüntüye benziyor. Yukarıdaki kod örneğinden kopyalayın ve yeni bir yama penceresine yapıştırın.
Kaynak:arduino.cc