Siri controlled Arduino using Ruby


This snippet of Hello World code lets [Nico Ritschel] turn the Pin 13 LED on his Arduino on and off using Siri, the voice-activated helper built into iPhones. The trick here is using the Ruby programming language to get Siri Proxy talking to Arduino via the USB connection. He calls the project siriproxy-arduino.

On one end of the hack resides SiriProxy, a package not approved by Apple which is capable of intercepting the Siri messages headed for Apple’s own servers. The messages are still relayed, but a copy of each is available for [Nico’s] own uses. On the other side of things he’s building on the work of [Austinbv’s] dino gem; a Ruby package that facilitates control of the Arduino. It includes a sketch that is uploaded to the Arduino board, opening up a Ruby API. The collection of code seen above defines the pin with the LED connected and then listens for a specific Siri commands to actuate it.

Take a look at [Nico’s] explanation of the module in the video after the break.

Continue reading “Siri controlled Arduino using Ruby”

Creating a decadent, insane, and depressed robot from Internet ramblings

Have you ever wondered what a Tumblr written by a psychotic robot would look like? Wonder no more, because [Lars] has that all figured out.

A few years ago, [Lars] stumbled across (now defunct, but mirrored here), an online confessional and bathroom wall meant to host people’s most private thoughts and actions anonymously. [Lars] wrote a script to pull a random lowbrow post down every minute and threw every unique result into a database.

With about 50 pages of the most depraved and depressing posts of questionable veracity, [Lars] trained a Markov chain algorithm to produce paragraphs that imitated the style of lowbrow contributors. This gave [Lars]  pages of computer-generated text describing the most decadent, depressing, insane, inane, but overwhelmingly human experiences possible. A few choice quotes from the output are:

The llama: nature’s random number generator.

Over 7000 watts of Ol’ Barry whining his ass cheeks to soften the blows.

All through school I was being pulled behind the local St. Benedictine  Monastary where I was afraid I don’t know what I thought was the founder pulls back from a discussion about

While [Lars]’ script wouldn’t pass a Turing test, we’ve met people who couldn’t do the same. As far as creating a real-life version of Hedonism Bot, HAL, and Marvin from Hitchhiker’s Guide, we’re thinking [Lars] hit the mark.

After the break you can check out a gallery of pics [Lars] put together of from his computer-generated text. You can also grab the full lowbrow corpus and the ruby script to build your robotic [Kerouac].

Continue reading “Creating a decadent, insane, and depressed robot from Internet ramblings”

Hackday Links: March 10, 2012

We’re throwing money at our monitor and nothing’s happening!

Sometimes we get hacks sent into our tip line that are outrageously awesome, but apart from a YouTube video we’ve got nothing else to write about. So begins the story of the flying Back to the Future DeLorean quadrocopter. Sadly, the story ends with the video as well. (If you’ve got any info, send it in!)

Fine, we’ll throw in another cool car

Mercedes covered a car with LEDs and made the James Bond’s invisible car from Die Another DayThe Mercedes video cost tens of thousands of dollars to produce, so of course there’s camera trickery; we’re just wondering how much credit Adobe After Effects gets for this build.

Microsoft touchscreen demo might be impossible

Yes, Microsoft does care about user experience. Just take a look at this video from their applied sciences group. They did user testing with touchscreens that updated every 1 millisecond, compared to the ~100ms our phones and tablets usually update. Of course the result was a better UX, but now we’re wondering how they built a touch screen that updates every millisecond? That’s a refresh rate of 1 kHz, and we’ve got no clue how they bodged that one together. We’re probably dealing with a Microsoft Surface projector/IR camera thing here, but that doesn’t answer any questions.

Edit: [Philip Rowney] sent in a tip that it could be this TI touch screen controller that can sample above 1 kHz. The only problem is this chip uses a resistive touch screen, instead of a multitouch-enabled capacitive screen. At least that solves one problem.

And now for something that can measure 1 kHz

[Paleotechnologist] posted an excellent guide to the care and feeding of an oscilloscope. Most of our readers probably already know the ins and outs of their awesome Techtronix and HP units, but that doesn’t mean the younglings won’t have to learn sooner or later.

