My Mechanical Bull iteration with LEGO Powerfunction system
8891 Mechanical Bull (1991) with 9V motors system
My very own Lego Mechanical Bull, inspired by the old Lego Technic idea book(8891), is made entirely with Technic beams and Lego Power Function parts. There were 4 Lego Technic idea books (8888, 8889, 8890, and 8891) ever published between 1980 and 1991. These books contain many fun Lego instructions on simple machines, motor systems, pneumaticsystems, and Lego Control Center. The Mechanical Bull is one of the Lego Control Center examples in the idea book 8891. During the iteration, I am fascinated by some of the profound design decisions made in the original instructions around the use of gears. Even with the modern Power Functions parts and tons of new gears, there are very little options on combinations in order to keep the structure small and robust. My next step will be finding ways to speed up the rotation.
Inspired by the Table Flipping Ojisan arcade game. Ojisan stands for middle aged man in Japanese, and the table flipping is an act of rage and a social phenomenon in Japan usually associated with frustrated parents, especially the father figure. However, it is extremely funny to view this act from a 3rd person point of view.
I wasn’t able to find proper gears to create enough flipping force, so I modded a Lego 24-Tooth crown gear by removing half of the teeth on it. That way it sets the crown gear free when it run into the area without teeth, and with proper spring mechanism, the flipping can be very strong.
Combine two Processing Libraries (Kinect + NXT) and Lego NXT sets, I ran the Lego SUMOBOT Battle in my class before the semester is over. It was a lot of fun, 3 teams came up with very different theories and robots. The entire session took 3.5 hours and was divided into design, build, program, test, and battle 5 different stages.
In order to run Kinect and OSCeleton on your Mac, I followed Tohm Judson’s long walk through, there is no short ones… It was written a while ago so some of steps are no longer apply. Here are my notes when I install them again on my new Mac (08/15/11).
My MacBook Pro (Mac OSX 10.6.8, 2.4GHz Intel Core i5, 4GB DDR3)
1. I didn’t install CMAKE and it works fine. 2. MacPorts SnowLeopard installer. 3. OpenNI: link to download OpenNI has changed to here. 4. NITE: link to download NITE has changed to here.* 5. I don’t have the avin2…>NITE>Data folder so there is no 3 files to copy from. Instead (important), open all 3 XML files inside of Nite-….>Data folder and change the value of the attribute “key” inside of the License syntax to 0KOIk2JeIBYClPWVnMoRKn5cdY4=
The line of code should look like this in all 3 XMLs:
6. pbox2d library errors: if there are errors, 99% is because of the latest version of pbox2d library. The OSCeletion example is based on an earlier version of pbox2d, a lot of function names are changed for the newer one. Replace the latest library with the old one above will fix the problem.
*If the link breaks again, go to http://www.openni.org, on the menu bar go to Download/OpenNI Modules, then choose “OpenNI Compliant Middleware Binaries”, then “Latest Unstable”, there pick the latest NITE version for Mac OSX.
OUTPUT TO NXT:
I use Jorge Cardoso’s NXTComm library to communicate with Lego NXT Brick.
The file tree on the website is a little bit messed up for me. In order to make it work for Processing 1.5.1, this is what I did:
1. Unzip and change the folder name to “NXTComm” 2. Open the folder and create a new folder named “library” 3. Drag NXTComm.jar into the newly created library folder. 4. Drag the entire NXTComm folder into Documents/Processing/libraries/
Ignore the RXTXcomm.jar, Processing 1.5.1 has serial library built in already.
There is an example using this library on Diego Baca’s NXT website. The example uses a library called SpringGUI, it is no where to be found. I commented out everything relates to SpringGUI in the code, then it works. I also experience some delay on the response, solved by commenting out unused port readings in the code. Since I am only using NXT’s motor ports, these two commands are all I need:
nxt.motorForward(portNumber, speed);
and
nxt.motorHandBrake(portNumber);
portNumber: 0, 1, 2 speed: -100 to 100 (directional)
One of the benefits working with SMALLab is the unlimited R&D opportunities with the system. In the beginning of the research, we as a team dug deep into SMALLab, broke it down to the finest grind, and tried to find out and understand every single attribute and affordance this play space has to offer. One of them that I was excited about is the over-sized projection from the ceiling. With black and white image or drawing, this 6400 lumens projector can create high-contrast bright and dark areas on the floor. This is how the shadow bots idea came to mind, to create line follower like robots to follow the edges of dark areas.
I started out the experiment with Lego Mindstorms first. My out-of-box Lego light sensor doesn’t work well in this environment so I decided to make my own sensors. The experiment is awesome, the back and white projection has created a virtual wall for this little yellow mobile bricks (see the first video). I then made an Arduino version of the same robot with a Tamiya bulldozer kit.
Hack the LEGO sensor to read projection light.Playtest with a few friends and colleagues.