⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialcallresponse.pde

📁 This is processing for java examples.
💻 PDE
字号:
/**  * Serial Call-Response  * by Tom Igoe.  *  * Sends a byte out the serial port, and reads 3 bytes in.  * Sets foregound color, xpos, and ypos of a circle onstage * using the values returned from the serial port.  * Thanks to Daniel Shiffman  and Greg Shakar for the improvements. *  * Note: This sketch assumes that the device on the other end of the serial * port is going to send a single byte of value 65 (ASCII A) on startup. * The sketch waits for that byte, then sends an ASCII A whenever * it wants more data.  */ import processing.serial.*;int bgcolor;			     // Background colorint fgcolor;			     // Fill colorSerial myPort;                       // The serial portint[] serialInArray = new int[3];    // Where we'll put what we receiveint serialCount = 0;                 // A count of how many bytes we receiveint xpos, ypos;		             // Starting position of the ballboolean firstContact = false;        // Whether we've heard from the microcontrollervoid setup() {  size(256, 256);  // Stage size  noStroke();      // No border on the next thing drawn  // Set the starting position of the ball (middle of the stage)  xpos = width/2;  ypos = height/2;  // Print a list of the serial ports, for debugging purposes:  println(Serial.list());  // I know that the first port in the serial list on my mac  // is always my  FTDI adaptor, so I open Serial.list()[0].  // On Windows machines, this generally opens COM1.  // Open whatever port is the one you're using.  String portName = Serial.list()[0];  myPort = new Serial(this, portName, 9600);}void draw() {  background(bgcolor);  fill(fgcolor);  // Draw the shape  ellipse(xpos, ypos, 20, 20);}void serialEvent(Serial myPort) {  // read a byte from the serial port:  int inByte = myPort.read();  // if this is the first byte received, and it's an A,  // clear the serial buffer and note that you've  // had first contact from the microcontroller.   // Otherwise, add the incoming byte to the array:  if (firstContact == false) {    if (inByte == 'A') {       myPort.clear();          // clear the serial port buffer      firstContact = true;     // you've had first contact from the microcontroller      myPort.write('A');       // ask for more    }   }   else {    // Add the latest byte from the serial port to array:    serialInArray[serialCount] = inByte;    serialCount++;    // If we have 3 bytes:    if (serialCount > 2 ) {      xpos = serialInArray[0];      ypos = serialInArray[1];      fgcolor = serialInArray[2];      // print the values (for debugging purposes only):      println(xpos + "\t" + ypos + "\t" + fgcolor);      // Send a capital A to request new sensor readings:      myPort.write('A');      // Reset serialCount:      serialCount = 0;    }  }}/*//  Serial Call and Response//  by Tom Igoe//  Language: Wiring/Arduino  //  This program sends an ASCII A (byte of value 65) on startup//  and repeats that until it gets some data in.//  Then it waits for a byte in the serial port, and //  sends three sensor values whenever it gets a byte in.  //  Thanks to Greg Shakar for the improvements  //  Created 26 Sept. 2005//  Updated 18 April 2008int firstSensor = 0;    // first analog sensorint secondSensor = 0;   // second analog sensorint thirdSensor = 0;    // digital sensorint inByte = 0;         // incoming serial bytevoid setup(){  // start serial port at 9600 bps:  Serial.begin(9600);  pinMode(2, INPUT);   // digital sensor is on digital pin 2  establishContact();  // send a byte to establish contact until Processing responds }void loop(){  // if we get a valid byte, read analog ins:  if (Serial.available() > 0) {    // get incoming byte:    inByte = Serial.read();    // read first analog input, divide by 4 to make the range 0-255:    firstSensor = analogRead(0)/4;    // delay 10ms to let the ADC recover:    delay(10);    // read second analog input, divide by 4 to make the range 0-255:    secondSensor = analogRead(1)/4;    // read  switch, multiply by 155 and add 100    // so that you're sending 100 or 255:    thirdSensor = 100 + (155 * digitalRead(2));    // send sensor values:    Serial.print(firstSensor, BYTE);    Serial.print(secondSensor, BYTE);    Serial.print(thirdSensor, BYTE);                 }}void establishContact() { while (Serial.available() <= 0) {      Serial.print('A', BYTE);   // send a capital A      delay(300);  }}*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -