Changeset 94b751c in pyramid


Ignore:
Timestamp:
10/10/13 03:37:33 (6 years ago)
Author:
Steve Castellotti <sc@…>
Branches:
master
Children:
f1b827c
Parents:
0b675ba
Message:
  • Will correctly operating in either Bluetooth or USB Serial input modes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • firmware/Puzzlebox_Pyramid/Puzzlebox_Pyramid.ino

    r0b675ba r94b751c  
    3737 
    3838 
    39 #define DEBUG_OUTPUT 1 //1 for debug 
     39#define DEBUG_OUTPUT 0 // 1 for debug, 2 for verbose 
    4040 
    4141 
     
    6060char _command; 
    6161byte _attention_threshold = 67; //treshold for launching Orbit helicopter 
     62 
     63// Operation mode 
     64boolean modeBluetooth = false; 
     65boolean modeSerial = false; 
     66boolean modeADK = false; 
    6267 
    6368///////////////MindWave Mobile Protocol/////////// 
     
    8186long lastReceivedPacket = 0; 
    8287long lastLoop = 0; 
     88long thisLoop = 0; 
    8389boolean bigPacket = false; 
    8490 
     
    141147        Serial.flush();//delete? 
    142148        Serial1.flush(); 
    143 }  
     149         
     150         
     151        selectInput(); // Determine method for Pyramid control 
     152         
     153         
     154} // setup 
    144155 
    145156 
     
    151162void loop() { 
    152163         
    153         parseBluetooth(); 
    154          
    155         //  parseSerialInput(); 
     164        if (modeBluetooth) 
     165                parseBluetooth(); 
     166         
     167        else if (modeSerial) 
     168                parseSerialInput(); 
     169         
     170         
     171        //read from button 
     172        if (digitalRead(BUTTON_PIN)){ 
     173                RGB_Panel[11][0]=255; 
     174                RGB_Panel[11][1]=255; 
     175                RGB_Panel[11][2]=255; 
     176                digitalWrite(13,HIGH); 
     177        } 
     178        else { 
     179                RGB_Panel[11][0]=0; 
     180                RGB_Panel[11][1]=0; 
     181                RGB_Panel[11][2]=0; 
     182                digitalWrite(13,LOW); 
     183        } 
    156184         
    157185        ////Send Flight Command through IR Emitter//// 
    158186        if (millis()-lastLoop>_IR_period) { 
     187                 
    159188                if(att_buff>_attention_threshold) { 
    160189                        _throttle=85; 
     
    166195                         
    167196                        Serial1.flush(); 
     197                         
    168198                } 
    169199                 
     200                thisLoop = millis() - lastLoop; 
     201                 
    170202                #if DEBUG_OUTPUT 
    171                 Serial.print(" Attention:"); 
    172                 Serial.print(att_buff); 
    173                 Serial.print(" | Time per loop:"); 
    174                 Serial.println(millis() - lastLoop, DEC); 
     203                        Serial.print(" Attention:"); 
     204                        Serial.print(att_buff); 
     205                        Serial.print(" | Time per loop:"); 
     206                        // Serial.println(millis() - lastLoop, DEC); 
     207                        Serial.println(thisLoop); 
     208                #endif 
     209                         
    175210                lastLoop = millis(); 
    176                 #endif 
    177211         
    178212        } // if (millis()-lastLoop>_IR_period) 
     
    183217// ################################################################ 
    184218 
     219void selectInput() { 
     220         
     221        // Determine method for Pyramid control 
     222         
     223        while ( (! Serial.available()) & (! Serial1.available()) ); 
     224         
     225                if (Serial.available()) 
     226                        modeSerial = true; 
     227                else if (Serial1.available()) 
     228                        modeBluetooth = true; 
     229         
     230} // selectInput 
     231 
     232 
     233// ################################################################ 
     234 
    185235void parseBluetooth() { 
    186236         
     
    188238         
    189239        if(ReadOneByte() == 170) { 
     240                 
     241                if (! modeBluetooth) 
     242                        Serial.println("INFO: Bluetooth input command received, setting modeBluetooth"); 
     243                        modeBluetooth = true; 
    190244                 
    191245                if(ReadOneByte() == 170) { 
     
    239293 
    240294                                if(bigPacket) { 
    241                                         Serial.print("PoorQuality: "); 
     295                                        Serial.print("SignalQuality: "); 
    242296                                        Serial.print(poorQuality, DEC); 
    243297                                        Serial.print(" Attention: "); 
     
    280334                        else { 
    281335                                #if DEBUG_OUTPUT 
    282                                 Serial.println("Checksum Error!"); 
    283                                 // Checksum Error 
     336                                        Serial.println("Checksum Error!"); 
     337                                        // Checksum Error 
    284338                                #endif 
    285339                        }  // end if else for checksum 
    286340                } // end if read 0xAA byte (170) 
    287341        } // end if read 0xAA byte (170) 
    288  
    289         //read from button 
    290         if (digitalRead(BUTTON_PIN)){ 
    291                 RGB_Panel[11][0]=255; 
    292                 RGB_Panel[11][1]=255; 
    293                 RGB_Panel[11][2]=255; 
    294                 digitalWrite(13,HIGH); 
    295         } 
    296         else { 
    297                 RGB_Panel[11][0]=0; 
    298                 RGB_Panel[11][1]=0; 
    299                 RGB_Panel[11][2]=0; 
    300                 digitalWrite(13,LOW); 
    301         } 
    302  
    303342 
    304343} // parseBluetooth 
     
    762801        if (Serial.available() > 0)  { 
    763802                 
     803                if (! modeSerial) 
     804                        Serial.println("INFO: Serial input command received, setting modeSerial"); 
     805                        modeSerial = true; 
     806                 
    764807//              Serial.print("Serial.available(): "); 
    765808//              Serial.println(Serial.available()); 
     
    789832                } 
    790833        } 
     834         
     835        sendCode(formCode(_throttle,_yaw,_pitch)); 
     836        delay(80); //originally 36, 51, 66, 80 
    791837 
    792838} // parseSerialInput() 
    793839 
     840 
     841 
     842 
     843 
     844 
Note: See TracChangeset for help on using the changeset viewer.