![]()  | 
    
                     FAQ  | 
    ||
       
  | 
    ||||||||||||||||
| 
       | 
  |
| Examples for Processing (BETA) version 91+. If you have a previous version, use the examples included with your software. If you see any errors or have comments, please let us know. | 
  
| 
         Binary Input  by Mathias Dahlstrom <http://people.interaction-ivrea.it/m.dahlstrom> Example of a binary input from a serial device using serial communcation. This example takes input from an external serial device running at 19200 bps. Examples for the BX-24 microcontroller and the PIC 18F452 microcontroller (in PicBasic Pro) are given below. More information on microcontrollers can be found on the tutorial pages of Tom Igoe: http://itp.nyu.edu/tigoe/pcomp/ Because this program uses the serial port, it will not work within a web browser. Created 12 February 2003 Updated 21 March 2005, T. Igoe import processing.serial.*;  | 
  ||
| 
       | 
    
// State of the circle drawing 
boolean circleExpanding = true; 
 
// Size of the circle 
float circleSize = 0; 
 
Serial port; 
 
void setup() 
{ 
  size(200, 200); 
  
  // Print a list in case COM1 doesn't work out 
  //println("Available serial ports:"); 
  //printarr(PSerial.list()); 
  
  //port = new Serial(this, "COM1", 19200); 
  // Uses the first available port 
  port = new Serial(this, Serial.list()[0], 19200); 
  noStroke(); 
  fill(204); 
  ellipseMode(CENTER_RADIUS); 
} 
 
// The loop checks for what state the circle should be 
// drawn into and performs the drawing. 
void draw() 
{ 
  background(0); 
 
  while (port.available() > 0) { 
    int value = port.read(); 
    serialEvent(value); 
  } 
 
  if(circleExpanding) { 
    ellipse(width/2, height/2, circleSize, circleSize); 
    circleSize += 0.5; 
  }else{ 
    ellipse(width/2, height/2, circleSize, circleSize); 
    circleSize -= 0.5; 
  } 
  if(circleSize > width/2) { 
    circleSize = width/2; 
  } 
  if(circleSize < 10) { 
    circleSize = 10; 
  } 
} 
 
// Function is called when ever a new byte from the 
// BX-24 is avaliable for reading. 
// It controls what input the user is generating and 
// sets the corresponding drawing mode. 
void serialEvent(int serial) 
{ 
  // Checks the ASCII code sent from the basicX chip. 
  // '48' is the code for '0' and '49' is the code for '1' 
  if(serial == 48) { 
    circleExpanding = false; 
  } 
  if(serial == 49) { 
    circleExpanding = true; 
  } 
  
  println(serial); 
} 
 
 
 
// / / / / / / / / / / / / / / / / / / / 
 
// Code for the BX-24 Microcontroller 
 
/* 
Option Explicit 
 
dim inputVal as BYTE 
dim lastVal as BYTE 
 
Public Sub Main() 
  Call PutPin(13,1) 
  lastVal = 1 
  Do 
    inputVal = GetPin(13) 
    If (inputVal <> lastVal) Then 
      If(inputVal = 0) Then 
        debug.print "0" 
      End if 
      If(inputVal = 1) Then 
        debug.print "1" 
      End if			 
    End if 
    lastVal = inputVal 
  Loop 
End Sub 
*/ 
 
//  Code for the PIC 18F452 in PicBasic Pro: 
 
/* 
ButtonStateVar var byte 
LastButtonStateVar var byte 
ButtonCountVar var byte 
Input portc.5 
ButtonCountvar = 0 
 
main: 
	ButtonStateVar = portc.5 
 
	' if the button isn't the same as it was last time through 
	' the main loop, then you want to do something: 
 
	if buttonStateVar <> lastButtonStateVar then	 
		if buttonStateVar = 1 then 
			' the button went from off to on 
			ButtonCountVar = ButtonCountVar + 1 
			serout2 portc.6, 16416, ["1"] 
			high portb.0 
		else 
		low portb.0 
			' the button went from on to off 
			serout2 portc.6, 16416, ["0"] 
		endif 
			 
' store the state of the button for next check: 
		lastButtonStateVar = buttonStateVar 
	endif 
goto main 
 
 
*/ 
     | 
  
|   | 
    ||
| Processing is an open project initiated by Ben Fry and Casey Reas | ||
| © Info |