ATtiny85 Plays The Chrome Dinosaur Game

If you’ve ever had your internet connection drop out while running Chrome, you’ve probably seen a little dinosaur pop up to tell you what’s going on. You might have then tapped a key and learned that it’s actually a little mini-game built into the browser where you have to hop your intrepid T-rex over a bunch of cactii. [Albert David] is well familiar with this little Easter egg, and set about building a system to automatically play the game for him.

The build uses an Digispark ATtiny85 microcontroller board to run the show. It’s set up to plug in to a PC and enumerate as a USB HID device, so it can spoof the required key presses to play the game. To sense the game state, the device uses a pair of LM393 light-dependent resistor comparator modules. The bottom sensor is used to detect cactus obstacles in the game, while the upper sensor detects flying bird obstacles. Armed with this information, the microcontroller can deliver keypresses at just the right time to jump over cactuses while dodging birds overhead.

[Albert] does a great job of explaining how the project came together in the write-up. There are also useful calibration instructions that indicate how to place the sensors and tweak their thresholds so they trigger reliably and help you net a suitably high score.

Interestingly enough, this isn’t the first time we’ve seen a microcontroller take Chrome’s hidden game for a spin. The game itself has become popular enough that we’ve also seen it ported to other platforms.
Continue reading “ATtiny85 Plays The Chrome Dinosaur Game”

Building A Robot Partner To Play Air Hockey With

Air hockey is one of those sports that’s both incredibly fun, but also incredibly frustrating as playing it by yourself is a rather lonely and unfulfilling experience. This is where an air hockey playing robot like the one by [Basement Builds] could come in handy. After all, after you finished building an air hockey table from scratch, how hard could it be to make a robot that merely moves the paddle around to hit the puck with?

An air hockey table is indeed not extremely complicated, being mostly just a chamber that has lots of small holes on the top through which the air is pushed. This creates the air layer on which the puck appears to float, and allows for super-fast movement. For this part countless chamfered holes were drilled to get smooth airflow, with an inline 12VDC duct fan providing up to 270 CFM (~7.6 m3/minute).

Initially the robot used a CoreXY gantry configuration, which proved to be unreliable and rather cumbersome, so instead two motors were used, each connected to its own gearbox. These manipulate the paddle position by changing the geometry of the arms. Interestingly, the gearbox uses TPU for its gears to absorb any impacts and increase endurance as pure PLA ended up falling apart.

The position of the puck is recorded by an overhead camera, from where a Python script – using the OpenCV library running on a PC – determines how to adjust the arms, which is executed by Arduino C++ code running on a board attached to the robot. All of this is available on GitHub, which as the video makes clear is basically cheating as you don’t get to enjoy doing all the trigonometry and physics-related calculating and debugging fun.

Continue reading “Building A Robot Partner To Play Air Hockey With”

Pokemon Go Had Players Capturing More Than They Realized

Released in 2016, Pokemon Go quickly became a worldwide phenomenon. Even folks who weren’t traditionally interested in the monster-taming franchise were wandering around with their smartphones out, on the hunt for virtual creatures that would appear via augmented reality. Although the number of active users has dropped over the years, it’s estimated that more than 50 million users currently log in and play every month.

From a gameplay standpoint, Go is brilliant. Although the Pokemon that players seek out obviously aren’t real, searching for them closely approximates the in-game experience that the franchise has been known for since its introduction on the Game Boy back in 1996.

But now, instead of moving a character through a virtual landscape in search of the elusive “pocket monsters”, players find them dotted throughout the real world. To be successful, players need to leave their homes and travel to where the Pokemon are physically located — which often happens to be a high-traffic area or other point of interest.

As a game, it’s hard to imagine Pokemon Go being a bigger success. At the peak of its popularity, throngs of players were literally causing traffic jams as they roamed the streets in search of invisible creatures. But what players may not have realized as they scanned the world around them through the game was that they were helping developer Niantic build something even more valuable.

Continue reading Pokemon Go Had Players Capturing More Than They Realized”

Mini Multi-Arcade Game Cabinets With An ESP32 And Galagino

Most people love arcade games, but putting a full-sized arcade cabinet in the living room can lead to certain unpleasant complications. Ergo the market for fun-sized cabinets has exploded alongside the availability of cheap SBCs and MCUs that can run classical arcade titles. Microcontrollers like the ESP32 with its dual 240 MHz cores can run circles around the CPU grunt of 1980s arcade hardware. Cue [Till Harbaum]’s Galagino ESP32-based arcade emulator project, that recently saw some community versions and cabinet takes.

There was a port to the PlatformIO framework by [speckhoiler] which also added a few more arcade titles and repurposed the enclosure of an off-the-shelf ‘My Arcade’ by stuffing in an ESP32-based ‘Cheap Yellow Display‘ (CYD) board instead. These boards include the ESP32 module, a touch display, micro SD card slot, sound output, and more; making it an interesting all-in-one solution for this purpose.

