There are many web-based interfaces to traceroute available, including a nice list at traceroute.org. Here’s a Processing sketch that retrieves the raw HTML from one of them and separates the traceroute lines into time taken, hop IP, and hop name.
This sketch can be modified to scrape other web-based traceroute apps, but you’d need to change the last two methods, parseHop() and printHopList(), depending on how your particular app formats the results. You’d also need to change the global variables at the top that pertain to the site being used.
One caveat: the traceroute takes some time.
To see the full output of the HTML call, change debug to true.
Continue reading →
Here’s a variation on the networked pong server from Making Things Talk.. This version is cooperative rather than competitive. Multiple clients have to keep the ball from hitting the ground. There are five balls dropped each game.
Continue reading →
Here’s a basic chat server written in Processing. It’s a bit more complex than the basic test server. This server keeps track of all the clients who log into it in an ArrayList. Using an ArrayList is useful when you need to do more complex things with the clients, as in my pong server from Making Things Talk. This is the most minimal server I could come up with that keeps a list of its clients.
Continue reading →
Berkeley’s CNMAT (center for new music and audio technologies) has a nice resource archive, with pictures. Useful if you’re looking for electronic parts, microphones, and other things audio-related. Similar to RISDpedia and ITPedia, among others, very useful. Thanks to Tom Gerhardt and Adrian Freed for the link.
Peter Knight works with Massimo and Alex and co. at Tinker.it. He’s written some great AVR code, which is useful in Arduino. For example:
Secret Thermometer takes advantage of the ATMega’s internal thermometer. Turns your ’328-based Arduino into a thermometer with no extra parts.
Secret Voltmeter same idea, but this reads the internal analog-to-digital converter to tell you the Arduino’s supply voltage. Also works on the ATMega168.
He’s also done Cantarino, a speech synthesis engine; Auduino, a granular sound synthesis engine; a DMX library; and more. Check them all out at the tinker.it code repository.
Shigeru Kobayashi, who made Gainer and Funnel, has made yet another nifty tool for physical computing: physical x wonderfl. It combines Gainer, Funnel, Firmata, Arduino, and Wonderfl.
Continue reading →
Making LED displays is fun. There are a a few tools that get used all the time, from row-column scanning to LED driver chips to multplexers and shift registers. This tutorial discusses some of the more popular methods for controlling large amounts of LEDs from a microcontroller, including their various strengths and weaknesses, and how they work. For more on this subject see chapter 14 of “Physical Computing“, where Dan O’Sullivan and I discussed it in more depth. I’ll also include some notes on how to apply these ideas to controlling multiple motors or other high-current loads.
Most microcontroller modules have a limited number of outputs. Even if you use the analog inputs as digital I/O, there are only 19 pins on an Arduino, for example. That’s a fairly typical number for an 8-bit controller, and it seems not nearly enough if you want to control, say, 100 LEDs or more. There are a couple ways around this problem. Without adding any additional hardware, you can make a matrix of your LEDs and control them using row-column scanning. If you want discrete analog control over one output at a time, you can use a multiplexer. For digital control over multiple pins, you could use an addressable latch or a shift register. If you need pseudo-analog control over multiple pins, you could use a PWM driver. There are also several LED driver chips that are designed specifically to control groups of LEDS.
Continue reading →
This tutorial will show how to control multiple LED outputs from a microcontroller using a CD4099B addressable latch.
Parts you’ll need:
- CD4099B addressable latch
- Arduino microcontroller (Any model will do)
- 16 LEDs
Continue reading →
This tutorial will show how to control multiple LED outputs from a microcontroller using a CD4067 analog multiplexer.
This is a stub. More explanation will follow, but for now, here are schematics and code for Arduino.
Parts you’ll need:
- CD4067B multiplexer
- Arduino microcontroller
- LEDs
Continue reading →
This tutorial will show how to control multiple LED outputs from a microcontroller using an STP16C596 shift register. The STP16C596 is similar to the popular 74HC595 shift register, but it’s nicer because it can sink a constant current to the LEDs it’s driving. It works slightly differently, however, so this code won’t work exactly for the ’595.
This is a stub. More explanation will follow, but for now, here are schematics and code for Arduino.
Parts you’ll need:
- STP16C596 shift register
- Arduino microcontroller
- LEDs
- 1-kilohm resistor
Continue reading →