/arduino-turret

Terminator-inspired Turret Project Controlled with C# WinForms App


Logo

Arduino-Controlled Airsoft Turret (T-33)

Terminator-inspired Turret Project Controlled with C# WinForms App

June 2015 - September 2015
Explore the docs »

View Demo · Report Bug · Request Feature

DISCLAIMER: AS THIS PROJECT MAY SEEM CONTROVERSIAL TO SOME AUDIENCE, I WOULD LIKE TO EMPHASIZE THAT THIS WAS ONLY A HOBBY/FOR-FUN PROJECT AND NOT AN ATTEMPT OF WEAPONIZATION. FINAL PRODUCT WAS ONLY USED DURING AIRSOFT GAMES WITH SAFETY GEARS AND IN MAKER FAIR SHOWCASE. AIRSOFT GUN HAD PROPER POWER BRAKES INSTALLED TO REDUCE ITS POWER TO APPROX. 0.1J, ADHERING TO REPUBLIC OF KOREA'S AIRSOFT SAFETY REGULATIONS

Table of Contents

================================================================

[LINK - WORKING VIDEO]

[LINK - BUILD NOTES VIDEO]

================================================================

About The Project

T-33

T-33 is an independent hobby project airsoft turret inspired by the movie Terminator. It is controlled by C# WinForms App and Arduino mainboard. Dating back to summer 2015, it is the first project that led me into the world of computer science and engineering, self-teaching C# and Arduino in the process.

Airsoft Turret

The T-33 turret has following features:

  • [Pan/Tilt motion of the gun]
  • [Electric Firing mechanism(semi-auto/full-auto)]
  • [5W Laser Beam]
  • [26 High-Power LED lights]
  • [Bluetooth COM connection with WinForms App]
  • [720p Wireless Webcam Feed]

The main arduino board is made of three levels: main Arduino-UNO, Quad-Relay sheild, and a custom shield with the rest of the components.

Arduino Setup

The Relay shield and its built-in Arduino library made it easier to control all the different features: Firing, Laser, and LED lights. The custom shield on top connected HC-06 Bluetooth model for communication and Pan/Tilt servo motors.

Although I tried to find the strongest servo possible for panning motion, the heavy weight of turret itself could not be moved with my servo. Therefore, I hooked up a 3:1 metal gear with the main turret and the servo to make the panning smooth as possible. This tripled the servo's torque but limited the panning range from 180 degrees to 60 degrees.

WinForms App

Development

Self-teaching C# for a week or two was enough to create a basic WinForms app to communicate with the turret. As an excited 15-year old, I spent majority of my time making the software look cool as possible. Unfortunately, the original code file was corrupted in an old laptop, so I could only upload the photos of code I took five years ago. (WinForms Application Code Folder)

Booting Screen

This is the booting screen that pops up when you first click the skynet.exe (yes, that's how I named it) Of course, the loading bar is completely decorational as there's nothing much to load anyways.

Connecting Screen

This is the connecting screen where you can use the bottom-left and top-right box to connect to the turret. There are two ways to connect to the turret:

  • [Connecting through USB port directly to the Arduino (Given proper Portname and Baud Rate)]
  • [Connecting through Bluetooth model that pops up on the top-right box]

Controlling Screen

Finally, the highlight of this application. This controlling screen is the main GUI where you can use on-screen buttons or your keyboard to control the turret. I'll explain the features starting from top-left:

  • [Status]
    • Calculates a rough approximate of BB-bullets left;
    • Automatically stops firing if the OVERHEAT gauge reaches the top
  • [Tilt] - Up/Down Arrow Key
    • Calculates and visualizes the tilt of turret
  • [CAM1]
    • Shows wireless webcam's feed in real time (the image above is a placeholder)
  • [PAN] - Right/Left Arrow Key
    • Calculates and visualizes the pan of turret
  • [Scan Mode] - 'S' Key
    • When toggled, turret slowly pans back and forth
  • [Angle]
    • [Roughly calculates the current pan/tilt value]
  • [CMD]
    • [Prints any errors/logs/bullets left]
  • [Arrows]
    • [You can click these arrows or use keyboard to pan/tilt/fire]
  • [Firing Mode] 'F' Key (respect)
    • [Switch between semi-auto/full-auto]
  • [Lights] ','(LED) '.'(Laser)
    • [Toggles the LED lights and Laser]
  • [Reload Mode] 'R' Key
    • [When bullets have ran out, the gun will automatically point down, waiting for user to reload]
  • [Unimplemented]

Build Notes

CAD Design 2

The first prototype was a simple model made of foamboard and a single servomotor to design the final turret. After several foamboard prototypes, this was the final version I liked the most.

CAD Design

According to the prototype's design, I visited RaonSquare(http://raonsquare.com/), a small company dedicated to building interactive art experience using Arduino. There, I met Jae-Pil Choi who taught and helped me creating CAD designs using Adobe Illustrator. During this two-hour meeting, Mr. Choi consulted me on overall product design process and gave feedbacks on some of my Arduino wiring plans

Laser Cutting

After finishing CAD design, I bought four 5mm MDF boards in a local woodworking shop and brought them to a small FABLAB in Korea University. With a small fee of approx. $30, a plain MDF boards became the structural components of my turret.

Base 1

Laser-cut parts were assembled with a combination of wood screws and wood glue.

Airsoft Gun Modification

Modifying the airsoft gun was perhaps the most straight-forward part. I purchased a cheap G39 motor airsoft gun from a local shop and disassembled them. In order to fire the gun electrically, all I had to do was replace the wires on the main motor and pull it outside. This way, the gun would automatically fire when two wires were connected through a simple relay.

Painted Base

Last but not least, the most exciting part awaits: painting and decorating. Because the entire turret was made of MDF boards, a board vulnerable to water, I had to use MDF primer first before adding the beautiful gray paint that suits the terminator-vibe. After the initial paint dried, I applied the SKYNET logo and T-33 text on the side of the turret before coating it with the sealer.

Contact

Tyler Kim - taewook.kim@columbia.edu

Project Link: https://github.com/tylertaewook/arduino-turret

Acknowledgements

  • [Jae Pil Choi, RaonSquare]