The version 1.0 hand controllers and the reflectance sensor (with two green bands located near the front edge of the belt) of the Minerunner controller system.
Minerunner is made from a treadmill. It uses a reflectance sensor that reads the rotation of the belt rollers and translates the rotations into different speeds. Speeds on the treadmill are generally equivalent to speeds achieved in the game when a node is equivalent to a cubic meter. Currently, there are ten speeds configurable in the game.
Version 1.0 Controls on the left: this controller requires two hands. The white button turns left, the red button turns right, and the blue buttons are both jump buttons. Version 2.0 controller on the right. This is made from a Wii nunchuk and incorporates X and Y panning, a jump button, and a secondary button (currently mapped to dig or mouse click), all on one handy controller
with a cord that's slightly too short.
The Pololu A-Star can act as a human interface device so the controller inputs, be it buttons or a joystick are translated into keyboard and mouse data. For example, on the v1.0 controller, the blue buttons, the "jump" buttons, are translated into presses of the space bar.
The speeds of the treadmill are translated into different keypresses depending on how fast the belt is moving. The odometry is achieved by taking reflectance readings off of one of the belt rollers. There is a piece of white tape on the roller and each time it passes, an infrared emitter and detector pair 'sees' the IR light reflected off of the tape (and not off of the bare roller). Setting up different speeds for this part required modifications to Minetest and I can think of several ways to do this. The approach I chose, which I don't think is the best solution but it was quick and reasonably easy, was to add in 10 different speed keys each assignable in minetest.conf.
A detail of the sensor. The sensor reads reflectance off of a strip of tape on the roller.
Traveling over land is generally safe and is the fastest means of travel. However at night it can be hazardous. It seems that most of the harmful monsters currently defined in the game are land-based. In particular, the vombies are fierce and come out at night in numbers and can be difficult to escape. Aside from the Hairy Eyeball, currently all of the aggressive NPCs I use in the game come from the Animals Modpack.
The control board for Minerunner is pretty simple. (This is the version 1.0 board. The v2.0 board, shown above, is similar and simpler.)
Some notes about this controller:
- You can not swim while using Minerunner. If you run into water you will sink. If you need to cross a large body of water, use Minerower or Mineflyer.
- Of course, You can't fly either while using Minerunner. If you jump or accidentally step off the edge of a cliff, (as I have done), you should hope that there is deep water at the bottom.
- In my implementation, speed in the game is calibrated to the speed of the treadmill. This is the only machine that I use that is calibrated to distances in the game.
- Since I've throttled Minerower and Mineflyer, travelling by land using the Minerunner is the fastest. (I'm not a fan of running so this is how I give myself the incentive to do it more.)
- Travel by land at night, particularly in unexplored areas, is dangerous. Be agile if you want to stay alive or stick to water based travel at night. (It helps to run along the waters' edge in case you need to escape quickly.)
- Travel by land in daytime is generally safe. Watch out for bears and wolves. While I've been attacked by both, they are both rare.
- The treadmill is slow to react to speed change requests. If you find yourself next to a zombie and you are moving slowly, sometimes it is faster to just grab the treadmill frame and push hard rather than press the speed button and wait for the treadmill to respond, you may be dead by the time it speeds up.
The code for Minerunner is open source and available here:
- minerunner-v1.0.tar.xz This is the v1.0 controller, two hands, X panning only (ie. turns left right only, no looking up or down), no digging.
- minerunner-v2.0.tar.xz This is the v2.0 controller, the nunchuk, one hand, Y panning, digging. Also, in this version, the safety output enabler has been converted to a simple on/off value instead of a toggled state.
Note: for this controller, I used Tim Teatro's wiinunchuk.h header, although I set it up as a library so I could keep it stored outside of my package.
Please send questions, comments, complaints, and/or bug reports to minercise @ richfox dot org
Back to Introduction