Tamiya Robot Platform

March 18, 2012

Last January, I dropped by SM Megamall and while waiting for paomeow, I saw a hobby shop that sells Tamiya models. When I got in and while exploring around, a wild Tamiya gearbox assembly appeared. I suddenly got one and also looked around for some mounting solutions around and luckily found some Tamiya Base Plates and also Tamiya Tank Threads. I was thinking that it could be a good low cost platform to build tank like robots that is configurable rather than preset robot platforms like the Rover 5 platform. The prices are a couple of $ cheaper than what you will see from the Pololu links I gave above. When you add them all up, it is way cheaper than preassembed robot chassis, and of course it is Tamiya and Tamiyas are very durable and light.

Here is a picture of them together:

01 set

The gearbox is assembled first:

02 gearbox

Chassis done, this is still a lot of space! the good thing here is that the thread length is adjustable, you can make your wheelbase shorter if you want a smaller robot. The shot below is the longest wheelbase the set has. You can see it form the scale of the motors.

03 chassis

Underneath, you can mount the axles lower so the robot can have a lower center of gravity. Again, you can configure this any way you like.

04 under

I installed the other plate on top to give room to the electronics. The first plate can accomodate a 9v battery pack to power the electronics, apart from the high capacity motor batteries that you can place on top.

05 top plate

The inside of the chassis, enough room for batteries.

06 inside

And of course, it is not complete withough bear testing it!

07 bear bear

So if you are looking for a low cost and configurable robot chassi solution, you can get these Tamiya sets. The best part of this is that you can connect as may sets as you want, if you are to make a really long or wide robot platform.

;

After a while…

March 18, 2012

It’s been more than 2 months since my last post here. Sorry. Well what happened during the past 2 months were: I was assigned to Cebu for 1 week to teach Object Oriented Programming; Me and my girlfriend traveled to HongKong, saw Pandas and Disneyland; I had my Apple Developer program expired at for a short time my provisions expired too (ha! good timing); and I was doing side work with paomeow. During my day job, I had also been busy looking at some technologies that are still not being used over some older technologies:  demo-ed them SignalR instead of using polling AJAX for an internal chat application; shown HTML5 canvas using processingjs; discussing HTML5 localStorage to decouple a web application from using local Microsoft Office applications; and also doing some small tutorial sessions for CSS3. It has been a hectic 2 months for me and thank God, it was rewarding, for both me and my girlfriend.

I think there will be a lot to write starting today. I’ll start off with a WiFi project next post.

Panda

The best part is that we saw panda up close!

;

Hello again Moto…

January 6, 2012

 

I had my old mobile phone repaired in Greenhills. As I don’t want to tinker with it myself, I gave its fate to the professional technicians there. It turned out to be that the problem again was the battery. It has not been used for so long and the battery had not tasted juice and ran dry already.

Why did I had this fixed? I was thinking of trading it for a Nokia C7 or a Nokia 701 to lift some off the cash out but I think it will barely help because it is really old. It also had some of my girlfriend’s messages there from some 4 years ago when we were just saying “i miss you” even if we are inlove with each other already but holding it back. So I decided not to sell it. It is also Tron-like phone with the blue glow, and I like Tron.

l7

Aaaah nostalgia, this was one of the thinnest phones in its time

So what is it’s use now? It will now be a project! Considering that it is a very old phone, I tried my luck to search if Motorloa L7s support serial commands and I had a few hits only because I was looking for “Motorola L7 serial commands.” I tried “Motorola AT commands” then there they are! Tons of documents about the commands. Well they are called AT commands when in mobile phone lingo.

usb l7

Motorolas before are the one of the few that uses mini USB and not some proprietary cable

I tried it on Mac OS X Lion and it just worked. It is instantly registered as a modem. But I would like to try it on some .Net serial project so I plugged in on my Win7 machine. Of course being Windows, drivers are needed. So I found the Motorola drivers and installed them with excitement.

