Voice Page Down

Voice Page Down

I asked my friend Steve, when he injured his spine, what would make his life easier.  He didn’t have to think about it.  The biggest thing he missed was the simple act of reading a book.  It gives me great pleasure to make his recovery more bearable in this small way.

IMAG0025

The first solution was a simple blue button that send the ASCII code for “Right Arrow” over bluetooth.  We called the project “Page Down”.  He was able to press the button with his forearm and was finally able to read books on his Kindle.  YAY! But occasionally the button would be held too long and cause multiple pages to turn.  With no back arrow, this was a major nuisance.

We also got Steve an Amazon Echo that he got to test the same day as “Page Down”.  The Echo responded well to Steve’s voice commands which allowed him to tune in pod-casts, and listen to music and radio.  That gave me the idea for a voice actived page turner.  Thus Voice Page Down (VPD) was born.

We live in a magical time.  VPD would have been a huge undertaking 10 or even 5 years ago.  Today, it is practially a drag and a drop.  The bulk of VPD is an Arduino Shield stack: AlaMode for the micro-controller, EasyVR for the voice recognition, Power Boost Shield for power management, and finally the Bluefruit EZ-key for the Bluetooth communication.  The whole project took a week of spare time including the enclosure.  Now it is ready to share.

Voice Page Down_annotated

If you are still reading, you might be interested to pick up on some more details.  The enclosure is assembled with the WyoLum Lada system.  Lada combines 3D printed corners with laser cut faces to make custom enclosures.  An early Lada design included a PCB notch out to hold a PCB like a stand-off.  Since most PCB’s have mounting points, this turned out not to be all that useful.  But in this case, it was just what the doctor ordered.  The AlaMode usually relies on a host raspberry pi for support and only has a single mount point.  The specialized Lada corners worked perfectly, supporting three of the four PCB corners.  Components on the fourth corner disallowed any Lada, so we just left it off.

The other cool thing is the custom speaker mount.  Amazingly, the speaker did not come with any mounting system.   A tiny OpenScad script added a ring to 4 Lada corners and walla *

Screenshot from 2015-05-17 15:55:28

Panel mounted buttons and switches would be a nice upgrade.  But perfect is the enemy of good enough, so I just provided access with panel cut outs for the Bluefruit pariing button, power switch, reset, and usb charging port.

IMAG0138

 

All design files and code are available on github.

Evolution of a Gear-Clock

News Flash: I love to make things.

The explosion of home use fabrication technologies has given modern humans powers, god-like powers that we could only dream of even 10 years ago.  Digital design and fabrication are now accessible to practically everyone.   Those that do not have fabrication facilities at home can use services like Shapeways, 3D hubs, Oshpark, and Ponoko. to fill the gap and create practically whatever they can dream up.  What are you doing with your god-like powers?

I’ve been asking myself this same question lately and it turns out that I use them to make clocks.  Funny thing is I’m not really a clock person, but I know that I need to learn how to use these tools: 3D printing, laser cutting, circuits, and clocks seem to be the go-to target for my aspirations.

This led to ClockTHREE and ClockTHREEjr word clocks and also a Kandy, a two-sided race timer.  But none of these clocks have moving parts.  I figure I need to understand mechanical issues to really employ my god-like powers when inspiration hits.

Motivated by clocks like this one from Brian Wagner I set out to design my own version of the gear clock.  GearClock1.

Screenshot from 2015-03-01 10:33:49

Like Brian’s clock, the hour wheel rotates indicating the hour at the top.  Unlike Brian’s clock, and others, this clock uses a idler gear to push hour ring out to the radius of the minute hand.  The parts are a made with laser-cut acrylic and 3D printed PLA.  A single hand is attached to the drive axle to indicate the minute on a stationary disk, concentric with the hour ring.  AlaMode, which comes with a DS3231 real time clock, was used in conjunction with the Adafruit motor shield to control movement.  Blue accents really make this clock pop.  But the clock had mechanical issues and would bind up frequently.

I realized that if I replaced the idler gear with a planetary gear, It could drag an hour hand along for the ride like a normal clock.  GearClock2.

GearClock2

GearClock2

After first getting the gear ratio wrong (how many hours in the day are there again?) I got it right.  Kevin Osborn jazzed up the design with some sick filigree hands and taught me how to draw in InkScape and import into OpenSCAD.  He also printed all of the many iterations of gears on this and previous clocks.  Thanks Kevin!

The clock looks pretty basic, and it is, but remember my goal is to learn mechanics and I learned a lot with this clock.  Form follows function.  I take that to mean, first make it work, then worry about how it looks.  It can also mean: make it work really well, and its shape will appeal.  We are getting there.  The good news is this clock really works.  We have it set up on a hutch in our kitchen and use it every day.  But I have to admit, the shape is a little awkward and the electronics are unsightly.  The cheap 48-step motors tick every 75 seconds, which is more than frequent enough for a wall clock, but we can do better.

