Concept proof of exchanging data between ArduinoBT and a S60 Mobile Phone (Nokia N73) via Python for S60
Here a proof of concept of interfacing ArduinoBT with a Nokia N73 phone via Python for S60. The Python code is horrible (i am not really a coder) but it works and i hope that
this primitive demo leads to further development and postings about BT and S60 mobile phones.
As a side note: the Python part of this demonstration can be with slight modifications used also to connect the mobile phone to any BT serial ports, like a GPS device or a computer running PD, MAXMSP or custom made software.
Info about python for s60:
http://wiki.opensource.nokia.com/projects/Python_for_S60
Links that helped me:
http://tinker.it/now/2006/12/11/bluetooth-controlled-lamp/ http://mobilenin.com/pys60/menu.htm
What it does: When the python scripts starts it sends ascii 49 to the arduino BT which then returns the numbers 0-60 which are written into a file and stored on the memory card. Stupid i know :-) but its just a test.
ArduinoBT code to communicate with a S60 Mobile Phone via Python for S60 |
// ArduinoBT with S60 Mobile Phone // (cleft)Erich Berger 2007 int i = 0; //counter int LED = 13; // pin for LED int RESET = 7; //reset pin for bluetooth int val = 0; // serial port data int track[61]; void ledblink() { digitalWrite(LED, HIGH); delay(100); digitalWrite(LED, LOW); delay(100); } void ledblink1() { digitalWrite(LED, HIGH); delay(500); digitalWrite(LED, LOW); delay(500); } void init_track() { for (i=0; i<=60; i++) { track[i] = i; } } void reset_bt(){ // Reset the bluetooth interface digitalWrite(RESET, HIGH); delay(10); digitalWrite(RESET, LOW); delay(2000); } void config_bt(){ Serial.println("SET BT PAGEMODE 3 2000 1"); Serial.println("SET BT NAME BT_Arduino"); Serial.println("SET BT ROLE 0 f 7d00"); Serial.println("SET CONTROL ECHO 0"); Serial.println("SET BT AUTH * 12345"); Serial.println("SET CONTROL ESCAPE - 00 1"); } void setup() { reset_bt(); config_bt(); pinMode(LED,OUTPUT); pinMode(RESET,OUTPUT); init_track(); Serial.begin(115200); ledblink(); } void loop () { val = Serial.read(); if (val != -1) { if (val == 49) { ledblink1(); for (i=0; i<=60; i++) { Serial.print(i, BYTE); delay(10); } } } } |
Python S60 code to communicate with a ArduinoBT via Python for S60 |
# ArduinoBT with S60 Mobile Phone # (cleft)Erich Berger 2007 import socket def bt_connect(): global sock arduino_addr='00:07:80:82:1F:35' #add your arduino BT address here sock=socket.socket(socket.AF_BT, socket.SOCK_STREAM) target=(arduino_addr,1) # serial connection to arduino BT sock.connect(target) def bt_send_data(): global sock test = "1" sock.send(test) def bt_receive_data(): global sock buffer = [] for i in range(61): data = sock.recv(1) print str(ord(data)) buffer.append(data) return buffer bt_connect() bt_send_data() track = bt_receive_data() f = open('e:\\track.txt','w') for i in range (0,60): f.write(str(ord(track[i]))) f.write("\n") f.close() print str("finished") sock.close() |