Shoot Darts At The Shins Of Total Strangers

[Michael Brumlow] found us and sent us a link. Within a few seconds, we were driving a webcam-enabled Nerf dart tank through his office and trying not to hit walls or get stepped on by his co-workers. Unfortunately, it was out of darts at the time, but you can find them all over the floor if you scout around.

screenshot_remote_botAll of the code details, including the link where you can test drive it yourself, are up on [Michael]’s GitHub. The brains are an Intel Edison board, and the brawns are supplied by an Arduino motor controller shield and (for the latest version) a chassis bought from China.

It runs fairly smoothly, considering the long round trip from [Michael]’s office in Texas, through wherever Amazon keeps their Web Services, over to us in Germany and back. Once we got used to the slight lag, and started using the keyboard’s arrow keys for control, we were driving around like a pro.

It’s got a few glitches still, like the camera periodically overheating and running out of WiFi distance. [Michael] said he’d try to keep it charged up and running while you give it a shot. The controls are multiplexed in the cloud, so your chance of steering it is as good as anyone else’s. It’ll be interesting to see what happens when thousands of Hackaday readers try to control it at once!

It takes a certain kind of bravery to put your telepresence robot up on the open Internets. So kudos to you, [Michael], and we hope that you manage to get some work done this week, even though you will have all of Hackaday driving into your cubicle walls.

Learning Assembly With A Web Based Assembler

AssemblyOnlineVery few people know assembly. [Luto] seeks to make learning assembly just a little bit easier with his “fully functional web-based assembler development environment, including a real assembler, emulator and debugger.”

These days, you can be a microcontroller expert without knowing a thing about assembly. While you don’t NEED to know assembly, it actually can help you understand quite a bit about embedded programming and how your C code actually works. Writing a small part of your code in assembly can reduce code size and speed things up quite a bit. It also can result in some very cool projects, such as using Java to program microcontrollers.

With high quality example code, it is very easy to get started learning assembly. The emulator consists of a microcontroller with 32 registers, hooked up to three LEDs, two buttons, and a potentiometer. This is way better than painfully learning assembly on real hardware. Be sure to check out the online demo! Being able to step through each line of code and clearly see the result help make assembly easier to use and understand. It would be great to see this kind of tool widely adopted in engineering programs.

Have you used assembly in any of your projects? Let us know how it went and why you choose to use assembly

Web Based Automation Courtesy Of Raspberry Pi

web-based-automation-via-rpi

This project is a great example of the Raspberry Pi’s ability to eclipse Arduino when it comes to interaction. [Fall Deaf] mentions that he used to use an Arduino board with an Ethernet shield to add extensible interactivity to his project. But this one, which is a home automation lamp project, uses a Raspberry Pi instead. The concepts end up being very similar. But the cost of the hardware is less and the coding work is arguably orders of magnitude easier.

Don’t get us wrong, the hardware is fundamentally different. When you move from Arduino to RPi you lose some I/O pins and the low level control of them isn’t quite as straight-forward. But you also don’t have to program the thing in C. The Linux kernel handles the low level control which means you can write your scripts using Python. Because Python is an interpreted language the testing and debugging is much faster — no need to flash new code, just run the script again.

This project used the RPi GPIO to drive a strip of LEDs which use the WS2801 protocol. The board includes a NIC which makes it a snap to use as a web server. The smart phone controls seen above are served up from the Pi using jQuery. Right now there’s a cord running out of the lamp. But there should be plenty of room to use a screw-in outlet adapter and to hide the RPi and its PSU inside.

The board still has enough juice to drive other automation features too, like acting as a web radio server.

Continue reading “Web Based Automation Courtesy Of Raspberry Pi”