Most of us carry a spectacularly powerful computer in our pocket, which we rarely use for much more than web browsing, social media, and maybe the occasional phone call. Our mobile phones are technological miracles, but their potential sometimes seems wasted.
It’s always a pleasure to see something that makes use of a mobile phone to drive some nuts-and-bolts hardware. [Jose Julio]’s project does just that, using the phone as the brains behind a robotic air hockey table.
Readers with long memories will remember previous air hockey tables from [Jose], using 3D printer components controlled by an Arduino Mega with a webcam suspended above the field of play. This version transfers camera, machine vision, and game strategy to an Android app, leaving the Arduino to control the hardware under wireless network command from above.
The result you can see in the video below the break is an extremely fast-paced game, with the robot looking unbeatable. If you want to build your own there are full instructions and code on GitHub, or if you follow the link from the page linked above, he sells the project as a kit.
You can go back and read our coverage of the original air hockey robot from 2014, or if you are interested in [Jose]’s other work you can have a look at his robotic spider.
[via /r/engineering]
“Spectacularly powerful computer” with poor I/O beyond built-in sensors.
IDK, it’s pretty good as long as you’re happy with serial…
I don’t think that the human was playing to it”s full potential, but still really nice.
Agree. But keep in mind that an smartphone can only deliver 30fps. Detecting things moving that fast knowing the fps limitation and the reduced dimensions is quite difficult. This is a thing!
Not sure what you mean. My phone can do 120fps at 720p and 60 fps at 1080p
The latest iPhone can do 240 fps @ 720p.
You can record video at 120 fps, but you are “buffering” that video and then storing it. Not in real time. There is a lag there you can not afford if you want to use it to make decision on the fly. According to the current Arduino video API, the max fps (no lag) are 30 fps
or you just account for the fixed delay (buffer size, transfer protocol, etc..). Also the arduino is only controlling the hardware (steppers, end switches etc.) It is certainly not doing any kind of machine vision, let alone at 30 fps.
The human scored once, so apparently it’s not unbeatable. Yet. But it is definitely very cool.
Having two of these would be great – people could compete by how effective their programs are.
This is a competition I would love to see.
Absolutely!
On a homemade table, would be even better
Actually, that would be so much more interesting to me than battlebots.
“BOTBATTLE”
Agreed – I’d love to see two robots duke it out with the software set to the most aggressive and mean settings (guessing that the skill level of the robot player can be controlled).
The maths might be a bit harder, but it should be possible for it to calculate the perfect trajectory to hit the puck around the opponent straight into the goal. But then, there’s no fun playing against a supreme player is there?
Yes, but then the player moves. Just aiming for the goal every time doesn’t work-just like tennis. You build momentum and induce anticipation and lag into the opposing players’ movements, then cross unexpectedly.
Or one of a million other strategies
Although “vertical video” frowned upon by some people, in this case it would cover the table much better. Why was the phone mounted horizontally?
“is” is missing
would be actually cool to control it via a raspberry pi. to me, that would be closer to “maker”, kind of. opencv etc are all available for the pi as well, should work well with the pi-cam.
idk, repurposing a old smartphone for robotic application is quite “maker”-ish, isn’t it?
Well it’s great, but definitely not unbeatable since a human was able to beat it once. One down, many more beatings to go! But I love it!