GearClock3 is the same basic mechanical design with a 200 step pancake motor and electronics housed in a separate box.

IMAG0662

An Arduino pro-mini, a Pololu stepper driver, and a Chonodot make up the electronics package.  I really like this stepper driver.  It is very easy to use: set the step pin to HIGH to move forward one step.  No complex driver software is required.

Aesthetically, this clock has many of the right elements although a flash of colored acrylic would really make the numbers pop.  Everyone loves GearClock3, but the first thing they ask is: can you do seconds?

GearClock4 adds a second hand.GearClock4

I’ve come to appreciate the difficulty of the standard hour, minute second clocks: Three concentric hands driven at three rates with a ratio of 3600:1 between the hour and second hands.  A 12:1 ratio was already working with the planetary gear.  The 60:1 ratio was solved by using two reduction stages that take the motion off center, then back on.  After several experiments with the gear lash settings, I finally found a combination that works well and makes a pleasant tick (not too loud).  One issue is setting this clock.  You have to fast forward the second hand, which means you’d like to move the seconds hand as fast as possible.  This second hand can turn a complete revolution in 0.2 seconds which means it can fast forward though twelve hours in less than two and a half minutes.  A sealed bearing on the reduction gear allows this and should work for years to come.

What’s next?  Anool is working on a custom circular PCB that will that will bring the electrics up to par with the mechanics.   The PCB will host the real time clock, an Arduino compatible ATMEGA328, hall effect sensors to detect hand position, and a DS3231 real time clock, and GPS unit for time synchronization.  Stay tuned to our GitHub repo for updates….

DSCN9935

AlaMode works on the New Pi 2

ICoutesy Element 14

I grabbed a couple of the Pi 2’s as soon as I could, and started testing with AlaMode. First, the new Pi 2 is quite snappy, even the web browser is quite useable. It should be a marvelous platform for your IOT projects! Especially with AlaMode.

It has the same form factor as the B+ so you have to plug the AlaMode’s shorter GPIO connector into one end of the header, and the board overlaps the connector end of the Pi by a few millimeters. I recommend putting some electrical tape over the metal cans of the connectors to keep from shorting AlaMode’s headers.

Because the Pi 2 has a new processor, the GPIO base addressed changed, which makes us update our patched version of avrdude. (needed because standard Arduinos use serial ports handshaking to toggle the reset line, we use a GPIO pin)

Though there’s not a lot of doc out on the Pi 2 (it’s mostly completely backward compatible) the helpful folks on the Raspberry Pi forum gave me all the info I needed, including some code to detect which version of Pi you are running on.

Get the new setup here:

wget https://github.com/wyolum/alamode/blob/master/bundles/alamode-setup.tar.gz?raw=true
tar -xvzf alamode-setup.tar.gz
cd alamode-setup
sudo ./setup

Note if you haven’t already, you’ll need a new version of Raspbian that supports the Pi2, plus installing Arduino before running the setup above.

MakeSmith CNC – It’s Alive!

Well, the beast is finished, but not without some hand wringing…I had to redo some of the z-axis as it was too tight for the servo. Turned out that some superglue had bound the lock nut to the bushing in the MDF, so a little brute force to undo and re-setting did the trick. I also took a needle file and smoothed out the holes in the z-axis carrier so it was smooth traveling up the guide rods. Silly me also put some of the bottom supports in the base the wrong way round so the guide holes for the wires were on the opposite side of the machine…no big deal really as I just drilled some others on the other side… There’s a forum over on the MakeSmith site for all of us Beta-testers putting the machine together and the issues we face and solve (eventually!). That’s one of the great things about projects like these, and Open Source Hardware in general, there’s plenty of like-minded and helpful souls out there with good advice. One such person posted a really ingenious way to smooth the travel of the carriers on the guide rods and that proved very useful. Pulling the rods out one end with everything in place and using a drill to rotate them to help smooth the guide holes really helped get everything working smoothly for me…a great tip! Here is the completed CNC with a dremel in place…

IMG_3009

 

I’m running this with a Mac and the Ground Control software has a few issues at the moment, most notably random crashes that disconnect the arduino from the computer. Bug reports have been filed, but until the software is a little more stable, then I think cutting anything too complicated may have to wait..There’s also a small issue with the other servo’s jittering a tiny amount whilst another axis moves…not sure what’s going on there, but again I await comment from Bar/Tom on the forum who seem to be on-top of answering everyone’s questions!

Here’s a small video of the machine in action doing a few simple movements (apologies for the somewhat amateurish camera work…).

CNC Snippet