mark frauenfelder madebyhand

IMD Forum for 2/9/11: Mark Frauenfelder

Speaker:       Mark Frauenfelder, Author;  Founder & Editor, Boing Boing;   Editor-in-Chief, MAKE
Time:             Wednesday, February 9 , 6-8pm
Location:      USC’s Robert Zemeckis Center for Digital Arts (RZC), Room 122
TITLE:            DIY 2.0:  21st Century Innovation

ABSTRACT:   In the last couple of years do-it-yourselfers have gained
access to a myriad of new tools and services to help them design,
prototype, fund, manufacture, and sell the things they make. Most of
these tools and services are free or very inexpensive, and they hint
at a future in which individuals and small collectives will offer
viable alternatives to mass-produced goods.
3D design programs like Google SketchUp, Blender, and Alibre PE are
not only much more powerful than the software I was using 25 years
ago, they are much cheaper, too. (Alibre PE is $99 and Google SketchUp
and Blender are free.) DIYers are using these programs to design
everything from bicycles to chicken coops to model rocket components.
And they are sharing their 3-D designs on websites like
Thingaverse.com, where other people can download the designs, modify
them, and then make their own versions of products using the models.
And the tools that they are using to make these objects are getting
more powerful and cheaper all the time, too. Remember when laser
printers, which cost $100 today, used to cost $10,000? A similar thing
is happening with manufacturing machines. Low-end laser cutters cost
about $7000, compared to $20,000 just a couple of years ago. And 3-D
printers, such as MakerBot Industries’ Thing-O-Matic (a rapid
prototyping machine that prints out objects in the same kind of
plastic that Lego bricks are made of) sell for about $1200.
Eventually 3-D printers will become as commonplace in people’s homes
and offices as laser printers are today. But in the meantime, websites
like Ponoko.com and Shapeways.com are the equivalent of desktop
publishing service bureaus. For a small fee you can send your 3-D
design to Ponoko.com and Shapeways.com and have them print out a model
in plastic, metal, or other material. These service bureaus will also
manufacture and sell your product to anyone around the world who wants
one.
Most of the things that DIYers make are funded out-of-pocket. But for
more ambitious garage entrepreneurs, websites like Kickstarter.com
allow DIYers to post requests for project funding. The next phase in
crowdsource funding will be small scale securities markets in which
individual investors will share in the profits of financially
successful project.
And finally, the Web itself has become the great enabler of
do-it-yourself innovation. It allows communities of interest to
communicate with each other, greatly accelerating the evolution of
designs of everything from amateur unmanned flying drones to cigar box
guitars. The Web also serves as an indexed surplus store where almost
anything anyone would want can be found with a simple search.
In the 19th century people made most of the things that they used ­
furniture, clothing, shelter, food. We may see a return to a world
where individuals make many of the things they use every day, but be
connected to other innovative individuals around the world who help
them realize their goals.

Building a Buddy… From Scratch

Final Posting for the Semester

IMG_2011.JPG

Press play to watch the video!

(You can also download this video here.)

I’ve had lots of struggles with Buddy. As you can see from this video, Buddy has definitely come a long way from his original inspiration. Unfortunately, Buddy has been constructed – and constructed pretty well for someone who has never undertaken a project like this at all since he no longer falls apart (I had a lot of trouble keeping his head from falling off whenever the servos in his head moved) – but does not actually work as intended. I am pretty sure that there are too many servos trying to draw power from the arduino at once. I had the servos moving his head when they were the only things connected to the arduino, and after more things were attached, I realized that the continuous rotation servos were not moving after I attached them to his body. I am still getting information from all of his sensors in the serial monitor in arduino, so I do not believe I fried the board. This is an undertaking I am going to pursue figuring out over the summer as well as to add sound to him and to perhaps give him an on and off switch or sensor so that when he is plugged into power he does not just fly out of the user’s hands (which I had been afraid of while putting him together.)

(more…)

Building a Buddy… From Scratch (Older Documentation of Project in Progress)