image_thumb2

When the balloon popped out, it felt good. Yeah.

Then I looked for it’s entry in the Device Manager.

image_thumb3

Just to check on what port it is, right click on the entry on the Device Manager and click on properties. It is registered as COM4 on my machine. Hmmm.. COM… means SERIAL!!! Yeah!

image_thumb7

I used CoolTerm from http://freeware.the-meiers.org/ to try out communicating with the phone. If you are on Windows, you will have to set up the terminal settings as below so you can see what you are typing and send the command as one line instead of per byte or character when you press enter key.

image

Terminal Mode: Line Mode; Enter Key Emulation: CR

I found some AT commands in Wikipedia and tried them out. The first one is to list what commands that the SLVR supports. You can do this by:

Command:
AT+CLAC

image_thumb14

Then it will list out all supported commands. I was not satisfied with the wiki entry so I searched for more docs and found a detailed one below:

http://www.phys.unsw.edu.au/~mcba/iridium/Motorola_AT_Command_Set.pdf

My goal was to read the messages there, so I tried to follow some commands like setting up which memory to get the SMS first – AT+CPMS?:

Command:
AT+CPMS?
Returns:
+CPMS: "MT",94,254,"ME",0,254,"MT",94,254
OK

Each of the MT, ME and ME there represents the kind of storage. The documentation says it can only configure SIM storage. But you can run the command above just to check. The string above can be dissected into 3 storage locations:
”MT”,94,254 = means there are 94 messages in the inbox
”ME”,0,254 = means there are 0 messages in the outbox
”MT”,94,254 = means there are 94 message in the inbox, but I think it also refers to where the unread messages are dropped.

Then we can get the list of messages AT+CMGL=1. You can refer to the documentation above on what the =1 means. But in short each means:

0 = received unread message (i.e. new message) (default)
1 = received read message
2 = stored unsent message (only applicable to SMs)
3 = stored sent message (only applicable to SMs)
4 = all messages (only applicable to +CMGL command)

Command:
AT+CMGL=1
Returns:
…. many messages listed …
+CMGL: 3082,1,,143
<long cryptic octal messages, PDU format>….
OK

Then from the list I picked out a message index, in our case above, it is 3082. Then we can try to read that message!

Command:
AT+CMGR=3082
returns:
+CMGR: 1,,143
<long cryptic octal messages, PDU format>….
OK

I was able to list out the messages but they were returned as some cryptic code known as PDU. So what is PDU anyway? I got it from here: http://www.dreamfabric.com/sms/

But it is waaay too complicated!! So I looked around again and found a documentation from ATMEL referring to changing the return message format to TEXT. The documentation can be found here:

http://atmel.com/dyn/resources/prod_documents/doc8016.pdf

Now let us try to format the text! The command was AT+CGMF, and take note that it is also on the Motorola AT Command document. Silly me I did not look around for this command in there. But let us check the status first:

Command:
AT+CMGF?
returns:
+CMGF: 0

OK

0 means that the format is PDU.

And now let us set the format to text!

Command:
AT+CMGF=1
Returns
OK

OK!

We can now repeat our read message command:

Repeat command:
AT+CMGR=3082
Now returns:
+CMGR: "REC READ", "+<sender’s number>", "2007/1/28,11:6:14"
‘Fear not….
you are mine. When you pass through the waters,i will be w/ you;&through the rivers,they shall not overflow you.’-isaiah 43:1-2
OK

Cool! We can now read messages from the phone! Sending the message is fairly easy too. I think I would do that next time. We can just follow the documentation and it is pretty straightforward to let the phone do amazing things. You can even send the command through Arduino and serial if you have one of Sparkfun’s USB Host shields. Luckily enough, from the examples we can find from the product page, Oleg uses a Motorola RAZR – and my SLVR is a very close brother of the RAZR. Coool! Means that this phone, when I bought it waaaay back, has a fate to be used in some amazing project even in times of smartphones or whatnot.