Most recently [Davide Gatti] and friends ported the Galagino software to the Arduino platform and added a 3D printed enclosure, though you will still need to source a stack of parts which are listed in the bill of materials. What you do get is a top display that displays the current game title in addition to the display of the usual CYD core, along with an enclosure that can be printed both in single- or multi-color.

There’s also a build video that [Davide Gatti] made, but it’s only in Italian, so a bit of a crash course in this language may be required for some finer details.

Continue reading “Mini Multi-Arcade Game Cabinets With An ESP32 And Galagino”

Running Ocarina Of Time On The Apple Watch

At this point in time it can be safely stated that the question ‘Does it run Doom?’ defaults to a resounding ‘Yes’. This raises the question of what next games should be seen as some kind impressive benchmark, with [Game of Tobi] gunning heavily for Nintendo 64 titles. Most recently he ported Legend of Zelda: Ocarina of Time to the Apple Watch, with the port almost ready for release along with Super Mario 64 after a few more issues are fixed.

Although there are a few approaches when it comes to porting Nintendo 64 games to other systems, if the target system is effectively a small PC with all of the amenities such as rendering APIs, then using the Ship of Harkinian project as the basis is a good start. This is what [Toby] did with the Apple Watch, and after some work it runs Ocarina of Time at a solid pace, with as the main flaw being busted text rendering.

Of course, the overwhelming flaw with any small gaming system and touchscreen-only systems is that our meaty paws do not shrink that well, and using telepathy to control game systems still isn’t a feature. Thus the biggest compromise with the Apple Watch port is that you have the controls overlaid on the screen. This could probably be compensated for with a Bluetooth controller or similar, but that poses its own problems when it comes to two-handed playing.

Practical issues aside, it’s pretty amazing that just about any ‘smart’ device that we carry around with us can also be a full-featured retro gaming system, and we appreciate [Toby]’s efforts in making this a reality.

Continue reading “Running Ocarina Of Time On The Apple Watch”

Turning A GDB Coredump Debug Session Into A Murder Mystery

Debugging an application crash can oftentimes feel like you’re an intrepid detective in a grimy noir detective story, tasked with figuring out the sordid details behind an ugly crime. Slogging through scarce clues and vapid hints, you find yourself down in the dumps, contemplating the deeper meaning of life and  the true nature of man, before hitting that eureka moment and cracking the case. One might say that this makes for a good game idea, and [Jonathan] would agree with that notion, thus creating the Fatal Core Dump game.

Details can be found in the (spoiler-rich) blog post on how the game was conceived and implemented. The premise of the game is that of an inexplicable airlock failure on an asteroid mining station, with you being the engineer tasked to figure out whether it was ‘just a glitch’ or that something more sinister was afoot. Although an RPG-style game was also considered, ultimately that proved to be a massive challenge with RPG Maker, resulting in this more barebones game, making it arguably more realistic.

Suffice it to say that this game is not designed to be a cheap copy of real debugging, but the real deal. You’re expected to be very comfortable with C, GDB, core dump analysis, x86_64 ASM, Linux binary runtime details and more. At the end you should be able to tell whether it was just a silly mistake made by an under-caffeinated developer years prior, or a malicious attack that exploited or introduced some weakness in the code.

If you want to have a poke at the code behind the game, perhaps to feel inspired to make your own take on this genre, you can take a look at the GitHub project.

Cynus Chess Robot: A Chess Board With A Robotic Arm

Downward-facing camera and microphone in the arm. (Credit: Techmoan, YouTube)
Downward-facing camera and microphone in the arm. (Credit: Techmoan, YouTube)

There are many chess robots, most of which require the human player to move the opposing pieces themselves, or have a built-in mechanism that can slide the opposing pieces around to their new location. Ideally, such a chess robot would move the pieces just like how a human would, of course. That’s pretty much the promise behind the Manya Cynus chess robot, which [Matt] over at the Techmoan YouTube channel bought from the Kickstarter campaign.

Advertising itself as a ‘Portable AI Chess Robot’, the Manya Cynus chess robot comes in the form of a case that unfolds into a chess board and also contains the robotic arm that contains the guts of the operation. Powered by the open source Stockfish chess engine, it can play games against a human opponent at a few difficulty levels without requiring any online connectivity or a companion app. It moves its own pieces by picking up the metal-cored chess pieces with its arm, while its front display tries to display basic emotions with animated eyes. A 3-MP downward-facing camera is located on the head section, along with a microphone.

As for how well it works, [Matt] isn’t the best chess player, but he had a fair bit of fun with the machine. His major complaints circle around how unfinished the firmware still feels, with e.g., invalid moves basically ignored with only a barely visible warning popping up on the screen. In general, he’d rather classify it as an interesting development kit for a chess robot, which is where the BLE 5.1-based interface and a purported Python-based development environment provided by Manya seem to come into focus.

Continue reading “Cynus Chess Robot: A Chess Board With A Robotic Arm”