This was written almost two weeks ago (by me) but not posted. I think I wrote this two Fridays ago? There will be more documentation and updates on Buddy the robotic seal to come, but I wanted to post where I was such a short time ago. I think I finished up some of the post after that Friday, so it’s kind of a span of time.

RobotPieces.jpg

(Above: Work space after all crafty things were assembled… I dragged my desk which is really just a table into my living room so I could spread everything out – and good thing because by the time I was finished, things seemed to have been everywhere!)

Building a Buddy… From Scratch

It feels a little bit like being a mad scientist to say that and mean it. I am creating a Buddy from scratch. It sounds strange and feels funny to me, but I am doing it.

Checking in for a quick update on how it’s going building a robot for the first time – with a deadline. On the bright side, the deadline has been extended so Buddy is going to have the time to become a real SOMETHING. I have been worried that I wouldn’t have enough time with all my parts to make him work decently on the inside and look good on the outside, too.

(more…)

544 final project: Orpheus: Tamin’ the Savage Beast

For our final project, Jacob and I teamed up to create Orpheus: Tamin’ the Savage Beast. This was a project that was primarily based on the open-source Guitar Hero software called Frets on Fire. We composed a Greek-flavored song and then programmed it into Frets on Fire. In addition, we re-used a wheeled robot from Jacob’s previous project as our ‘savage beast’. Using servos, we constructed a frame for a stuffed cat that allowed it both to lie flat on its belly and to rise up and move from side to side. This robot was tethered to a computer using a USB cord, which connected it to the Frets on fire, Arduino, and Processing programs that told it how to behave.

Basically, the point of the game is to perform well enough on the guitar song to keep the robot pacified. When the performance is accurate, the wheels stop moving, and the Beast rises up and starts ‘dancing’, or moving from side to side. However, when the player starts performing poorly, the beast goes back into its crouch and the wheels resume movement, creeping toward the hapless player. Frets on Fire has its own losing criteria, which usually coincided with the Beast reaching the player.

Looking back, I feel that the project was pretty successful. The programs all worked as planned and the robot looked good and performed its function. I was pretty happy with the way it turned out. If I were to change something about the project, I would fiddle with the difficulty of the song. Never having made a Guitar Hero track before, it ended up being too difficult for most players (including me). Of everyone who tried it, only one person was able to play the game to completion.

Here are some videos of the in-class presentation of Orpheus: Tamin’ the Savage Beast.

Download file

Download file

544 final project: Orpheus: Tamin' the Savage Beast

For our final project, Jacob and I teamed up to create Orpheus: Tamin’ the Savage Beast. This was a project that was primarily based on the open-source Guitar Hero software called Frets on Fire. We composed a Greek-flavored song and then programmed it into Frets on Fire. In addition, we re-used a wheeled robot from Jacob’s previous project as our ‘savage beast’. Using servos, we constructed a frame for a stuffed cat that allowed it both to lie flat on its belly and to rise up and move from side to side. This robot was tethered to a computer using a USB cord, which connected it to the Frets on fire, Arduino, and Processing programs that told it how to behave.

Basically, the point of the game is to perform well enough on the guitar song to keep the robot pacified. When the performance is accurate, the wheels stop moving, and the Beast rises up and starts ‘dancing’, or moving from side to side. However, when the player starts performing poorly, the beast goes back into its crouch and the wheels resume movement, creeping toward the hapless player. Frets on Fire has its own losing criteria, which usually coincided with the Beast reaching the player.

Looking back, I feel that the project was pretty successful. The programs all worked as planned and the robot looked good and performed its function. I was pretty happy with the way it turned out. If I were to change something about the project, I would fiddle with the difficulty of the song. Never having made a Guitar Hero track before, it ended up being too difficult for most players (including me). Of everyone who tried it, only one person was able to play the game to completion.

Here are some videos of the in-class presentation of Orpheus: Tamin’ the Savage Beast.

Download file

Download file

CTIN 544: Final Project – Light Reef

