serial object + Arduino
Happy 2011 to all
I am sending X-Y coordinates from a touchscreen simultaneously to Max, via Arduino*, writing my own code adapted from what I found on Practical Arduino site. Way back in the mists of time, I knew how to punctuate and unpack two simultaneous bytes in Max, but I've kinda lost my way. Can someone assist? I've attached a screenshot (apologies for this) showing the raw vals coming into Arduino, my Arduino to Max code and the Max patch. What I am looking for is two streams of values in Max, one for each axis.
Thanks
Brendan
*I'm not using the standard pnp chip/drivers that came with the panel cos it's REAL flaky. Using Arduino to get raw voltages.
Thanks for looking,
sorted
used Serial.print(255, BYTE) for punctuation,
then in Max: [select 255] -> [zl group 2] -> [unpack 0 0] from
the serial object
Brendan
xVal>>2 and yVal>>2 might also get 255, when transmitted as 8bit.
this will confuse [zl group].
The way I solved this, is to split the 10bit analog read into a high and a low byte and use two bytes (0xff) for punctuation.
void send_packet(int pin, int value)
{
Serial.write(byte(0xFF)); // Packet start magic
Serial.write(byte(pin));
Serial.write(byte(value & 0xff)); // Lo Byte
Serial.write(byte(value >> 8)); // Hi Byte
}
in max i use [match 255 nn nn nn] to seperate the packets.
Hi mudang and thanks;
The analog voltages were coming in VERY jittery (cheap Far East tech) and never attained 255, but I've done a little smoothing in my hardware circuit and Arduino code (via grounding resistors and forcing unused analog inputs to 0v), but if I need further stability I'll definitely use your idea too....unfortunately there are missing objects in your patch (bang2byte?), but the concept is clear,
thanks again
Brendan