Pac-Attac (1lb Meltybrain)

My Antweight (1lb) Meltybrain Battlebot (1st version)

inside of pac-attac version 5Inside of Pac-Attac version 5, with brushless motors, custom PCBs, and dual accelerometers

See current videos of Pac-Attac and fights on my youtube channel. Or keep reading for pictures and discussion of how Pac-Attac functions.

A Meltybrain battlebot is one that can spin its entire body, while performing regular translational movements. Basically driving around normally while spinning its full weight at high speed.

This can provide a higher kinetic impact (depending on spin speed) than a shell spinner, where the bot base remains still underneath a spinning shell, or a horizontal spinner, with a rotating ring around a stationary bot.  Because nearly 100% of the bot weight can be used as a weapon, Meltybrain style bots can be fierce.

Pac-Attac uses a line of LEDs to show an animated Pac Man opening and closing its mouth

The original Pac-Attac with a row of green LEDs

pac-attac spinning showing pac-man image on top

Pac-Attac V showing Pac Man on top with a COB LED strip. The color LEDs are used for battery and other status indication.

Here is a video showing the animated mouth and the positioning ability with the accelerometer (of the original Pac-Attac)

Here is a video tour of the inside and outside of the original.


This page will be updated periodically as I have time, but for now, here are pictures from my build and design process for the original. The current version (5) uses many of the same concepts and design, but improves upon the first in several ways.

Most notably, versions 2-5 use brushless motors, which not only provide more torque compared to the original brushed ones, but are way more responsive to sudden speed changes, which is crucial for how meltybrains drive.

Versions 3-5 have a custom PCB for the control, power distribution, and RGB LEDs. This is also when I switched from the Arduino Nano to the ESP8266, a superior chip in speed, size, and connectivity. WiFi isn’t used in battle, but uploading code changes wirelessly is handy.

Version 5 introduces a dual accelerometer set, for on-the-fly switching between a 16G and 200G sensor. Since the 16G sensor is much more precise, this allows for competent positioning while at slow speeds, keeping the 200G sensor for higher RPMs. As the outward G force to RPM equation is exponential, the 200G accelerometer works fine when Pac-Attac is above 1500 RPM or so.


3D model of bot

Basic 3D model

motor with circuits on top

I used this copier motor as a test bed for experimenting with positioning code. It could spin at exactly 1044 RPM. The circuits on top were powered by a small battery.

I set out on this project to build a meltybrain that could be used without an external light beacon. Since my local combat events are held outside in the sun, I didn’t want to worry about interference issues from sun reflections and the like.

The final design allows use of an accelerometer, manual speed setting, or the tachometer on one of the wheels as the positioning sensor source.

I use the left vertical stick on the transmitter to set the spin speed, right horizontal to adjust pointing direction, and right vertical to move forward. When spinning, the forward speed is based on how fast the bot is spinning. Any push on the right vertical stick moves the bot forward.

schematic

Full electrical schematic of the original.

The main processor is an Arduino Nano, which pulls data in from the tachometer circuit, MPU6050 accelerometer, and FlySky receiver. To adjust for lighting conditions, the tachometer circuit has an op-amp comparator with an adjustable cutoff. The iBUS protocol is used for communication with the FlySky receiver, allowing one wire to carry 10 channels of R/C input.

The motor controllers are single chip MOSFET-based drivers that I ordered straight from China. They claim to support up to 13 amps! Simple PWM inputs. Datasheet

Future programming may allow for displaying patterns or text on top of the bot, so the LED strip is broken into sections. Note that the center LED is connected directly to power, so that it can be a reliable power/armed indicator.

The basic concept of my positioning algorithm is as follows:

outward acceleration -> [smoothing (average x100) + physics math] = bot rotations per second.


bot rotations per second ->

microseconds since last calculation -> [basic math] = bot angle

previous bot angle (0-360) ->


bot angle +- angle change from R/C = current bot angle


The LEDs and translation timing are based on the angle of the bot, from 0-360 degrees.

When translating, each motor is on for 180 degrees at a time. A good explanation is given here by Team Panic https://www.youtube.com/watch?v=fHZTm-qGcZs&t=752s

Here is my un-optimized Arduino code: pacAttacVer2

empty 3d printed base

A freshly printed base. Made with PETG.

test fitting parts

Test fitting parts in the base. Not the correct location for the R/C receiver

mainboard top

Top of mainboard, waiting on chip installation and LED wiring. The nut is part of the power switch.

mainboard bottom

Bottom of original mainboard.

arduino top

Top of Arduino Nano, with R/C connector and power diode

test fitting 2

More accurate test fitting of parts

led board

Top of LED board. Despite what it looks like, it is not meant to plug into a USB port!

leds on top plate

LEDs showing through top plate

full circuit

Electronic guts of the original ready to be installed fully

Several versions of wheel hub before I got it right

weapon

Initial weapon design with two teeth. This didn’t have as much bite as the current one tooth model.

Loaded with hot glue to hold everything in place

All the tasty chips under the LED board

Accelerometer in the center of the bot

The somewhat useless vibration motor.

The tachometer stripe on the wheel

Homemade battery disconnect switch

Pac-Attac and Little Mac II at the start of the Bot Brawl

Little Mac II (my Beetleweight) and Pac-Attac, ready for battle

Bots after battle, broken opponent

Broke the lifter arm off Dead Angle, still lost the fight from being pushed into the pit. Also broke off my tooth by slamming into the wall.

broken bot

Broke several parts off Duckling, and cracked its frame. I won this fight.

4 thoughts on “Pac-Attac (1lb Meltybrain)

      1. Most dont show and when clicked give this error:
        We cannot complete this request, remote data could not be fetched

Leave a Reply

Your email address will not be published. Required fields are marked *