Puppy K-9

So, remember a while ago I posted about a work in progress? She’s still a work in progress, but while I don’t have full setup for her internal hardware, her chassis did indeed get “finished” in time for ABQ Maker Faire, so here’s a picture of her on my table:

DSC_6776.JPG

This picture care of the fine folk at Quelab. I’ve kind of forgotten who actually took the picture. You can tell it wasn’t me because that’s my elbow in there!

You know how people joke that building ikea furniture together as a couple is the ultimate test of your relationship? Try designing steampunk robots together! With a deadline looming! I think we did most of this in around 2 weeks, although we had batted the idea around for a while.

The germ of the idea was my fault. I wanted a puppy k-9 who would be less hassle to travel with than John’s full-sized k-9 replica, which weighs over a hundred pounds when you include the 3 pelican cases needed to ship him. And I wanted her to be steampunk, because it would break us away from being show-accurate and make her amusingly photogenic. Her job, by and large, is to convince people to come talk to us, although we have some other functional plans for her too! However, it’s a long path from idea to finished project, and I have to say that John did the bulk of the execution while I handled the details — he got the c&c machine to cut out dog panels and engineered it so I could have the wing doors I wanted without compromising structural integrity, while I convinced the c&c to cut out a modified minnowboard logo for the resin inlay, and figured out the hinges and staining. I admit, we might have done some arguing, but we worked her out!

I am quite pleased with the details we managed to get in. I insisted she have ears and a tail because John’s larger k-9 replica still doesn’t have those details. Her tail is a functional USB wireless antenna, and John even inserted a proper usb port into her butt so it’s detachable when she gets packed for travel or so you can plug something else in easily while leaving the case closed. Her ears gave us a different kind of trouble, and we were running out of time until I started digging through the recycling bin and found a pair of 7-up bottle bottoms which I painted gold.

The computer on top there is the Minnowboard MAX, which will serve as Puppy’s brains. We didn’t get it mounted inside until after the show, and you can see the nice laser-cut mounting plate (again care of Quelab; thanks Morgan!) in front of her (it’s the smokey grey piece with all the holes). That’s all inside now, with a whole lot of hardware attached.

More pictures to come eventually, but since she’s gotten side-tracked by xmas present projects, it might be a while before we get back to her!

Winking Microview

With my travel and work schedules, I haven’t had time to hack my original MicroView, but the replacement ones arrived while I was out at ABQ Mini Maker Faire! So of course, I had to try *something* now that I can actually flash things to it.

Here’s my current very simple program: a smile with a wink!

microview_wink

Although it’s probably better with video

And of course, it’s more fun if you can also check out the code so I dumped it into my git repository. Here it is in case you’re not feeling like clicking through:

/* 
 * microview_wink: a simple winking face animation for the MicroView
 * 
 * Created by: Terri Oda 
 * Sept 16, 2014
 */

#include 

void setup() {
  uView.begin();		// start MicroView
  uView.clear(PAGE);		// clear page
  uView.print("Hi Terri!");	// say hi
  uView.display();
  delay(1000);
}

void loop () {
  //drawFace();
  winkFaceAnimation();
}

void drawFace() { 
  uView.clear(PAGE);
  
  drawEyes();
  drawNose();
  drawMouth();    

  uView.display();        // display current page buffer
}

void drawEyes() {
  uView.circle(20, 15, 5);
  uView.circle(45, 15, 5);
}

void drawNose() {
  uView.line(30, 22, 35, 32);
  uView.line(35, 32, 31, 32);
}

void drawMouth() {
  uView.line(20, 40, 25, 45);
  uView.line(25, 45, 40, 45);
  uView.line(40, 45, 45, 40);
}

void winkFaceAnimation() {
  for (int i = 0; i < 7; i++) {
    uView.clear(PAGE);
    
    // animate one eye for the wink
    switch (i) {
      case 0: 
      case 6:
        uView.circle(45, 15, 5);
        break;
      case 1:
      case 5: 
        uView.rect(40, 12, 10, 5);
        break;
      case 2:
      case 4:
        uView.rect(40, 14, 10, 2);
        break;
      case 3: 
        uView.line(40, 15, 50, 15);
        break;
    }

    // draw the static parts of the face
    uView.circle(20, 15, 5);    
    drawNose();
    drawMouth();
    
    // display and wait for the next frame to start
    uView.display();
    delay(500);
  }  
}

The MicroView was pretty easy to get up and running since this machine was already set up for arduino programming, I just had to remember to switch from the Adafruit Flora (what I'd been coding for last) to the Microview ( / the Arduino Uno). I'm pretty pleased with my first run, and even though I am reminded that animation frame drawing is not my favourite activity, I'm happy to have written some code for it, even if it's absurdly simple.

I'm still planning on continuing with the necklace plan for the first of these, so I'm going to work on a few more animations while I decide how I'm going to handle power, shaping, and whether I'm going to want any sensors in the final pendant. My current plan is that I'll create a backpiece that I can embed a battery into (probably 3d printed?), and I think I'd like to stick an accelerometer in there so it can be more interactive. But my plans may change as I fiddle with it!

MicroView: the bad, the good, and the awesome

I backed this cute little thing on kickstarter called the Microview, which is basically a teensy arduino with an oled display attached. It was too adorable to pass up: I’ve wanted a little programmable necklace for a while, and this meant that project would be really easy to build.

My MicroView (Adorable Arduino with OLED display)

My MicroView (Adorable Arduino with OLED display)

I’ve been anxiously awaiting the arrival of the MicroView and it finally came today. So I popped open the instructions page and the first thing I see is a big apology. Uh oh…

So I check my email and sure enough, there’s an email about a big problem. Short version: they sent out a whole pile of units without bootloaders, so it runs the demo but won’t run any new code. Both of my MicroViews, it seems, are in the affected batches. More details here:

https://www.sparkfun.com/news/1575
https://www.kickstarter.com/projects/1516846343/microview-chip-sized-arduino-with-built-in-oled-di/posts/959475

So that’s disappointing, but they’re shipping out replacement units, and I suppose I can wait a bit longer to play. It’s not like I don’t have other toys to play with.

But here’s the super awesome news: it’s possible to dissect the unit and fix it!

So… with a bit of hacking, and assuming I don’t break anything, I may have double the number of MicroViews by the time this is done, and I’ll have had an excuse to dissect my new toys.

I’ve never been so pleased about receiving a defective product. 🙂

In the meantime, I guess I can play the tutorial game:

MicroView running the tutorial "game": Connect a jumper between pins 5 and 8

MicroView running the tutorial “game”: Connect a jumper between pins 5 and 8

My Little Robot

A number of weeks back, it occurred to me that as an adult with disposable income, I could buy a robot anytime I wanted to. So I did. Or rather, I bought a kit to build my own robot. I haven’t had as much time to play with as I’d like (the downside to being an adult with a job), but I’m hoping to take it out to Albuquerque Mini Maker Faire this weekend, so I’ve been experimenting with programs to show it off.

Here’s a video:

Cute, eh? That was just me making sure that the sensor “whiskers” work, but it’s kind of a convenient program because I don’t have to worry about it falling off the table. Right now, I know how to make it flash lights, move the wheels, and make noise with the little speaker on top, so either I should make a box for it to play in and teach it to do basic collision avoidance, or maybe work on a program where people can touch it and have it react, much like the one it’s running now. I’ve only got a couple of days to finish: Maker Faire is the 24th and 25th!