Good idea, except the part about saving it for spring

In a moment of serendipity, [Valentin] figured out how to use touchscreens with wool gloves. The answer: rub thermal grease into the tip of the index finger. It works, and doesn’t look to be too much of a mess. We’ll remember this for next winter.

The last one didn’t have a picture, so here’s this

[Darrell] used a little bit of LaTeX and Ruby to make colored labels for his resistor collection. We’re struck with the idea of using test tubes to organize resistors. It’s cool and makes everything look all sciencey and stuff.

This image contains a hidden audio track

This image contains a hidden audio track which you’re very familiar with. Well, it used to. We’d bet we messed up the careful encoding that [Chris McKenzie] used to hide data within an image when we resized the original.

He’s using a method called Steganography to hide a message in plain sight. Since digital images use millions of colors, you can mess with that color data just a bit and the eye will not really be able to pick up any difference. Each pixel has had the eight least significant bits swapped out for the data [Chris] is hiding. Since the image uses 24-bit color, the largest possible change (going from 0 to 255) in those bottom eight bits will only result in a color change of about 0.15%. And that’s only for one pixel; in most cases the change will be much less.

He shows his work, both decoding and encoding using Ruby, and even provides a one-liner which lets you playback the audio without downloading anything (just make sure you’ve got all of the dependencies installed). Never gonna give, you, up…

[via Reddit]

Spamming a label printer with #cookiehammer

[John] has always loved stock ticker machines. These machines are highly collectible, so short of finding one that wasn’t hurled from a Manhattan skyscraper in 1929, a stock ticker is out of reach for the casual enthusiast. There is another way to get a stock ticker-like device though: hack a label printer to print out stuff from Twitter.

The build is really quite simple. A Dymo thermal label printer was modified to accept standard 2.25″ point of sale receipt paper. Now that the printer can shoot out line after line of text, [John] wrote a little bit of Ruby code using a Twitter API, RMagick for graphics processing and a Dymo printer driver.

Every 30 seconds, the code does a Twitter search for a specific hashtag and prints those tweets. #cookiehammer was the first thing that came to mind, so it stuck. Right now there’s a few tweets for #cookiehammer, but we expect [John] will have to put a new roll of paper in his printer fairly soon.

It may not be as informative as a stock ticker machine, but we think [John]’s twitter printer build sure beats watching CNN. Check out the walk through after the break.

Continue reading “Spamming a label printer with #cookiehammer”

ATtiny Hacks: Simple USB temperature probe

ATtiny Hacks Theme Banner

[Dan’s] office is awfully hot, but he needed some real temperature numbers that he could show the building management office to justify opening a maintenance ticket. He had seen some simple temperature probe examples online, and decided to build his own using a small AVR chip.

Based off a similar temperature monitoring example called EasyLogger, his temperature probe uses an LM34 temperature sensor, which is wired to an ATtiny45. The ATtiny communicates with his computer using the Ruby-USB library in conjunction with a bit of Ruby code he put together. Once the data is obtained, all of the temperature measurements are logged and graphed using RubyRRDTool.

As you can see by in the image above, his office is far hotter than it should be, so we’re pretty sure he’s happy to have actual measurements to back up his claims.

If you are looking to make a small temperature probe of your own, his code, schematics, and links to all of the tools he used in the project are available on his site.

Distributed computing in JavaScript


We’ve heard about the idea of using browsers as distributed computing nodes for a couple years now. It’s only recently, with the race towards faster JavaScript engines in browsers like Chrome that this idea seems useful. [Antimatter15] did a proof of concept JavaScript implementation for reversing hashes. Plura Processing uses a Java applet to do distributed processing. Today, [Ilya Grigorik] posted an example using MapReduce in JavaScript. Google’s MapReduce is designed to support large dataset processing across computing clusters. It’s well suited for situations where computing nodes could go offline randomly (i.e. a browser navigates away from your site). He included a JavaScript snippet and a job server in Ruby. It will be interesting to see if someone comes up with a good use for this; you still need to convince people to keep your page open in the browser though. We’re just saying: try to act surprised when you realize Hack a Day is inexplicably making your processor spike…

[via Slashdot]