Robot can barely move with so much hardware strapped to it

web-server-robot

We think that [Andrej Škraba] needs to start looking for a beefier motor platform. This little robot has so much hardware strapped to it the motors can barely keep up. But with a little help it can make its way around the house, and it takes a whole lot of connectivity and computing power along for the ride.

The white stick on the top is a single-board computer. The MK802 Mini sports an A10 processor and up to a gig of ram. Just below that is a USB hub which is sitting on top of a USB battery pack. This powers the computer and gives him the ability to plug in more than one USB device. The robot chassis is from Pololu. It uses an Arduino and a motor shield for locomotion, with commands pushed to it via USB.

This setup makes programming very easy. Here [Andrej] has a keyboard and HDMI monitor plugged in to do a little work. When not coding it can be disconnected and driven over the network. He makes this happen using an Apache server on the MK802 and node.js. See a demo of the system in the clip after the break.

[Read more...]

Hackaday Links: Christmas Eve, 2012

It’s Christmas Eve, the perfect time to interact with your extended familial units, eat cookies, nog things up a little, and watch Die Hard. Christmas Eve also means it’s a low-effort day here at Hackaday, so here’s a few cool things we’ve run across in the past few weeks.

A Round OLED Display

1_13inch_Round_OLED

That right there is a circular OLED display. [ArtistEngineer] over on reddit found this display on AliBaba. It’s a 1.13 inch diameter display with a resolution of 128×128 (yeah, we don’t know either). This looks like a great display for a DIY wrist watch, digital gauge, or loads of other devices where a square display doesn’t make much sense.

There seems to be a few circular OLED display manufacturers – including Truly Semiconductors who happened to put up a datasheet for their round display - but sourcing these in reasonable quantities is a pain. Anyone up for a group buy? Think of the fun you’ll have coding a polar coordinate display!

Computing with transistors

gate

So you know computers are made up of simple logic gates, latches, buffers, and other miscellaneous digital cruft,  but how do we turn these digital circuits into a computer? Over the last few months, [Andrew] has been putting up a bunch of blog posts on the application of digital logic. Start out on the ‘Computing with Transistors’ post before moving on to The Digital State and Circuits and Arithmetic. There’s some good readin’ there.

 Embedding 3D objects in a web page

Go ahead. Click it. It’s Sketchfab that allows anyone to publish interactive 3D designs without a browser plugin. If anyone out there is trying to build a Thingiverse clone that isn’t tied to Makerbot, consider using this for the preview page for each object.

Surprisingly, Twinkies were the one thing that didn’t survive the Apocalypse.

twinkie

While there’s no use in mourning the death of the Twinkie – Little Debbie also makes small cream-filled cakes – you might as well include some Twinkies, Snowballs, Ding Dongs, and Ho-Hos in your Christmas baking. [scoochmaroo] on Instructables put together a list of homebrew recipes for the now defunct Hostess snack cakes.

Perfect for autonomous robots

code

[maxogden] over on the gits put together a script for automatically joining wireless networks on Linux. This was tested on a Raspberry Pi, and we’re thinking it would be perfect for whatever autonomous creation you’ll be building in your workshop next year.

Adding Node.js based sensors to the Parrot AR drone

[Max Ogden] wanted the option to add sensors to his Parrot AR Drone. This a commercially available quadcopter which runs Linux. This makes it rather easy for him to use Node.js to read the sensors from an Arduino board. The use of the Arduino is merely for easy prototyping. It is only needed to bridge the drone’s serial port with a sensor’s delivery method, so just about any microcontroller could be substituted for it.

There are some hardware considerations to take into account. The manufacturer was nice enough to populate a 0.1″ pitch pin socket on the serial port (if only this kind of invitation to mess with hardware was an industry standard). But the device expects 3.3V levels so pick your hardware accordingly. There is one commenter who tried the project for themselves and found that the drone wouldn’t boot up with the Arduino already connect — he had to boot and then complete connections. Troubles aside this makes adding your own sensor payload very simple and you don’t have to wait until landing to get at the data.

