Arduino Grafik (Processing)
Arduino Grafik (Processing). Bu örnek, Arduino veya Genuino’dan bir bayt bilgisinin kişisel bir bilgisayara nasıl gönderileceğini ve sonucu nasıl çizeceğinizi gösterir. Buna seri iletişim denir, çünkü bağlantı aslında USB kablosu, seri olarak USB ve seri olarak USB dönüştürücü kullanabilse de, hem kart hem de bilgisayar için bir seri bağlantı noktası olarak görünür.
Gönderilen verileri görüntülemek için Arduino Yazılımının (IDE) seri monitörünü kullanabilir veya İşleme (bkz. Aşağıdaki kod), Flash, PD, Max / MSP, vb.
Donanım
- Arduino veya Genuino
- Analog Sensör (potansiyometre, fotosel, FSR vb.)
“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
Analog giriş 0’a bir potansiyometre veya başka bir analog sensör bağlayın.
Kod
/* grafik Arduino kartından bilgisayara olan basit bir iletişim örneği: Analog girişin 0 değeri seri porttan gönderilir. Biz buna "seri" diyoruz iletişim hem Arduino hem de Bir USB kablosu kullanmasa bile, bir seri bağlantı noktası olarak bilgisayar. Bayt Arduino'dan bilgisayara (seri olarak) ardarda gönderilir. Gönderilen verileri görüntülemek için Arduino Serial Monitor'ü kullanabilir veya İşleme, PD, Max / MSP veya veri okuyabilen başka herhangi bir program tarafından okunabilir bir seri porttan. Aşağıdaki İşleme kodu, alınan verileri Analog girişin zaman içindeki değerini görebilir. Devre: - Pim 0'da analoga bağlı herhangi bir analog giriş sensörü 2006 oluşturuldu David A. Mellis tarafından değiştirilme tarihi 9 Nis 2012 Tom Igoe ve Scott Fitzgerald tarafından Bu örnek kod kamu malıdır. http://www.arduino.cc/en/Tutorial/Graph */ void setup() { // seri iletişimi başlatır: Serial.begin(9600); } void loop() { // analog girişin 0 değerini gönder: Serial.println(analogRead(A0)); // analogdan dijitale dönüştürücünün sonuncudan sonra stabilize olması için biraz bekleyin // okuma: delay(2); } /* Bu örnek için Processing kodu // Grafik çizimi // Bu program ASCII kodlu dizeleri 9600 baud seri porttan alır // ve onları çizer. 0 ile 1023 aralığında değerler bekler, ardından // satırsonu, satırsonu ve satır başı iadesi // 20 Nis 2005 oluşturdu // 24 Kasım 2015 güncellendi // Tom Igoe tarafından // Bu örnek kod genel etki alanında. import processing.serial.*; Serial myPort; // seri port int xPos = 1; // grafiğin yatay konumu float inByte = 0; void setup () { // pencere boyutunu ayarla: size(400, 300); // Mevcut tüm seri portları listele // İşlem 2.1 veya daha yenisini kullanıyorsanız, Serial.printArray () öğesini kullanın. println(Serial.list()); // Mac'indeki seri listesindeki ilk portun her zaman benim olduğunu biliyorum // Arduino, bu yüzden Serial.list () [0] 'ı açtım. // Kullandığınız port ne olursa olsun açın. myPort = new Serial(this, Serial.list()[0], 9600); // bir satırsonu karakteri almadıkça bir serialEvent () üretmeyin: myPort.bufferUntil('\n'); // başlangıç arka planını ayarla: background(0); } void draw () { // çizgiyi çiz: stroke(127, 34, 255); line(xPos, height, xPos, height - inByte); // ekranın kenarında, başa dönün: if (xPos >= width) { xPos = 0; background(0); } else { // yatay pozisyonu arttırır: xPos++; } } void serialEvent (Serial myPort) { // ASCII dizesini al: String inString = myPort.readStringUntil('\n'); if (inString != null) { // herhangi bir boşluk bırakma: inString = trim(inString); // bir int'ye dönüştür ve ekranın yüksekliğine eşle: inByte = float(inString); println(inByte); inByte = map(inByte, 0, 1023, 0, height); } } */ /* Bu örnek için Max / MSP v5 düzeltme eki ----------begin_max5_patcher---------- 1591.3oc0YszbaaCD9r7uBL5RalQUAO3CvdyS5zVenWZxs5NcfHgjPCIfJIT RTxj+6AOHkoTDooroUs0AQPR73a+1cwtK3WtZxzEpOwqlB9YveAlL4KWMYh6 Q1GLo99ISKXeJMmU451zTUQAWpmNy+NM+SZ2y+sR1l02JuU9t0hJvFlNcMPy dOuBv.U5Rgb0LPpRpYBooM3529latArTUVvzZdFPtsXAuDrrTU.f.sBffXxL vGE50lIHkUVJXq3fRtdaoDvjYfbgjujaFJSCzq4.tLaN.bi1tJefWpqbO0uz 1IjIABoluxrJ1guxh2JfPO2B5zRNyBCLDFcqbwNvuv9fHCb8bvevyyEU2JKT YhkBSWPAfq2TZ6YhqmuMUo0feUn+rYpY4YtY+cFw3lUJdCMYAapZqzwUHX8S crjAd+SIOU6UBAwIygy.Q1+HAA1KH6EveWOFQlitUK92ehfal9kFhUxJ3tWc sgpxadigWExbt1o7Ps5dk3yttivyg20W0VcSmg1G90qtx92rAZbH4ez.ruy1 nhmaDPidE07J+5n2sg6E6oKXxUSmc20o6E3SPRDbrkXnPGUYE.i5nCNB9TxQ jG.G0kCTZtH88f07Rt0ZMMWUw8VvbKVAaTk6GyoraPdZff7rQTejBN54lgyv HE0Ft7AvIvvgvIwO23jBdUkYOuSvIFSiNcjFhiSsUBwsUCh1AgfNSBAeNDBZ DIDqY.f8.YjfjV1HAn9XDTxyNFYatVTkKx3kcK9GraZpI5jv7GOx+Z37Xh82 LSKHIDmDXaESoXRngIZQDKVkpxUkMCyXCQhcCK1z.G457gi3TzMz4RFD515F G3bIQQwcP3SOF0zlkGhiCBQ1kOHHFFlXaEBQIQnCwv9QF1LxPZ.A4jR5cyQs vbvHMJsLll01We+rE2LazX6zYmCraRrsPFwKg1ANBZFY.IAihr8Ox.aH0oAL hB8nQVw0FSJiZeunOykbT6t3r.NP8.iL+bnwNiXuVMNJH9H9YCm89CFXPBER bz422p8.O4dg6kRxdyjDqRwMIHTbT3QFLskxJ8tbmQK4tm0XGeZWF7wKKtYY aTAF.XPNFaaQBinQMJ4QLF0aNHF0JtYuHSxoUZfZY6.UU2ejJTb8lQw8Fo5k Rv6e2PI+fOM71o2ecY1VgTYdCSxxUqLokuYq9jYJi6lxPgD2NIPePLB0mwbG YA9Rgxdiu1k5xiLlSU6JVnx6wzg3sYHwTesB8Z5D7RiGZpXyvDNJY.DQX3.H hvmcUN4bP1yCkhpTle2P37jtBsKrLWcMScEmltOPv22ZfAqQAdKr9HzATQwZ q18PrUGt6Tst2XMCRUfGuhXs6ccn23YloomMqcTiC5iMGPsHsHRWhWFlaenV XcqwgCQiGGJzptyS2ZMODBz6fGza0bzmXBj7+DA94bvpR01MffAlueO7HwcI pWCwmzJdvi9ILgflLAFmyXB6O7ML0YbD26lenmcGxjVsZUN+A6pUK7AtTrPg M+eRYG0qD9j4I7eEbco8Xh6WcO.or9XDC6UCiewbXHkh6xm5LiPEkzpJDRTu mEB44Fgz4NCtJvX.SM1vo2SlTCZGAe7GZu6ahdRyzFOhYZ+mbVVSYptBw.K1 tboIkatIA7c1cTKD1u.honLYV04VkluHsXe0szv9pQCE9Ro3jaVB1o15pz2X zYoBvO5KXCAe0LCYJybE8ZODf4fV8t9qW0zYxq.YJfTosj1bv0xc.SaC0+AV 9V9L.KKyV3SyTcRtmzi6rO.O16USvts4B5xe9EymDvebK0eMfW6+NIsNlE2m eqRyJ0utRq13+RjmqYKN1e.4d61jjdsauXe3.2p6jgi9hsNIv97CoyJ01xzl c3ZhUCtSHx3UZgjoEJYqNY+hYs5zZQVFW19L3JDYaTlMLqAAt1G2yXlnFg9a 53L1FJVcv.cOX0dh7mCVGCLce7GFcQwDdH5Ta3nyAS0pQbHxegr+tGIZORgM RnMj5vGl1Fs16drnk7Tf1XOLgv1n0d2iEsCxR.eQsNOZ4FGF7whofgfI3kES 1kCeOX5L2rifbdu0A9ae2X.V33B1Z+.Bj1FrP5iFrCYCG5EUWSG.hhunHJd. HJ5hhnng3h9HPj4lud02.1bxGw. -----------end_max5_patcher----------- */
Processing Kodu
Yukarıdaki kod örneğinde İşleme taslağını kullanarak, sensörün değerinin bir grafiğini alırsınız. Analog sensörün değerini değiştirdiğinizde, şöyle bir grafik elde edersiniz:
Max Kodu
Maksimum yama böyle görünüyor. Yamanın metni yukarıdaki kod örneğindedir. Metni kopyalayın ve çizimi görmek için yeni bir Max penceresine yapıştırın.
Kaynak:Arduino.cc