We’ve made a number of different versions of the mobile rocket launcher, and all of them have been fun. The version above is using the a PI 1 with a PiFace Digital module for the motor controls and a wireless keyboard for the controls.
The version shown below is using a PI 3, with an ExploreHAT Pro for the motor controls and a Python Web Server program for the controls. By using some simplified HTML tagging we were able to use an old PSP as a remote interface console.
Rocket Launcher Sample Code
We found the rocket launcher in a sale bin, but they call be purchased at: http://dreamcheeky.com/thunder-missile-launcher. The rocket launcher comes with it’s own Windows based program.
Below is some Python code that will control the rockets launchers turret and fire a missile. Based on this sample code you should be able to make some cool projects. A couple of notes from our testing:
- you need to manually stop the turret motion once you start it. So you need to set your own wait time
- you need 3-4 seconds between each missile firing. It might be a coincident but we damaged our first rocket launcher trying to issue fast firing commands.
import usb import sys import time device = usb.core.find(idVendor=0x2123, idProduct=0x1010) # On Linux we need to detach usb HID first try: device.detach_kernel_driver(0) # except Exception, e: except Exception: pass # already unregistered device.set_configuration() endpoint = device[0][(0,0)][0] down = 1 # down up = 2 # up left = 4 # rotate left right = 8 # rotate right fire = 16 # fire stop = 32 # stop #device.ctrl_transfer(0x21, 0x09, 0x0200, 0, [signal]) while True: print('r = right, l = left, u = up, d = down, f = fire ') key = raw_input ('enter key:') if (key == 'l'): device.ctrl_transfer(0x21, 0x09, 0, 0, [0x02, left, 0x00,0x00,0x00,0x00,0x00,0x00]) if (key == 'u'): device.ctrl_transfer(0x21, 0x09, 0, 0, [0x02, up, 0x00,0x00,0x00,0x00,0x00,0x00]) if (key == 'r'): device.ctrl_transfer(0x21, 0x09, 0, 0, [0x02, right, 0x00,0x00,0x00,0x00,0x00,0x00]) if (key == 'd'): device.ctrl_transfer(0x21, 0x09, 0, 0, [0x02, down, 0x00,0x00,0x00,0x00,0x00,0x00]) if (key == 'f'): device.ctrl_transfer(0x21, 0x09, 0, 0, [0x02, fire, 0x00,0x00,0x00,0x00,0x00,0x00]) time.sleep(4) time.sleep(0.1) device.ctrl_transfer(0x21, 0x09, 0, 0, [0x02, stop, 0x00,0x00,0x00,0x00,0x00,0x00])