Maybe we’ll have to add some shock voltage data reporting to our shockerDrone.

Add an Arduino to a Google+ Hangout

Google+ Hangouts provide a group video chat with the ability to add apps. [RobotGrrl] created a Node.js web app to control an Arduino that can be added to a Hangout.

There’s a Javascript client that runs inside of the Hangout and communicates with the Node.js server running on an EC2 server over WebSockets. The server receives this client data and sends commands to Processing using TCP sockets. Processing deals with communicating with the Arduino, allowing you to control many things from the Hangout.

In this simple example, [RobotGrrl] demonstrates how to toggle an LED from the Hangout. This includes a tutorial on setting up your EC2 instance, full source for the server and client apps, the processing sketch to control an Arduino, and the code to allow the app to be added to a Hangout.

This example shows the basics, but there’s a whole slew of things that could be controlled with this system. [RobotGrrl] even demonstrates some robots that are controlled from a Hangout interface.

Check out an overview video after the break.

[Read more...]

200 pound, WiFi deploying robot ran over my foot

[Adam Bercu] and [Dan Landers] from Artisan’s Asylum in Somerville, MA brought a very, very cool toy to Maker Faire this year. It’s a two hundred pound WiFi repeater deploying robot able to amble across unforgiving terrain and my foot.

The robot is controlled through a web interface with the help of a front-mounted web cam with pan and tilt controls. All the signals are sent through a WiFi connection to a node.js web server; not the best way to communicate with a robot over long distances, but [Adam] and [Dan] have a few tricks up their sleeve.

On the back of the robot are two Pelican cases loaded up with a battery and a Linksys WRT54G wireless router. When the robot reaches the limits of its range, it activates a solenoid, dropping a WiFi repeater. This repeater has enough battery juice to stay powered for about a day and a half, meaning the robot can make multiple trips to deploy a wireless network through some very hostile terrain. Perfect for disaster and search and rescue operations.

There are two videos after the break: the first is [Dan] going over the capabilities of his tank bot and the second is a short demo of the bot tearing up the grass at Maker Faire.

[Read more...]

Toorcamp: Nibble Node.js Widget

The hardware hacking village at Toorcamp provided space and tools to work on hardware. It was interesting to see what hardware hacks people had brought to work on. One example is [Owen]‘s Nibble Node.js Widget. The widget combines the popular node.js platform and custom hardware to create a node for the “internet of things.” The hardware consists of a Arduino Pro Micro, a bluetooth module, a LCD display, and a speaker in a laser cut box.

By using a custom package in node.js, the Nibble becomes an object which can be controlled by its methods. This allows for the developer to push messages to the display and control the device without worrying about the details of the hardware. Since node.js is designed for web applications, it’s simple to make the device controllable from the web.

[Owen] also wrote an emulator for the DCPU from the upcoming game, 0x10c. DCPU assembly is passed in from node.js, which compiles it and sends it to the Nibble. The device can then run the application using the DCPU emulation, which also allows for control of the display and the speaker.

There’s a lot of neat things that can be done with this minuscule cube, and [Owen] plans to release an NPM package for the node.js code.

node.js for Linux joysticks

[Tim Caswell] has been using gamepads and joysticks to demonstrate his node.js hacks for a long time. The thing is, he has been relying on C++ bindings to handle the hardware while trying to herald the praises of node.js. Why not cut out the middle man and write a joystick driver in node.js? It turns out to be so simple anyone can do it.

Granted, this is not a kernel driver. He’s relying on the Linux kernel to recognize the hardware and provide him with the customary /dev/js0 file which he can then work with. As you can see in the snippet above, he’s looping through code in order to constantly read from the hardware. To get this far he dug through the documentation for joystick packets (yay for open source!) to find that each is made of a 32-bit timestamp, a 16-bit value, and two 8-bit numbers identifying the event type and button or axis.

Once he has the packets, it’s off to the races. Each data type is parsed into an appropriate variable which you can use in the logic of your own program. Don’t be nervous, this will make a great weekend project!