User Tools

Site Tools


extended-python-arduino-api

This is an old revision of the document!



Warning: Declaration of syntax_plugin_wrap_div::handle($match, $state, $pos, Doku_Handler &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/kucjica/emperors-wiki/lib/plugins/wrap/syntax/div.php on line 43

Warning: Declaration of syntax_plugin_wrap_div::render($mode, Doku_Renderer &$renderer, $indata) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/kucjica/emperors-wiki/lib/plugins/wrap/syntax/div.php on line 81

Warning: Declaration of syntax_plugin_wrap_closesection::handle($match, $state, $pos, Doku_Handler &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/kucjica/emperors-wiki/lib/plugins/wrap/syntax/closesection.php on line 23

Warning: Declaration of syntax_plugin_wrap_closesection::render($mode, Doku_Renderer &$renderer, $indata) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/kucjica/emperors-wiki/lib/plugins/wrap/syntax/closesection.php on line 29

Warning: Declaration of syntax_plugin_wrap_span::handle($match, $state, $pos, Doku_Handler &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/kucjica/emperors-wiki/lib/plugins/wrap/syntax/span.php on line 43

Warning: Declaration of syntax_plugin_wrap_span::render($mode, Doku_Renderer &$renderer, $indata) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/kucjica/emperors-wiki/lib/plugins/wrap/syntax/span.php on line 63

Warning: Declaration of syntax_plugin_gallery::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/kucjica/emperors-wiki/lib/plugins/gallery/syntax.php on line 51

Warning: Declaration of syntax_plugin_gallery::render($mode, &$R, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/kucjica/emperors-wiki/lib/plugins/gallery/syntax.php on line 147

Warning: Declaration of syntax_plugin_vshare::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/kucjica/emperors-wiki/lib/plugins/vshare/syntax.php on line 47

Warning: Declaration of syntax_plugin_vshare::render($mode, &$R, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/kucjica/emperors-wiki/lib/plugins/vshare/syntax.php on line 107

Warning: preg_match(): Compilation failed: invalid range in character class at offset 3444 in /var/www/kucjica/emperors-wiki/inc/parser/lexer.php on line 118
A PCRE internal error occured. This might be caused by a faulty plugin

Extended Python Arduino Prototyping API adruino pde [[http://code.google.com/p/extended-python-arduino-prototyping-api/source/browse/trunk/prototype/prototype.pde|google code]] project trunk <code java> #include <Servo.h> int VarSign = 1; int SerIn = -1; // incoming byte from serial RX long VarN[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; // number array int PosN = -1; // index counter char VarHandlerChar = '@'; #define serv_size 4 Servo serv[serv_size]; int time_out_counter=0; #define max_count_blinks 3 int count_blinks=0; // count blink then ready COM connection // SERIAL PARSER void SerialParser(void) { while (Serial.available()) { SerIn = '@'; SerIn = Serial.read(); if ((SerIn >= 65) && (SerIn <= 90)) { // if ASCII 'A' - 'Z' VarHandlerChar = SerIn; for (PosN = 0; PosN < 9; PosN++) { // clean up VarN[PosN] = 0; // reset Var array } PosN = -1; } if (SerIn == 45) { VarSign = -1; } if ((SerIn >= 48) && (SerIn <= 57)) { // if ASCII numeric '0' - '9' VarN[PosN] = VarN[PosN] * 10 + (SerIn - 48); } if (SerIn == ' ') { // if ASCII " " detected if (PosN > -1) { VarN[PosN] = VarSign * VarN[PosN]; // assign sign VarSign = 1; } PosN++; } if (SerIn == 33 || SerIn == 10 || SerIn == 13) { // '!' or CR or LF ends all this spooky things ... VarN[PosN] = VarSign * VarN[PosN]; // assign sign VarSign = 1; CallHandler(); // Call function by first Char } time_out_counter=0; // reset time out count_blinks = 0; } } void ResetReadBuff(){ VarHandlerChar='@'; SerIn='@'; VarSign=1; PosN=-1; } void CallHandler(void) { //DebugOut(); switch(VarHandlerChar) { case 'D': // set digital D 1 2 1 ! - write pin 2 HIGH, D 0 2 ! - read pin 2 DigitalHandler(VarN[0],VarN[1],VarN[2]); break; case 'B': // DebugOut(); break; case 'A': // analogWrite AnalogHandler(VarN[0],VarN[1],VarN[2]); break; case 'S': // servo control ServoHandler(VarN[0],VarN[1],VarN[2],VarN[3]); break; case 'C': // configure pin ConfigurePinHandler(VarN[0],VarN[1]); break; case 'I': // init start state InitStateHandler(); break; default: Serial.println('0'); } // Switch END } void DebugOut(void) { Serial.print(VarHandlerChar); for (int i = 0; i < PosN; i++) { Serial.print(' '); Serial.print(VarN[i]); } Serial.println(" !"); } void InitStateHandler(){ int i; for (i=0;i<serv_size;i++){ if(serv[i].attached()){ serv[i].detach(); } } for (i=0;i<13; i++){ pinMode(i,INPUT); digitalWrite(i,LOW); } } void ConfigurePinHandler(int pin_, int value_){ if(value_<=0){ pinMode(pin_,INPUT); }else{ pinMode(pin_,OUTPUT); } Serial.println("0"); } void DigitalHandler(int mode_, int pin_, int value_){ if(mode_<=0){ //read Serial.println(digitalRead(pin_)); }else{ if(value_<=0){ digitalWrite(pin_,LOW); }else{ digitalWrite(pin_,HIGH); } Serial.println("0"); } } void AnalogHandler(int mode_, int pin_, int value){ if(mode_<=0){ //read Serial.println(analogRead(pin_)); }else{ analogWrite(pin_,value); Serial.println("0"); } } void ServoHandler(int mode_, int number, int pin_, int value_){ // Servo if(number>=serv_size){ Serial.println("1"); return; } switch(mode_){ case 5: // attach() //add servo if(serv[number].attached()){ serv[number].detach(); serv[number].attach(pin_); }else{ serv[number].attach(pin_); } Serial.println("0"); break; case 6: // write() serv[number].write(value_); Serial.println("0"); break; case 7: // read() Serial.println(serv[number].read()); break; case 8: // attached() Serial.println(serv[number].attached()); break; case 9: // dettach() if(serv[number].attached()){ serv[number].detach(); } Serial.println("0"); break; } } void setup() { Serial.begin(9600); Serial.println(F_CPU); } void loop(){ SerialParser(); if ( time_out_counter>F_CPU/500){ // for response when time out call handler time_out_counter=0; Serial.println("0"); ResetReadBuff(); count_blinks++; } if(count_blinks < max_count_blinks){ time_out_counter++; } } </code>

extended-python-arduino-api.1349533446.txt.gz · Last modified: 2012/10/06 14:24 by 85.218.109.130