Python Code:-
=============
# Arduino-WinUAE.py
#
# Arduino test for Python 1.4.x under WinUAE only, NOT classic AMIGAs.
# This is an experimental idea only to test the Arduino Diecimila
# development board under Python 1.4.x and WinUAE.
# (It is assumed that the Python 1.4.x install is in the default drawers.)
# NOTE:- This code also works to Python 2.0.x inside WinUAE.
# This working idea is copyright, (C)2008, B.Walker, G0LCU.
# Copy this 'Arduino-WinUAE.py' file into the 'PYTHON:Lib/' drawer
# and you will be ready to roll... ;-)
# Press ~Ctrl C~ to QUIT, OR, set the input to maximum of 5V, i.e. 255.
#
# It is assumed that you have WinUAE 1.5.3 or greater installed and running a
# minimum of EMULATED classic AMIGA OS 3.0x, 68EC020, 2MB RAM, HDD; that is emulating
# a stock A1200HD and Workbench 3.0x.
# It is assumed that the SER: device is set up in the AMIGA mode.
# See here for the correct parameters:-
# http://aminet.net/package/dev/src/Arduino_Python
# It is assumed that you know how to allocate the Windows COMx: device to WinUAE.
# It is assumed that you know how to connect and set up the USB Arduino Diecimila
# board inside Windows, (32 bit installs)...
# There may be other forgotten assumptions too, not listed here!
#
# To run type:-
# >>> execfile("PYTHON:Lib/Arduino-WinUAE.py")<RETURN/ENTER>
# NOW issued as Public Domain, you may do with it as you please.
#
# IMPORTANT NOTE:- With a piece of simple home built hardware add-on this WILL work
# on a classic AMIGA A1200 with a standard Serial Port also. For this modification see:-
# http://prdownload.berlios.de/mikeos/ARDUINO.zip
# The program proper.
def main():
print
print ' Arduino Diecimila Dev Board access demonsration Python 1.4.x code.'
print ' Original idea copyright, (C)2008, B.Walker, G0LCU.'
print ' Press ~Ctrl C~ to QUIT.'
print
while 1:
# Open up a channel for USB/Serial reading on the Arduino board.
# Place a wire link between ANALOG IN 0 and Gnd.
# Replace the wire link between ANALOG IN 0 and 3V3.
# Replace the wire link between ANALOG IN 0 and 5V.
# Watch the values change.
pointer = open('SER:', 'rb', 2)
# Transfer an 8 bit number into `mybyte`.
mybyte = str(pointer.read(1))
# Immediately close the channel.
pointer.close()
# Print the decimal value on screen.
print 'Decimal value at Arduino ADC Port0 is:-',ord(mybyte),'. '
# Ensure one safe getout when running!
if mybyte == chr(255): break
main()
# End of program...
# Enjoy finding simple solutions to often very difficult problems.
Arduino Test.pde code:-
=======================
/* Using the Arduino as a DEMO single channel ADC for Windows XP and Linux. */
/* This idea is copyright, (C)2008, B.Walker, G0LCU. */
/* This is just demonstration code only for use with Python 2.6.x or less. */
/* Set up a variable for basic analogue input. */
int analogue0 = 0;
void setup() {
/* open the serial port at 1200 bps. This rate is used for purely */
/* for simplicity only. */
Serial.begin(1200);
/* Set the analogue voltage reference, DEFAULT is 5V in this case. */
analogReference(DEFAULT);
}
void loop() {
/* Read the 10 bit analogue voltage on analogue input 0. */
analogue0 = analogRead(0);
/* Convert to a byte value by dividing by 4. */
analogue0 = analogue0/4;
/* Send to the Serial Port the byte value. */
Serial.print(analogue0, BYTE);
/* Delay 500 milliseconds before taking the next reading. */
delay(500);
}
Diff to Previous Revision
--- revision 1 2011-03-26 13:29:08
+++ revision 2 2011-03-26 14:30:31
@@ -59,7 +59,7 @@
print 'Decimal value at Arduino ADC Port0 is:-',ord(mybyte),'. '
# Ensure one safe getout when running!
- if mybyte == 255: break
+ if mybyte == chr(255): break
main()