Blog - Sketching with Hardware

The Great Carholio

Published on: | Author: Sascha Oberhuber | Categories: 2014b, Projects

Carholio eyes

 

The Great Carholio

Introduction

Team 1 of Sketching with Hardware’s 2014b iteration consists of Steve-B and Alex Cristea. Alex is a seasoned sound artist and Java programmer. Steve-B is a programmer experienced in multiple languages, including low-level programming, and enjoys traditional art and video game mod creation. Both study Media Informatics, and neither brought experience in hardware hacking.

We were fast to settle on a name for our creation (“The Great Carholio”, inspired by a famous American cartoon), but since we faced various hardware-based roadblocks along the way, said name is the only thing that persisted throughout our week of work.


Concept (I)

Carholio concept 1

Initial Carholio concept poster.

Our original idea is based on the omnipresent trend called “life logging”. Peripheral devices that allow people to track their daily activities, either through sensors in sportswear, small, automated cameras or just frequent selfies have been trending for a long while now. Since the course’s topic is “Unmanned Ground Vehicles”, we decided to go for a small drone that would…

  • … automatically follow the owner
  • … take pictures, based on timers and/or sensor input
  • … send the pictures to a device connected wirelessly

To make a long story short: The idea of using a camera didn’t work out, due to the fact that we didn’t find a reliable source for the necessary hardware nearby, and we didn’t want to rely on online delivery due to the lack of time.

Thus, at the end of practical day 1, we didn’t have a concept to pursue. Time for more brainstorming and concept 2.

Carholio concept 2

Even if things looks grim, never forget the Beavis.


Concept (2)

We dropped the idea of using visuals and changed focus to sound. Carholio 2.0 is a sound drone that still follows his owner – but instead of creating image logs, he uses sound and different sensors to scan his environment and react to it. This approach allows for a lot of interesting uses; imagine a fully automated piece gear that uses sound to signal large amounts of electro smog or other invisible situations some might percieve as threat.

While Alex went on another hunt for hardware and started to experiment with getting sound files on the Arduino, Steve began with getting the “Follow user” mechanic to work.

To follow someone, a drone has various possible approaches, some of which are more feasible than others. With out original camera concept, we’d have gone for an image-based approach – track how a recognized shape moves between multiple images, or something similar. Since we were not sure whether or not the Arduino would allow for such complex computations, we did have a plan B.

Pna B is an approach that uses a combination of infrared sensors and bluetooth to track a person. The person to track would carry both an infrared emitter and a bluetooth device, with the bluetooth device being connected to Carholio.

If the infrared emitter (we used a commonly available remote) is not straight ahead, one of the infrared sensors would receive a better signal (= more switches between high and low voltage in a shorter amount of time) than the other. This difference would then be computed and result in an impulse to the front engine, triggering a change in direction.

Infrared covers direction, Bluetooth covers distance. The course provided us with HC-05 chips to connect to the Arduino. This particular chip offers so-called AT commands to allow configuration and query for information. Steve planned to use a specific command (“AT+INQ”) to ask the chip for the signal quality of the current connection, assuming that it would get weaker by measurable amounts at greater distance.

So, in theory, Carholio would stop at maximum Bluetooth signal strength. If not, he’d use infrared input to determine his position and get back to a place with maximum strength. So far, so good?

Nope.


 

Interlude – “Die Blamage“, as Alex called it

Most of the things I described above didn’t work.

  • Due to issues with both hardware (the Arduino’s limited memory) and software (Arduino IDE + Processing, all mashed up), “proper” audio output turned out to not be an option without additional investments (shields) that, again, were not immediately available to us.
  • The hardware level functions of the HC-05 chip are wonky at best, plainly “not working” at worst. Unfortunately, the one function Steve absolutely needed for measuring distance (AT+INQ) turned out to simply not do what the official specification promised. Instead of giving a list of connections and their signal strength, all it returned was a confirmation that the function had run. Steve-B pretty much wasted an entire day testing and debugging this mess.
  • The infrared sensors actually ended up working, but they are way stronger than expected and usually detect roughly the same signal. Steve managed to solve this issue on the software-side, but it’s uglier than it should have been. Since one of the sensors actually broke during testing, getting to this point wasted quite a bit of time.
  • Somewhere in the midst of this mess, the rc-car’s front engine broke down, forcing the team to replace it.

 

All in all, we didn’t have much to show for at this point. Essentially, all we had was two infrared sensors that would roughly determine the orientation towards an infrared emitter, working Bluetooth-based controls, and a few successful, yet very basic tests with algorithmically generated MIDI sounds.
At this point, it was Friday afternoon. If we didn’t come up with something new quickly, we’d probably fail this course.


