So I went to the Intel Developer Forum this year. It was just as fun as last year, although this time I went with a few friends and we ducked out to explore San Francisco a little.
- I got another Intel Galileo board. (Yes, I’m aware the sensor page may be down. My server probably went offline at the campus.)
- We learned a little bit about I2C and got to play with the Intel Edison platform.
- I won an Asus ZenPad C 7 Android tablet. (Naturally, it uses Intel tech.) This is particularly cool to me; it’s my second modern Android tablet. (The first one I still need to blog about. Coming soon!)
There was a major focus on the Intel RealSense technology this year. One notable example was an “infinite run” style video game on a cell phone connected to a large television. The cameras on the cell phone detected the player’s position in front of the television and used that data to control the player’s character. Dodging left/right made your character dodge left/right on screen. It was impressive, especially considering that it was running on a cell phone, although the lag was noticeable. (The Intel employee had to change out cell phones because the first one was getting too hot!)
There were also robots. Terrifying robots. Terrifying six-legged four-foot-tall arachnid robots, plus a small army of its brethren doing a synchronized dance. It was creepy, but in an awesome way. Then there was the Savioke Relay. If this is what the robot uprising looks like, I have bad news: we’re all doomed, because its cuteness is disarming. They gave it eyes. They gave it happy little digital eyes that somehow manage to convey more expression than certain people I know.
Don’t worry though, it has one weakness: carpet. Whoever did the interior decoration this year at Moscone put in some absurdly thick carpeting in places, and it was giving humans trouble. Now imagine a little top-heavy robot scooting around on wheels. Poor Savioke tried crossing from linoleum to carpet at full speed. Fortunately, he didn’t tip, and his sensors made him stop and proceed at a slower clip.
If Savioke is the next Skynet, I for one welcome our future robot overlords.
I cleaned up the Python source code for the Intel Galileo temperature sensor I blogged about earlier this summer, and pushed the source up to my GitHub account. The code is very brute-force and make-do (it was written in a very short period of time during a very crazy semester and hasn’t been touched since) but I think it will be more useful online than sitting on my drives.
The temperature sensor is a TMP36 analog temperature sensor. I followed the directions at Adafruit to assemble a circuit and hook it up to my Galileo Board 2. I used the same circuit diagram as shown–the Galileo Board series and the Arduino shown are electronically compatible–although I added a 0.1uf capacitor between VCC and GND as suggested by a commenter at SparkFun and the TMP36 datasheet to cut down on noise. (No, I’m not sure this is necessary, but the capacitor was cheap and the resulting measurements seemed accurate within a degree or so. Maybe I should take some EEE classes next semester to find out what it’s actually doing?)
The daemon itself is written in Python 2 and runs under Yocto Linux (the Intel-provided full-sized Linux SD card image for the Galileo Board 2). A LSB script does a little configuration in /proc to give access to the analog input pins and then starts the daemon. The daemon listens on port 8080 for HTTP requests and serves up temperature data for the past 15 minutes, the past hour, the past day, and the past week, returning the data as a JSON feed that can be graphed by a library like MetricsGraphics.
Instructions for setting up the daemon are on the GitHub page. You’ll need the Galileo SD Card Image to install Yocto Linux. The newest version, 1.0.4 at the time of writing, is much smaller than the version I have. You made need to go to the old downloads page and download version 1.0.3 if the newest version does not have Python available.
In case you missed it, the feeds from the project can be seen in graph form here.
My independent study project turned into a full-blown research project last semester. The project involves benchmarking lots of physical and virtual machines, which means the project involves generating lots and lots of heat. My equipment is in a room that has no air conditioning on evenings and weekends. I knew it got hot in there over the weekend, but I wanted to know: just how hot did it get?
So, using the Intel Galileo Board 2 I won at IDF2014, I cobbled together a smart temperature sensor. It uses a TMP36 analog temperature sensor wired to the Galileo’s Arduino-compatible analog input pins. With the Yocto Linux image on an SD card, a little Python daemon, and some /proc filesystem flags tweaked to control the Galileo’s onboard analog-to-digital converter, I can scrape data from the temperature sensor and make it available as JSON feeds, which were then read in by another script to be processed into a HTML report. It’s a little kludgy, but it works.
You can find the actual (current) feeds of the equipment room here. A glance at the week graph shows the pattern of air conditioning availability.
I’ll release the source code and write up step-by-step instructions soon.