I hope it helps!

;

At Loooong Last!

December 30, 2011

At last! Volkswagen is brought to the body shop to get its long awaited makeover! It will be there for 2 months and after that, its time again for me to get back to being a gearhead!

The shop panel beaters has their work cut out for them because we had 80% of the body already stripped to metal. The green sealer primer is where I have left off. The yellow paint hides nasty stuff like body fillers and rust. We did the roof first and the other fender panels before because I would like to see personally what is underneath. I stopped working on it because I SAW A LOT already. Now it is off to these true professionals to handle the rest.

VW 01 copy

The “two tone” green primer was due to the rain. It was not covered properly for a looooong time too. My bad. But it is good to see that there is no rust there from the long days it spent not being taken care of properly.

VW 02 copy

I’m excited and it will take two months. By then, I hope I have not forgotten the wiring diagrams I poured a lot of time to map when I was tearing them apart.

;

Shuffle Bot

December 25, 2011

First of all, Merry Christmas to you! I hope you had enjoyed your holiday celebration! For us, we had barbeque and lasangna (c/o my Mom and Dad) and it was a very simple celebration. No party or something. But there were Christmas parties from the past weeks and last December 15, it was a hat party and was held in Elbow Room @ Metrowalk.

I had the time now to document what I wore for party, and after thinking between making a Daft Punk helmet or an LMFAO Shufflebot, I chose to make the Shufflebot because it is a party hehe and also the Daft Punk helmet is more complex to do.

I was not able to document how to make the box itself, but you can refer to some from Instructables. My materials were: a rigid box; black stockings; red plastic envelope; and gold foil, it is because I wanted to make it shinier. The coolest thing about this is that the LEDs respond to the ambient sound! It responds to sudden loud beats or the music. The threshold is adjustable too using 2 potentiometers. One for adjusting the cut-off for the minimum input volume and the other one is for the minimum peak volume (hmm sounds confusing) for the “peak” effect to work. I got the LEDs from 2 busted LED flashlights that I used as props for some other project and they have this “normal” or “brighter” setting which just turns on another bank of LEDs.

Sorry for the blurry image…

01 Shufflebot

I will focus on the circuitry for the Shuffle bot because it is the “cool” aspect of this build. Though I made the circuit in a rush and picked up some parts randomly. I did not even consider how the potentiometers will be used properly but, what the heck they worked.

Lets start!

First, what I needed were:

  • 2 LED flashlights, the ones I used exactly look like the ones below. If you are in the Philippines, you can get them on the peddlers in the MRT stations and you can buy them for Php200 (about ) if you haggle.001751884 cimg0883
    From some random image I found on Google image search.
  • Seeeduino or any Arduino
  • Half Breadboard
  • Some wires
  • Hookup wires
  • 2 potentiometers (I sort of got some random ones, the ones I used were 50KΩ)
  • Seeedstudio Grove Sound Sensor though the one below is the bigger one which I found on the wiki site so you can see the connections clearer.
  • 4 AA size Battery holder
  • 4 AA batteries

Below are the LED lights that I have salvaged from the flashlights. There are 6 rows of 2 LEDs and when the flashlight is on the “normal” switch, then only rows 1, 3 and 5 are activated. When it is on “brighter” mode, then all of the rows are activated.

03 Flashlights

I wired them to the Seeeduino and tested the 2 LED banks

04 Wired

Yeeeaah pimp my breadboard! The clear breadboard is really cool when lit. The image below is totally not related to the build.

06 Pimped

I originally used a mic I found on one of the Avaya phones junked here, but I opted to use the Seeedstudio Sound Sensor to make things easier. It is because the original circuit has a simple transistor amplifier on it and I was not planning to put this on a protoboard anyway.

05 Supposed to be