Concept (3)

Carholio poster

It is evident that team 1 had no art student.

We didn’t have enough time to come up with an entirely new concept, so at this point we needed ways to use our existing achievements in creative ways to create something fancy. With working infrared, MIDI output and controls, we combined all of those to create the final Carholio.

Proud father

Alex in an epic pose as one of Carholio’s proud fathers.

Abilities:

  • Without Bluetooth signal strength checks working, Steve-B implemented a simpler “Follow” function that would just not stop driving forward, unless told to do so via Bluetooth input.

    An interesting side note: When not connected via USB, but battery, the electrical current is too weak to do this. A regular rc-car front engine requires a constant stream of electricity to turn left or right, leaving not enough for the back engine to keep driving forward.
    However, the last front engine we installed turned out to be just “broken enough” – it would not automatically go back to driving straight once the current is cut off, but remain in the previous position. So a very short electrical input is enough to keep turning, leaving more voltage for the back engine to not die off.

  • Carholio carries a 2-inch speaker that executes MIDIs, provided algorithmically as sequence of frequencies. He uses the speaker to provide feedback to input, as well as as playing an idle melody.
  • Alex hacked a LED lamp he brought from home, removed its four LEDs, and implanted them in Carholio’s eyes. While not in “Dance Mode” (read along to find out about what this means), these react to the position of the infrared input.
  • Carholio can adjust his idle melody to the infrared signal it receives. The higher the angle between emitter and Carholio’s head, the slower the music plays, and the “wronger” it becomes. To achieve a wrong sound, Carholio probabilistically swaps good tunes with random wrong ones – with the chance for a swap based on the aforementioned angle.
  • Our cute car buddy can enter “Dance Mode”. While in “Dance Mode”, he remains in place, and both blinks his LED-eyes and moves his front axis with the beat of his melody. He can do this while reacting to infrared signals, as described above.

 

We created an annoying little sound machine. Neither Steve-B nor Alex were hurt by other students during testing, but it was close at times. 😉

Assembling Carholio

The Great One comes to life

 

 

 

 

 

 

 

 

 

 

 

 

The biggest challenge, apart from the hardware failures and inaccessibilities, was the fact that Arduino can not do multi threading – without smart thinking, playing a simple sound blocks the entire command pipeline, leaving no time to analyse sensor input or control commands. Steve-B solved this issue by using a time-slice based task concept for audio playback. If interested, check out the source code attached to this blog post.


 

Design concept

Carholio side

Our beautiful little bugger in side view.

Carholio from another angle

Carholio, just casually sitting on his place of birth.

 

 

 

 

 

 

 

 

 

 

The chassis consists of five black plastic boards Alex precisely cut into shape. The speaker is inserted into a cut-out hole that leaves just enough space to let both speaker and its cables into Carholio’s inside.

The head is basically a sponge ball which has been sprayed with a black glitter spray and further cut on the inside to leave space to the LEDs and infrared cables.

 

Carholio's head

The inner workings of Carholio’s head. The IR sensors are separated by reflective film.

A floating hinge is placed at the right side of the car which makes it possible to connect the Arduino to a laptop after completely assembling Carholio.

Since a few of our digital pins apparently died off, we used the analogue input pins instead. Moreover, we redirected the RX/TX pins to digital pin 10 and 11 to keep 0 and 1 functional for USB communication and easy sketch uploads.

Carholio pin layout

Final pin layout of Carholio. The reality was even messier.


 

Conclusion

All in all, we not only learned how to properly work hardware without breaking it within an hour (though we did burn through quite a bit of stuff), we also gained awareness of issues one might usually not see coming, and we did have a lot of fun. Thanks SWH team for a good time, and for spending money on stuff for us to destroy. 😉

– Alex, Steve-B


Appendix

Source code (7z- archive):

https://www.mediafire.com/?b71by97d7kgr17z

Random impressions:

 

Cutting edge

Cutting edge LED tech @ team 1

Alex approves

Alex approves of team 1’s first great creation.

Carholio looking all chill

Carholio looking all chill with his glasses. Such a cute guy.

What he does best

Steve-B doing what he enjoys – animating girls to do nonsense.

Long night

Alessandro (Alex) after a long day of work.

 

 

 

linked categories 2014b, Projects

|

Write a comment

Comment

… [Trackback]

[…] Read More Infos here: blog.medien.ifi.lmu.de/swh/2014/08/29/the-great-carholio/ […]