I was poking around in my blog, and there were some things I needed to change. First off, I needed to move my theme modifications to a child theme. This took some figuring out as the creator of the theme used the get_template_directory_uri function when registering the style with WordPress as opposed to the get_stylesheet_directory_uri which allows the child theme to overwrite. I have this figured out though now, so I can start making modifications to my child theme, and still be able to keep up to date when the parent theme gets updated.
Also, I wanted to move the site’s primary URL to be blazicevich.net, as I feel it is a more professional address. Sadly, WordPress did not like the change, so I figured it would probably be easier to restart from scratch instead of trying to figure out all the various settings I would have had to play with to get the primary URL to change.
Unfortunately, I didn’t backup the database before uninstalling WordPress, and my host’s automated uninstall process wiped out the database too. I still have a siterip from before the updates, and a Google cache page for the content of the posts (http://webcache.googleusercontent.com/search?q=cache:wcUoJUwTTMkJ:jimmyblaze.net/+&cd=1&hl=en&ct=clnk&gl=us) so I will probably restore some of what was there before.
So, towards the end of my project last year I neglected this blog. I planned to ditch the race car base I had built my car on and replace it with a more appropriate rover type vehicle, but I didn’t get time before the semester was done. When I found the Rover 5 Chassis at Sparkfun Electronics, I knew that I had to buy some mecanum wheels and make an Android powered rover that can, well, drive sideways! Not only does it look awesome, but it is much more maneuverable. You can see it in action below:
The last blog post I made didn’t even mention that I ended up making my application a service that runs in the background, so the user can choose any video chat application they want. I also built a Skype Handler into my prototype app so you can launch Skype directly from the app that launches the server that controls the IOIO. I ended up working pretty well, but the steering and suspension were for that of a race car, not a rover, so I am glad I finally upgraded.
I still need to make the pan/tilt bracket for the device controlling the rover, but I am considering making something more generic than my last version. (It was updated from the flimsy version in the video below, but it was still very specific to the first Droid). Perhaps this would be a good excuse to spend the $199 on a Nexus 7? Perhaps…
Alright, so my independent study Android car project has come to a point where I have a fully functional prototype! I was able to incorporate some open source virtual joysticks that I found on Google Code (Joystick View from Mobile Anarchy) and calibrate the servos and speed controller so I have control over driving. I still seem to have occasional issues with the remote program crashing on first launch, and after longer a duration of use I still seem to experience a rather annoying UDP lag that never seems to occur within the first 15 minutes, so there is still some troubleshooting to be done. However, I am pretty excited with the results that I have been able to achieve so far. Below is a video of the dual joysticks controlling the car and pan/tilt bracket over the wireless network:
I also renamed the project (AndroidCarServer and AndroidCarRemote) so the package name is more suited for the Git workflow. I made some long due commits to the projects, as I feel my code is at a point now where I can share it with others.
The next step in the project is to now focus on the video streaming, the area that I expect to be the most involved as far as the software is concerned. I expect for the endeavor I am going to have to consult the masses of Android developers living in different forums and communities across the internet. It has always been a goal of mine to start an open source project, so here we go I guess!
So, I didn’t end up posting a progress report to the blog every Tuesday like I was planning on. Not that big of a deal though, because I still got a fair amount done. Between my last post and now, I have made two stand-alone Android applications that communicate with each other over a simple UDP connection. They are very rough around the edges, and I know there is some functionality that I will have to implement that I haven’t even considered yet, but the basics are functionally complete. I also made my first commit of the code to Github, so I can at least link people there when I am asking for help or just showing people my code. You can find the Github page here!
In addition, I have made a great stride on hardware. Thanks to the kindness of the MSU ECE Stockroom, I was able to produce a one off “IOIO Shield” so I could connect the servos to the IOIO without the need for a breadboard. I have also fashioned a pan/tilt mount for the Droid on the car, with a large wooden base that provides plenty of area for something like ultra-sonic rangefinders if I end up including them.
My primary goal for the next update is switching from to Android default sliders (which are pretty unusable for driving) to a custom dual virtual joystick view. I have found a wonderful Google Code page where a group called Mobile Anarchy posted their source. http://code.google.com/p/mobile-anarchy-widgets/ In addition to the virtual Joysticks for driving, I need to gear down the car if possible (it is way too fast at the moment), research more about VideoViews and the possibility of laying the dual joysticks on top of one, and make sure that my UDP threads run in such a way that they can be stopped without force-closing the program.
This semester, I wanted something to work on that I would actually be motivated to work on, without the tedium of homework and tests. Something I could earn credit for that I was actually interested in. So I put together a proposal for my robotics professor (see the “Looney the Robot” link in the right bar) and got approved for an independent study course. After I complete the prototype with networking and video, I intend on developing a shield PCB for the IOIO microcontroller, along with a plastic shroud, so I can sell it as a unit in the form of a fundraiser for the Gallatin Valley Robitcs Center.
There is a lot of work ahead of me, with bi-weekly updates along the way. To make things easy, I am just going to submit my progress reports to this here blog. My first report is scheduled for two weeks from my first day in the class, on 9/11/12. Be sure to check it out, as I intend on hosting my source and other relevant files on github.
Below is a video of the status of the prototype at the time it was approved for independent study:
Today, one of my friends was in from out of town and we decided to play some old-school Nintendo. There was one particular device that I hadn’t used it years, and I’m happy to report that everything functions, no matter its 22 year old age. May I present to you the first Nintendo wireless control system, the NES Satellite:
I had a brilliant idea while I was playing with this thing today. Basically all it is doing is converting the NES Controller signals into IR transmissions. I could easily get an IR photo resistor for my spare Arduino and hook this thing up as a controller for any matter of robot! Obviously this is going to have to be my next project, and no doubt, I will document all the badassery right here. Stay tuned.
The other night I was setting up my Barmonkey so me and a friend could have a couple drinks. I got everything poured out and put together, went to pull the first drink and… nothing. I immediately asked myself the first question any nerd asks themselves when presented with unruly technology: What changed since the last time it worked? I looked around in the code and it was all the same, I checked the com ports and they were all the same. It had to be something physical that was causing my problems.
Next I pulled out the control box and my multi-meter and started poking at the Arduino. Is it getting 5V from the USB? Readout was 4.96V, normally in safe and predictable Computer Science land that wouldn’t fly. But this is hardware, in the real world 4.96V is exactly what you would expect, things fluctuate in reality after all. So I check the 12V supply to the solenoids, 13.4V is fine. Everything is getting power, so what could it be? Perhaps the solenoid valves are clogged? I pulled one out and took it apart, ran some water through it and proved to myself that there clearly was not a clog. I hooked everything back up and listened closely, and indeed I could here the solenoids opening and closing while the bottle was clearly under enough pressure. There has to be something, perhaps something pretty gross I imagined, caught in the tubes.
And then it dawned on me. I took the liquor out of the FREEZER, and promptly put my intake tube inside of it. Last time I used the Barmonkey, I cleaned out the hoses with warm water, no doubt there was still some left in the tubes. So I pulled the intake tube out of the Vodka and yuuuuuup, it was frozen solid.
So, lesson learned. If I want to keep the Barmonkey’s booze in the freezer, I better make damn sure that the intake tubes are free of moisture before hand. By the time I had figured it all out I needed a drink, but my tubes were still frozen. I had to settle for drinking the old boring way, by pouring it myself. So sad. So very sad.
No longer do I have to struggle with my keys in the dark! Never again will I trip up my stairs in the pitch black! From here on out all I have to do is whip out my Droid 4, hit a bookmark on my home screen, and tap the on button.
I have had a handful of X10 modules for years. Back in my freshman year of college I purchased one of the X10 Firecracker kits so I could turn on and off my bedroom lights from my desktop. In the past I would set them up for a while, use them for a few days, and then they would invariably fall out of use as certain quirks made it not worth while. With X10 plugin lamp modules and socket rocket modules, the physical light switch must always be left in an on position in order to control the lights the modules are connected to. Being as most everyone flips light switches without thinking twice about it, half of the time I could not remotely control the light past the switch. Not to mention the software that X10 provides is extremely prone to crashing, rendering their system uncontrollable until after a reboot. Thankfully some third party command line software is much more stable.
All of these issues were solved however when I recently purchased a X10 wall switch. Now I can flip the switch manually if I please and still control it from afar. Not to mention it gradually fades the light on and off for a much more classy feel than the instant brightness or darkness of a regular switch.
Currently, the only issue I foresee is the occasional friend or random blog visitor flipping on and off my light at random for the hell of it. Perhaps someday I will feel motivated enough to password protect the switch page, but for now I will just have to trust that, you the visitor, isn’t a dick. You aren’t a dick are you? Good, we’re done here then.
Well, it was back in October of 2011 when I put this WordPress installation onto my site and then it sat half finished until now. A couple weeks ago I erased my whiteboard and wrote up a new to-do list. Getting my website in working order was on the list. So here we are!
So, as you browse around the blog, feel free to let me know if you find anything that seems broken or ugly. While I was convinced that WordPress was too bloated for my needs I’m turning out to appreciate the functionality in this latest version.
Oh, and while you are at it click on the “Nolat” link in the sidebar over there. Most of the reason I decided to actually work on this blog is because of my friend Talon Daniels who recently got a blog of his own up and running. Instead of a content management system like WordPress, Talon is using Jekyll, which builds a static site based on plain text file submissions to a repository. Pretty cool stuff!
Well, my buddy Lex was working on a website of his today, and it inspired me to actually put some work into mine. If you have a second, go check out his Kendama store atwww.kendamaco.com
Perhaps having a central base to document all my projects will assist in motivating me to bring some of the ones on the backburner to fruition. And I will have somewhere to send people when I tell them about the awesomeness of the bot cave, which can only be a good thing.
I like to consider this blog to be the home for documenting all of my projects and progress in the fields of robotics and computer science. I felt when telling people about what I do in my spare time I needed a link to send them to. This is it. Enjoy!