If any of the info on this website was useful for your projects or made your head spin with creative ideas, and you would like to share a token of your appreciation- a donation would be massively appreciated!

Your donation will go to my Robotics Fund, straight towards more sensors, actuators, books, and journeys. It takes a lot to continue building these robots, and I’m really thankful of everyone who helps encourage me along the way.



“A wise robot once said to me through Serial.println- that robots teach us about ourselves.”

RoboBrrd’s Interactive Games Interfacing

One of the things that has been bugging me about RoboBrrd the past two days is wondering how it will interact with the software games. When planning this, I was thinking of making the games in Processing (Java). However, Java is getting old, and with new technologies on the rise, like websockets, I wanted to research this more.

You may be wondering, why are the interactive games so important for RoboBrrd anyway? If you are just trying to create an educational robot, who needs the games and software? We want to create a blended reality between the real RoboBrrd and the virtual RoboBrrd for the student, so that it is always accessible and available to the student to learn, hence the prior nickname ‘Learning Pet’. RoboBrrd is more than a robot, it’s a way to actively interact with virtual based learning applications.

One of the cool ideas that is arising in the hardware-software interface realm is driverless and middlewareless communication. The HIDUINO is a really cool implementation of this. Check out the website and the video for more information.

Here are some ideas of ways of communicating that I was exploring:

– on remote server

Sleek, new way of interfacing
Active community
Games are in the browser
Real time

Hosting for node.js with…
Would have to run some sort of middleware to communicate between the socket and the Arduino.

– RoboBrrd as a keyboard HID

Easy way to interact with a game on a server
No middleware needed

Only one way communication

– RoboBrrd as an audio or video HID

When researching this I found some ways of communicating to a usb webcam, but it is only for video streams mainly.

– RESTful API with AJAX auto-reload

Auto refresh
Openable API

Still need a fancy server to enable long running ajax processes

– Processing game, RESTful API

It would work.

It’s ancient.

Here are interesting links that were explored while researching:
physical-js JavaScript-based physical computing
Circuits@Home lots of USB Host & HID information here
Garmin communicator did some interesting this with communication
Mozilla Audio Data API
jasmid MIDI synthesis
Device element discussion
Implementing device
WebRTC Group
Node.js and
Ajax periodic refresh
RESTful API with PHP and Apify
Node.js and WebSockets Demo

As you can see, the implementation that would most likely work would be the Processing game with a RESTful API back to the server for storing data. So yes, I did pretty much just go around in a complete circle, but I think that learning about more ways to communicate between software and hardware is really interesting.

So, happy holidays everyone- and there will be a week 2 progress update post later this evening!

5 CommentsLeave a Comment

  • bhtooefr

    5 years ago

    Just had an idea for using HID.

    HID keyboard actually is NOT unidirectional. If you toggle the state of caps lock, num lock, or scroll lock, you can send data back to the “keyboard”. Also, I forget if repeat rate is handled on the keyboard with HID, but it is with PS/2 – so you may be able to send a repeat rate packet or something similar, too. (The OS probably won’t like that, though.)

    The problem is that you’d have to have something running locally on the client (with more permissions than normal JavaScript has) to do either of those, and toggling the state would be OS-specific. So, it’s not REALLY driverless, but I believe it could run in userland with no special permissions – for that matter, it MIGHT even run in an OS X sandbox.

  • Chris Kraft

    5 years ago

    I am not sure you have defined the problem that you are trying to solve. You’ve defined methods of solving problems.

    What is the end goal in the simplest of terms? Interface the robot to a computer?

    Wouldn’t a HID joystick device work? Its been a bit since I looked at the USB spec but I was programming bi-directional joystick devices on my Atmel AT90USB1287.

    Beyond that calling Java “ancient” is, well, ignoring its potential usefulness. Focus on the best tool, not on what has the most hype. Node.js is interesting but the jury is still out on it and many pro developers are calling it pretty bad.

    There are people who promote technologies because they need to sell 1 – themselves, 2 – sell services, 3 – sell books. Don’t get sucked into the hype.

  • bhtooefr

    5 years ago

    Yeah, if you’re running locally, HID joystick works, too – I started writing my comment based on it being a web app, started to include HID joystick, remembered that it wouldn’t really work with a web app, deleted that, then realized there would have to be a local component, and then forgot to put the HID joystick stuff back in.

  • Ted Coello

    5 months ago

    There is noticeably big money to comprehend this. I suppose you have made particular nice points in functions also.

  • Josef Deibert

    5 months ago

    Typewriter… […]It needs to become ironed with low setting right up until the graphic is entirely transferred towards the ribbon[…]…

Leave a CommentPlease be polite. We appreciate that.

Your Comment