For my final project for 544, I worked with Amanda Tasse to create an organic light reef that reacts to local ambient light.

PROPOSAL

Our original proposal was to create an organic-looking sculpture with dynamic light sources, based on certain natural oceanic inspiration such as kelp and jellyfish. Our main goal was to have a high quality of light in the sculpture, and interesting light behavior that would look and feel natural.

kelp.png

Our original concept image.

(more…)

CTIN544 Final Project Documentation

Dancing Toys

0. Overall

The project’s goal is to make toys that can express their feelings on music and ambient sound by dancing on the sound’s beats. Another goal is to make toys as easy as possible to add or remove on the dancing stage so that from a single dancer to a dancing troop is possible.

overall.jpg

overall_1.jpg

1. Processing

Minim sound library is used to detect sound beats. Minim library’s beat detection algorithm is here. However, the problem is, as the author mentioned, that ‘beat’ is a more abstract concept which is not easy to be explained in known mathematical equations. The initial plan was to detect three different beats only in frequency domain but I found that simple detecting algorithm in time domain is better than in frequency domain. (The basic algorithm in both domains is the same but specific frequency bands to detect beats can be selected in frequency domain. Even though there are some sophisticated beat detecting algorithms, most of them was not plausible for this project because they need whole data of a song to find out beat patterns which disables on-the-fly detecting.)

As a result, detecting in the time domain and two pre-selected frequency bands (40~80Hz, 100~400Hz) are used in this project. One byte of beat information, whose lower 1st~3rd bits are designated to each beat and set to 1 if that beat is detected, is composed and sent to Arduino every frame via serial cable. Only the master toy receives this data from Processing and dances along with it.

processing.jpg

2. Arduino

Each toy has one Arduino board and 3 servos, 1 IR emitter and detector are connected to the board. More specifically, servos and IR emitter are wired to MCU Port outputs and IR detector is wired to MCU comparator’s input. The master toy is directly connected to Processing and slave toys communicate each other via IR signal.

arduino.jpg

In terms of the master toy, each servo is mapped to each beat bit of received byte. If the bit is 1, the servo rotates small angle (15°) or rotates for a short time(80ms) switching its direction. When a byte is received, the master toy sends IR signal to the slave toy. IR signal’s duration is proportional to the byte’s value. As it is designed that value 1 has 5ms duration, IR signal duration varies from 0ms to 35ms (max 00000111 byte = 7*5ms)

As IR detector’s output is analog, it is connected to slave toy’s MCU comparator input in order to make use of comparator output edge interrupts. On the rising edge of comparator’s output, the slave toy’s interrupt function is called to save the time using millis() function and its IR emitter is turned on to send signal to other slaves. The same thing is done on the falling edge (IR emitter is turned off) and the time difference between two saved times is converted to the servo control signal. The inevitable delay from the master to a slave is maximum 35ms but there’s no delay between slave toys because of interrupts driven IR detector and emitter.

irsensors.jpg

However, I found that the continuous servo is not appropriate for this kind of project that servos rotates for a short time and switches its direction frequently. The torque of continuous servo while it is rotating was so weak that the bottom servo couldn’t support the whole weight of a toy and two other servos. Moreover, unlike 180° servos, continuous servos were very hard to accurately rotate and stop as much as it is programmed. For these reason, the bottom servo, which is mapped to 100~400Hz beats, was disconnected in the presentation.

dancingtoy 010_1.jpg

dancingtoy 015_1.jpg

dancingtoy 024_1.jpg

Combiform

Combi-Form is a game that allows multiple players to physically combine their controllers for creating a collective and collaborative gaming interface. The physical combining and de-combining mechanic opens a new level of interaction never seen before in the video gaming world.

Video game players have a convention not to interact or interfere with each others’ controller or space. Combi-Form is one attempt to break down this boundary between players. The name comes from merging the words combine and transform, which are the two key concepts in our game.

Original Concept, Hardware Design/Engineering and Game Art:    EDMOND YEE

Programming:   ANDY UEHARA