avatar

bboyho

Member Since: August 22, 2011

Country: United States

Profile

Bio

Engineer by day, bboy by night.

Organizations

Delta Chi Fraternity Inc. Worm Tank Crew

Universities

Electrical & Computer Engineering, Dec. 2011 College of Engineering and Applied Science University of Colorado at Boulder

Websites

https://sites.google.com/site/bcelement/home https://www.facebook.com/bboyho

  • Diameter of pins are about 0.60mm.

  • This is a 2MP CMOS camera.

  • Dimensions of the shield measured with the calipers:

    width = ~53.96mm, about 2.12in
    length = ~60.26mm, about 2.37in
    height = ~6.32mm, about 0.25in (measured from the bottom of the board to the top of the XBee header sockets)
    

    This is without any header pins soldered on the shield.

  • Example of the 9DOF block used in a balance bot example => hackaday.com/2015/02/24/eddieplus-the-edison-based-balancing-robot/. There is example code in the GitHub repository to use the data output from the 9DOF => https://github.com/r3n33/EddieBalance/blob/master/src/imu/imu.c

  • When the Wake-On-Shake detects movement, it will power the load. The WAKE pin can be connected to an I/O pin to keep the Wake-On-Shake on longer. If you keep the WAKE pin HIGH in the code, the load will be held high until the WAKE pin is pulled LOW.

    For a quick test, I added a LiPo battery to the board and tried powering a RedBoard and used part of the example code in the Uncertain 7 Cube tutorial:

    #define ledPin 13  // Most Arduino boards have an on-board LED on this pin
    #define wakePin 9 // Wake on Shake "Keep Awake" Pin
    
    void setup(){ // Set up code called once on start-up 
        // define pin modes
        pinMode(ledPin, OUTPUT);
        /*if pin is not connected, the Wake-on-Shake will 
        automatically turn the load off after a certain 
        period of time (around 5 seconds)*/
        pinMode(wakePin, OUTPUT); 
    
        digitalWrite(wakePin, HIGH); // Tell the Wake-on-Shake that we're still awake
        }
    
    void loop()
    {
      for(int i=0; i<15; i++){ //run 15 times to test 
      digitalWrite(ledPin, HIGH); //blink RedBoard's LED
      delay(500);
      digitalWrite(ledPin, LOW);
      delay(50);
      }
      digitalWrite(wakePin, LOW); // Let the Wake-On-Shake module know it's okay to turn off
    }
    
  • Checking with someone else around SparkFun that has more experience with Processing, he states that it might be that the data being sent from your Arduino might be too fast for Processing to handle. We noticed that it was getting stuck in the while loop and was not able to check the if statement with “myPort.available() > 0”. Placing a println() function for debugging slowed it down enough where you can see the output on the display window. Try testing the advanced processing code with a println() function by adding it to line 58:

     while(message_complete==0)
     {
         if(myPort.available() > 0)
         {
    

    or

    while(message_complete==0)
    {
        println("testing2");          //add this line to line 58
        if(myPort.available() > 0)
        {
    

    By adding the print line, the code was able to respond better and output to the display window after tapping the accelerometer.

  • The Arduino advanced example code is working fine but I had some issues getting data with the Processing advanced example code. I had to change line 17 in the processing code to fit my port:

    String portName = Serial.list()[1];
    

    to

    String portName = Serial.list()[2];
    

    because the COM port that my Arduino enumerated to on my computer was the third listed port in the array. You can always test this out by opening the serial terminal on Arduino and try to open the COM ports in the list with the Processing. This will give you an error stating the the COM port is being used in Processing because Arduino is using the UART.

  • Checking with someone else around SparkFun that has more experience with Processing, he states that it might be that the data being sent from your Arduino might be too fast for Processing to handle. We noticed that it was getting stuck in the while loop and was not able to check the if statement with “myPort.available() > 0”. Placing a println() function for debugging slowed it down enough where you can see the output on the display window. Try testing the advanced processing code with a println() function by adding it to line 58:

     while(message_complete==0)
     {
         if(myPort.available() > 0)
         {
    

    or

    while(message_complete==0)
    {
        println("testing2");          //add this line to line 58
        if(myPort.available() > 0)
        {
    

    By adding the print line, the code was able to respond better and output to the display window after tapping the accelerometer.

  • The Arduino advanced example code that is used in the SparkFun Quickstart Guide tutorial https://www.sparkfun.com/tutorials/240 is working fine but I had some issues getting data with the Processing advanced example code. I had to change line 17 in the processing code to fit my port:

    String portName = Serial.list()[1];
    

    to

    String portName = Serial.list()[2];
    

    because the COM port that my Arduino enumerated to on my computer was the third listed port in the array. You can always test this out by opening the serial terminal on Arduino and try to open the COM ports in the list with the Processing. This will give you an error stating the the COM port is being used in Processing because Arduino is using the UART.

  • Dimensions of the breadboard should be about 63.60 mm by 93.90 mm.