Site icon elektromanyetix

Arduino Grafik (Processing) Uygulaması

Arduino Grafik (Processing)

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

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

Exit mobile version