Uncategorized

Codebuggy rolls on

I’ve been making some progress with building my Codebuggy (Robot chassis for a codebug).

20150926_223408

I’ve stripped a USB powerbank out of it’s shell and hot-glued it onto the chassis. I rotated the circuit board so that the USB socket was facing upward and I’ve covered it in hot-glue to make it safe for (and from) little fingers.

20150926_223434

I made up an interface board to connect the servos and the codebug to the USB powerbank.

After a few hours I added a powerswitch to my interface board, making it easier to turn off the CodeBuggy (it runs off fairly quickly).

I’m having a problem adjusting the speed of the servos, they don’t respond correctly to changes in the program.

 

Still to do:

Replace experimenters kit croc clip leads with short connectors to codebug legs;

Improve control program.

Standard
CodeBug

CodeBuggy

I backed the Codebug Kickstarter, it seemed like an interesting little gadget (now available for sale at Farnell).

By the time my codebugs had arrived there was a lot of progress on the (unofficial) codebug forums with PiGraham writing code that would move servos. MikeR took this a stage further and built a codebuggy with continuous rotation servos and a chassis from an old robot project.

So I ordered some tiny continuous rotation servos, a Tamiya track and wheel set and a Tamiya plate set.

Last night they arrived so I set to work making my chassis.

 

After about 4 hours I had finished construction but as it was midnight decided to save wiring it up for another night (tonight perhaps).

Underneath the Buggy

Underneath the Buggy

 

I don’t know if the tracks are going to be too much for the servos, this might end up being a very stationary buggy.

I need to shorten the axle for the idler wheels, but I assembled it anyway, so I could check the dimensions.

My Bugg, sitting on top of it's buggy.

My Bug, sitting on top of it’s buggy.

 

Next tasks:

  1. Check that the servos will drive the tank tracks.
  2. Solder together an interface board to connect a 5V battery, the Servos and the codebug.
  3. Shorten the Servo wires to connect directly to the interface board.
  4. Find a smaller battery (I bought some but they are huge, much bigger than my buggy).

 

 

Standard
Uncategorized

RasPiO duino with nokia 5110 LCD

I’ve added a cheap nokia 5110 LCD to my RasPiO Duino, it took me awhile to get the example code to work.

I downloaded the PCD8544 display library (Nokia 5110) (http://adafru.it/aHn) and the GFX graphics core library (
http://adafru.it/aJa).

Reading the readme note was essential as the name and location of the library is critical to getting this to compile.
One issue to be aware of is that the readme suggested placing the files in sketchbook/Libraries whereas I found that it was required to be in sketchbook/libraries (lowercase L).

The example code compiled OK (once I’d figured out the correct file name and location).
sketchbook/libraries/Adafruit_PCD8544
sketchbook/libraries/Adafruit_GFX

I found a nice clear wiring scheme at duino4projects, which I’ve followed (but I’ve connected the backlight to a pin 9 for PWM so I can dim it). http://duino4projects.com/getting-nokia-5110-lcd-running-arduino/
Pictures of the wiring are less useful as there are different variants of this LCD board so the pin locations are relative.

I added some more female and male headers to my RasPiO Duino, in the prototyping area, for easier connections to peripherals.20150603_205520

I changed the male headers on the LCD for female ones (because I could only find my male dupont cables.

nokia 5110 lcd female header

With a swift (OK, slow and painful) re-write of the display code we have a short countdown to….

I started with code for a countdown timer for 5110 LCD which I found on the Arduino forums:

http://forum.arduino.cc/index.php?topic=145464.0

 

I modified it a bit to give me this:


/*********************************************************************
This is an example sketch for a countdown timer using Nokia 5110 LCD
and adafruit library for the display

RWSDev.net
*********************************************************************/
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

// pin 7 - SCE
// pin 6 - RST
// pin 5 - D/C
// pin 4 - DN
// pin 3 - SCLK
// pin 9 - Backlight PWM

// set timer position on lcd
int xPos1 = 16;
int xPos2 = 4;
int xPos3 = 4;
int yPos1 = 16;
int yPos2 = 8;
int yPos3 = 16;

int hours =0;
int minutes = 0;
int seconds = 5;
int backlight = 9;    // setting the PWM Pin for the Backlight
int brightness = 130;   // setting the brightness level for the backlight

Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

void setup()   {
  display.begin();
  display.clearDisplay();   // clears the screen and buffer
  display.display();
  pinMode(backlight, OUTPUT);
  analogWrite(backlight, brightness);
}

void loop() {
  while (hours > 0 || minutes > 0 || seconds >= 0) {
    display.clearDisplay();   // clears the screen and buffer
    display.setContrast(30);
    display.setTextSize(2);
    display.setCursor(xPos1, yPos1);
    (minutes < 10) ?display.print("0"):NULL;
    display.print(minutes);
    display.print(":");
    (seconds < 10) ?display.print("0"):NULL;
    display.print(seconds);
    display.display();
    stepDown();
    delay(1000);
  }
}

void stepDown() {
    if (seconds > 0) {
      seconds -= 1;
    } else {
      if (minutes > 0) {
        seconds = 59;
        minutes -= 1;
      } else {
        if (hours > 0) {
          seconds = 59;
          minutes = 59;
          hours -= 1;
        } else {
          trigger();
          delay(5000);
          seconds = 5;
        }
      }
    }
}

void trigger() {
  display.clearDisplay();   // clears the screen and buffer
  display.setTextSize(2);
  display.setCursor(xPos2, yPos2);
  display.println("RasPiO");
  display.setCursor(xPos3, yPos3);
  display.println("Duino");
  display.display();
}

 

Standard
Uncategorized

RasPiO duino with ZIF socket.

I backed the RasPiO duino kickstarter, I finally found an opportunity to solder together one of my boards last night.

I used a ZIF socket instead of the standard chip socket so I had to make a few modifications to the layout (most of which could have been avoided by using the optional surface mount components instead of through-hole).

I mounted the ZIF socket upside down so that it remains completely within the footprint of the Raspberry Pi.

RasPiO ZIF
R1 would have obstructed the ZIF socket, so I mounted it on the bottom of the board.

RasPiO ZIF

C3 was also under the ZIF socket, I left a bit of length on its legs and pushed it flat.
The resonator was very close to the side of the ZIF socket, a jaunty angle saved the day there.
The LED was completely obstructed, two very short links to the handy prototyping area (directly below) solved that issue.

RasPiO ZIF (bottom)

Standard
Uncategorized

USB to microUSB + powerswitch

I decided to add an external power switch to the T-Rex, to do so I made a custom USB to microUSB extension lead (with an in-line switch).
tmp_7760-20150123_191540-191279085

I cut the insulation halfway along the cable and cut and stripped the brown wire, leaving the blue intact.

The brown was then soldered to the common and one of the switch positions.

I applied hot glue for insulation and mechanical protection.

Next I soldered on the USB and microUSB connections.

tmp_7760-20150123_191529863242178

And more hot glue applied.

 

 

 

 

 

 

 

 

Standard