my thoughts and ideas

My first robot

I’ve decided to take on the project of building my own robot. I’ll be doing this in two phases. Phase 1 is simply a wheeled robot that roams around the room randomly, avoiding contact with objects. I’ll be accomplishing this with IR sensors, as well as a Parallax PING))) sensor. The PING))) sensor uses sonar to accurately determine distance, and the IR sensors use light reflection to determine distance. I’ll be using the Arduino (open source hardware!) to control all of my inputs/outputs and logic.

My motor shield kit for the Arduino showed up thanks to Adafruit Industries. This motor shield simply sits on top of the Arduino and has all the “helper circuitry” to control multiple dc motors, stepper motors, and servos easily. Assembly was very simple, and I was controlling a servo in no time. I have 90% of the parts for Phase 1 of my robot now, so I can now start build out. I’ll probably be using a wood chassis, but have not decided yet. I’m waiting for my motors and motor clamps to show up before sketching out the chassis design.

Here are some pics of the motor shield assembly.

Phase 2 will be having the robot be able to detect a human, and attack follow them. I’ll be testing my follow logic first with a color sensing sensor (follows a color), and if that goes well I’ll get a thermal sensor, so I can find humans (and animals) based on body temperature.

Ill make another post once I have more progress.

Build your own HTPC (Home theater PC)

Building your own HTPC (Home theater PC) is a great learning experience for anyone who likes tinkering with computers. This entire project took about 7 hours, and less than $300.00. This can get a little technical, but with a little time and research – it pays off greatly.

My first failed attempt was using my eeePC with Ubuntu 9.10 netbook remix with XBMC (XBox Media Center) running as the interface. It worked, however the lil ole netbook didn’t have the processing power (or real driver support) to play HD YouTube videos fullscreen at a decent framerate. Basically, you get to watch a slideshow of the video.

So I did some research and built a new computer from the ground up to run as my HTPC. The project took me 5 hours of build/install/setup/test time and I was able to keep it within a $300 budget – thanks to free open source software. My final solution…

HTPC Completed project

[Read the rest of this entry...]

Planning game room

I’ve been wanting to turn my spare bedroom into a gaming room, so I took all the proper measurements and came up with a few layouts. My favorite is #3. Note that the fridge is in the closet, and Id probably remove the door.

Google Calendar Syncing

Today I was setting up my netbook as a community computer in my kitchen, and was thinking what I would be using it for. One of those things would be to check and update my calendar. So, I decided to use Google Calendar and was happy to see that all the sites I keep events/calendars on support exporting their data in a compliant format to be displayed within Google Calendar.

Now, while leisurely in the kitchen, I can check my Google Calendar which now has feeds from meetup.com, facebook.com, highrisehq.com, and of course Google Calendars own events. I was also happy to see these all sync with my G1 Android device.

Basic Algebra

Had this discussion with my girlfriend Kathleen tonight, and thought others may enjoy the humor in it.

(03:39:12 PM) Kathleen: i’m bored ;_;
(03:39:29 PM) Nathan: 2.25 more hours
(03:39:38 PM) Kathleen: :/
(03:39:40 PM) Kathleen: yeah
(03:39:44 PM) Nathan: 2.33 sorry
(03:39:49 PM) Kathleen: no
(03:39:57 PM) Kathleen: 2.20
(03:40:04 PM) Nathan: fuck damit
(03:40:05 PM) Kathleen: oh
(03:40:05 PM) Kathleen: fuck
(03:40:06 PM) Nathan: yea
(03:40:07 PM) Kathleen: wait
(03:40:08 PM) Nathan: waiy
(03:40:13 PM) Kathleen: waaaaiyyyyyy
(03:40:26 PM) Nathan: 20 more mins, 60/20 = 3, so 1/3 = .333333
(03:40:32 PM) Kathleen: DON’T DO MATH TO ME
(03:40:36 PM) Nathan: BOOMMMM
(03:40:40 PM) Kathleen: :[
(03:40:43 PM) Kathleen: i want a hug now
(03:40:48 PM) Kathleen: and you’re not here to give me one
(03:40:51 PM) Kathleen: SEE WHAT YOU DID?
(03:40:55 PM) Nathan: but
(03:41:00 PM) Nathan: go back
(03:41:05 PM) Nathan: -reset-
(03:41:09 PM) Kathleen: no :[
(03:41:20 PM) Nathan: you dont like math?
(03:41:25 PM) Kathleen: i like algebra
(03:41:34 PM) Nathan: that was very basic algebra
(03:42:05 PM) Nathan: yes dear
(03:42:12 PM) Kathleen: exactly :3

Roaming DNS

Recently I was setting up my home desktop ubuntu box to allow remote ssh connections. I got it all working, except ran into a problem when trying to access it from outside my local network. My ISP uses dynamic IP addresses. I have no way of knowing when my IP changes, and even when it does – I have no way of finding my pc on the internet. So I was thinking about pointing a domain name, but I need some sort of process running on my local machine that monitors its internet IP address and makes the necessary DNS changes automatically. There has got to be an easier way to do this…

Community Photostream to digital picture frames

After I upgraded my desktop and netbook with ubuntu 9.10, I started playing with their new Ubuntu One service. It allows you to share files across multiple computers over the internet, with automatic syncing. So, I created a folder called slideshow and shared it. I can now add photos to this slideshow from any computer and it syncs with all of them. How do I use this in a real world situation? A community photostream for digital picture frames. I don’t have a digital picture frame, so instead I configured the screensaver on my netbook to read from this folder. Now I can share this folder with close friends and they can add pictures which automagically start playing on my screensaver.

This could get interesting if this becomes mainstream. Imagine it being used in an office enviroment where employees can upload photos and their streamed on the walls at the office.

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

I’ll keep this here, for timestamp purposes.