Categories
Uncategorized

TLBot 4: CameraPi

CameraPi

If you wondered why I needed a Raspberry Pi case that could also hold a Raspberry Pi Camera… well, seriously, don’t you people know me by now!? :)

This ‘CameraPi’ is a prototype for Time Lapse Bot 4, and if you’re not familiar with my time lapse hardware experiments, check out the Time Lapse Bot project page for a good introduction.

My Time Lapse Bots have always relied on old computers, and while you can typically get old computers pretty cheap, they are also, well… old. They run old software, they often have hardware failures, non-working batteries, are heavy, and a lot of other things that are (sometimes) fine, but sometimes annoying.

Enter the Raspberry Pi, a small, inexpensive, low-power, modern Linux computer that can use an add-on camera module to create an all-in-one solution to time lapse captures. This is the kind of stuff I love playing with!

So here’s the story of making the CameraPi. I’ll avoid getting into code at this post and just talk about the process and some applications.

At raspberrypi.org I grabbed the NOOBS install, mainly because I wanted to test it out, and it worked well! I went with Rasbian. I think it had all the camera software baked in, but if not, it’s easy to add.

AppleTalk

Once up and running, I added Avahi to give the Raspberry Pi a nice network name (camerapi.local) and I also installed Netatalk to allow my Mac OS X machines to easily connect to it. Neither of these are required for the camera stuff, but I tend to drop these on most Linux machines I use.

As for the image capture, while the camera utilities have some time lapse capabilities, they did not work for me, which is fine, I created my own. (I should note that the Raspberry Pi is for educational use, so I try to follow that idea and, well, learn a lot while using it.)

I wrote a simple bash script to capture a new image every 60 seconds. You can set whatever interval you like, but I like 60 seconds. For one day that gives you 1440 images, if you’re keeping track at home. Depending on your image size and compression settings that could be over 1GB per day of still images. I’m currently using 1280×720 for my image size, as that works well when compiling video.

Photo

As long as we’re capturing images every minute, why not have a way to display them remotely via a web browser? Sure! I also installed Apache for that. There are lighter HTTP servers, but I like Apache. I wrote a simple CGI script to grab the latest image file and display it on a page… and there’s also a link to all the images for the day. Oh, and the page auto-refreshes so it keeps showing the latest image. (The images are named like so: 20130905140427 using the YYYYMMDDHHMMSS format.)

Files

OK, so we now have this running archive of photos. At some point (like, the second day) you’re going to have way more images in that folder than you want. Another shell script is the answer! Script #2 runs after midnight, grabs the date of the previous day, and moves all images matching that date to their own folder. (Oh, where do we store all these images? On a tiny USB thumb drive. It’s an 8GB drive. We figured filling that was better than filling the SD Card that contains the system.)

Files

Now we’ve got a folder named 20130905 with 1440 images in it. We should probably do something with it… Make a video! Once the files are moved we run a command with mencoder to compile all the JPG files (sorted by name, which is also sorted by date) into an AVI file. I don’t really care for AVI files though, so when that is done (and, it takes about 6 hours due to the high-quality encoding settings I use) we then use avconv (which used to be ffmpeg, sort of, oh, Linux!) to convert the AVI to an MP4 file. That does not take hours. This is all messy and could be done better.

Video

So after all that, we now have an MP4 file we can view in our browser, though it’s a silly MP4 that needs to completely load before it starts. Silly! There must be a better way.

Yes. There must be a better way. I’m sure there is. Here’s the thing. I really just started hacking. I didn’t know where I was going, so it’s all been guessing and trying things along the way. That’s the beauty of it. I’m not building this for a client. I’m not building a commercial product. I’m just playing and learning. I love it.

Oh, I forgot, I also set my capture script to launch at startup as a service. That means it also stops cleanly when you halt the system. Also, you can halt the system via another CGI just by loading a web page. Secure? Probably not. Ideally I’d like to be able to have the Pi create a WiFi network I can attach to from my phone and control. That would be nice. I’m sure it’s doable, I just need to dig in more. Dig. In. More.

Well that was fun! Thanks for reading this. If anyone really wants more info on the code, I could clean it up a bit (or not) and post it. As always, improvements are very welcome.

Update: Here’s an example video.

Categories
Uncategorized

Raspberry Pi case (with Camera!)

Raspberry Pi with Camera

I really like the Stacking Pi Case and I’ve laser cut a bunch of them at Milwaukee Makerspace, including the one I used for my Radio Milwaukee Radio, but when I got a Raspberry Pi Camera, there was no easy way to include it…

Raspberry Pi with Camera

I ended up making a derivative of the Stacking Pi Case and calling it the Raspberry Pi Case (with Camera) because, that’s what it is. I just made the Stacking Case taller and added in some holes to mount the camera.

Raspberry Pi with Camera

So if you’ve got a Raspberry Pi and Camera Module, this case might do well for you, since it’ll hold them both. Grab it from Thingiverse!

I’ll get into what I’m doing with this thing in a future post… obviously it will be related to images, time lapses, web stuff, etc.

Oh, and if you’re wondering why the top of the case is purple, it’s due to some crazy experiment I did with dying wood last time I dyed a bunch of t-shirts. And yes, you can totally dye wood.

Categories
Uncategorized

Major Treat

Ian

If you know me, you know I almost never share YouTube videos… probably because 98% of them are total crap, but sometimes through spelunking or some other method, like tips from a friend, you discover something amazing. This video of Ian MacKaye speaking at the Library of Congress is one of those amazing things.

If you know me, you might watch this and thing many of the things he talks about are familiar. If you don’t know me, watch this and you may get some insight into who I am. Ian touches on things I’ve been involved with for over 25 years (and continue to be involved with.)

Yeah, it’s long, but it’s worth it. I actually ended up transcoding it to audio and listening in the car, but hey, next time you want to watch some crappy movie or an award show, skip it and watch this instead. If you care about history, culture, art, music, documentation and preservation… It’s important. (Parts of it are also pretty funny.)

Categories
Uncategorized

Meetupery Grand Opening

The Meetupery

The Meetupery is a new co-working and makerspace in Sussex, Wisconsin. I was invited to talk about Milwaukee Makerspace for their Grand Opening.

Here’s my slides. They aren’t quite as exciting without my talk, but they may prove interesting.

It’s also on Speaker Deck.

If you’d like me to speak about makerspaces (or Milwaukee Makerspace in particular) get in touch with me.

Categories
Uncategorized

Intelligence Choices

Mushy Soup

I think intelligent people have two choices:

1. Take advantage of people who are less intelligent than they are and profit from them.

2. Teach people who are less intelligent than they are and help them.

Not that the two things are mutually exclusive, mind you. You could certainly do #2 and also make a profit, though that may not be taking advantage of people.

Hmmm.