So I used the one below instead. I used one of the Grove JST connectors to wire them directly to the circuit. I did not use the Seeedstudio Grove base shield but if you want you can do everything using the Seeedstudio grove components. They have potentiometers too.

Bd457f356c9a295d5c97f61dd70cf791 image 300x225

(image copyright of Seeedstudio)

Below is the top of the box with the Sound Sensor and the 2 potentiometers sticking out.

07 2pots and a sensor

Below is the circuit layout for the build. The 4 LEDs below are there only to illustrate how the flashlight LEDs were connected to the circuit. One flashlight LED circuit board has common ground for both the LED banks and I made one bank respond to the peak level and make them light to the full 5V. The other LED bank displays the ambient sound value which is sent to analog PIN0. There was an on- board potentiometer on the Sound Sensor too, I could have used that anyway hahaha. But I complicated and confused myself because the original circuit was not for the Sound Sensor. You can use that potentiometer too instead of the extra one. So you can connect  the YELLOW wire from the Sound Sensor to ANALOG PIN 0 on the microcontroller board.

(click on the picture for larger view)

Circuit

The output for the ambient sound level LEDs are on analog PIN2, they just output the same voltage from the analog PIN0. Analog PIN4 is connected to the potentiometer and accepts reference voltage for the “peak” level for comparison to the ambient sound level. Digital PIN13 is connected to the “peak” level LEDs and they just turn on and off when the peak level is reached. When it works, it will look like a cool flicker effect when the sound reaches above the reference voltage supplied by potentiometer 2.

And yeah if you are an electronics expert, you can do this all without a Seeeduino using some amplifiers and comparators, pure analog!

Below is the code, really simple. You may read on the inline comments:




int micValue=0; // output from grove sensor + pot 1
int controller=0; // reference value for voltage

void setup() {
  pinMode(13,OUTPUT);
}

void loop() {
  // read the grove sensor from analog 0
  micValue = analogRead(A0);    
  // read the level controller pot 2 value (mic level)
  controller = analogRead(A4);
  if(micValue > controller) { // compare reference voltage
    if(micValue > controller+90) {
      // write HIGHS on all LEDs
      analogWrite(A2, 1023);
      digitalWrite(13,HIGH);
      // just wait 10ms for flicker effect
      delay(10);
    } 
    else {
      // read the actual mic value with pot 1 and output same voltage
      analogWrite(A2, micValue);
      // do not light the other LEDs if level is not reached
      digitalWrite(13,LOW);
    }
  } 
  else {
    // turn off if volume is not enough
    analogWrite(A2, 0);
  }
}

As you can see, it just compares the peak level voltage from analog PIN4 to the current sensed voltage from analog PIN0. When it is reached, it just maxes out the output for analog PIN2 and sets HIGH to digial PIN13.

Below is a video of it in action:

I was called on stage but I did not win. You know what won? A guy wearing a chamber pot (in the Philippines, this type of pot is used as a mini toilet and is called “arinola”). Obviously it has no effort into it and I think someone deserved to win really, a dude who made a replica of a Gundam head using only cardboards. It is really high quality, if I can find a picture of us on the stage, I’ll post it here. And no, I am not bitter. It is just a tradition here in the Philippines that the funny guy gets the awards and contest judging is solely based by clapping.

I hope you’d make one too and have a Party Rockin good time!

;

Christmas BBQ

December 24, 2011

Not much to do during Christmas, but we had barbeque in our backyard! Western style hehe. Me, my father and my brother, drinking Monster and talking about choppers. I really enjoyed this day, and that is Christmas for me. To be with my family and just bond and be simple.

Bbq

;

New Terminal at Folder

December 8, 2011

This is a quick post.

If you want to enable the ctrl+click open in terminal feature when you want Finder to launch terminal and point it to a specific folder: Go to System Preferences > Keyboard > Keyboard Shortcuts > Services and then look for the “New Terminal at Folder” item. Tick to check that.

New Terminal

Then you will have this now on the context menu:

