jleblanc: networked objects midterm



WHAT IT IS

I created a simple instant messaging system between a user with a computer and a user with a device I built around the Xport board. The Xport board uses an LCD for display and a PS/2 keyboard for input. The computer based interface was written in Processing and connects to the device by opening a Java socket to it.

HOW TO USE IT

First you powerup the device (making sure it's connected to the internet), and then launch the Processing applet.
Second you wait till the "Starting Up" message on the LCD screen goes away and the LCD screen is blank, and the Processing applet says it is connected to the device (clearly this is a little problematic if the two users are truly seperated, but patience does wonders!)
Third the user of the device types in a message and sends it by hitting Return on the keyboard. The message will show up in the processing applet, and now the computer user can enter a message in the text box, and hit Send.
Fourth the device user will get the message on their LCD. Once they have read it they hit Return to clear the screen and then they can enter a new message and send it by hitting Return.

So in essence this is a call and response system, where each user goes in sequential order.


HOW ITS PUT TOGETHER

The core of the device is the Xport board with an LCD and PS/2 keyboard attached. Below is a diagram of the system:



Here are links to the code the PIC and Processing are running:
PIC code Processing code
A documented journal of the development of my code is on my main netobj page.

RESOURCES

For the LCD the Pic Basic Pro manual (online) has useful information in conjunction with documentation on the LCDOUT command
For general LCD information this link is useful: http://www.myke.com/lcd.htm
For general PS/2 keyboard information this link is useful: http://www.beyondlogic.org/keyboard/keybrd.htm
I used pieces of code from the following link to do the keyboard scanning in PBP: http://list.picbasic.com/forum/messages/2127/2203.html?996705165
And of course Rob Faludi's java socket code in processing was very helpful too.