New Terminal Menu

Hope it helps!

;

I have a simple “want” for today. I want to upgrade my Xcode 4.2 to the latest version but still keep my old version while I am downloading the massive installer file (as I assume) because my download may take a while, and also just to be safe when I fail downloading it. I cannot seem to do it at first. Of course the “sudo /Library/uninstall-devtools –mode=all” instructions that I saw (and did as while upgrading previous versions) is not an option because I will have to uninstall everything so I can download it from the Mac App store – yeah it says that it is already installed so what is it left for me to do, of course uninstall it – but I dont want to remove for now. Also the manual in the Xcode page is not updated. I also got tired of searching the results in Google, but I did found a support article that lets me run an “Install Xcode.app” somewhere after downloading it from the Mac App Store. I was not aware of this that the installer is now a .app (silly me haha). So I looked for it and there it is, on the Applications directory – “Install Xcode.app”. I think it came along with the Lion install. Mac App Store does not even list it at the “Updates” page. I tried running it but it installs Xcode 4.1. I tried to check the Updates page on Mac App store but it is not there. I want a clean way to do it as like with other Mac apps, and not through fancy terminal stuff.

So here is what I have done, just in case you are in the same page as me.

Go to app store, search for Xcode and Install it, but I encounter this:

01 Cannot DL

So I got to the “Install Xcode.app” app and tried to back it up first (because my intent was to delete it):

02 Install Xcode App

And Finder will ask me for my password and sure enough it is secured for some reason:

03 Backup in HD pass

After backing it up on my external drive, I proceeded to delete it and again we will be prompted for the password:

04 Delete

After that, I retried Installing it again from the Mac App Store and there it is, it started downloading!

05 Try Again Downloading

I even still have my old Xcode with me

06 Xcode 4 2 still there

So there it is! It is now downloading and I hope it will be done by weekend.

I hope it helps!

;

Grove Sound Recorder Switch

November 30, 2011

It is holiday today here in PH! I would like to make use of this day to help someone; and on one of my posts Aisen would like to control the Grove Sound Recorder switch programmatically. I think I made a mistake telling an approach, but to make up for it, here is a short demo on how to control the sound recorder properly.

First, we would have to solder out the toggle switch from the board. Shown here is the underside, my bad.

01 Original

Then solder in some header pins for easier access

02 Pin

Looking at the schematics and datasheet provided by Seeedstudio, the REC pin is always pulled up to 5V, to that the circuit will be activated as PLAY. But first, let us wire the circuit as shown below:

05a Circuit

The approach would be is that PIN 13 will always be HIGH to emulate what the switch does. This will just make the sound recorder think that it is pulled up to 5V and in PLAY mode. Then when PIN 13 is LOW, the sound recorder will think that it is pulled to GND then it will make itself go into REC mode.

You can find the code here:

https://github.com/wendellinfinity/GroveSoundRecorderNoSwitch

The serial commands are:

  • #rb = begin recording track#
  • #rs/rs = stop all recording
  • #p = play track #
  • rm = record mode
  • pm = play mode

Example usage:

To record at #4 slot

  • rm
  • 4rb
  • <then record the sound>
  • 4rs

To play #4 slot:

  • pm
  • 4p

You can check the video of it in action here:

Hope it helps!

;

SC2

October 31, 2011

Last night, I just bought a digital copy of Starcraft 2 and I was so excited to try out the multiplayer mode. Me and paomeow had 2 games and it seems that I don’t do as well anymore as I was while I am playing Starcraft Broodwar. Though I am so late at this point in joining the Starcraft 2 bandwagon and having a lot of jobs to do, I think I can still squeeze a little bit of time to polish again my SC skills. I am not good anymore.

It was a long time since when I had my first “whoa epic” reaction:

I have a lot of resources but not utilized properly, I think I have to work on that again

Vs Hanz

;

Follow

Get every new post delivered to your Inbox.