All Projects → AlfredoSequeida → roomba_flamethrower

AlfredoSequeida / roomba_flamethrower

Licence: MIT license
Raspberry Pi Zero W powered Roomba Flamethrower controlled by an Xbox One Controller.

Programming Languages

python
139335 projects - #7 most used programming language
OpenSCAD
209 projects
shell
77523 projects

Projects that are alternatives of or similar to roomba flamethrower

ControllerBuddy
Highly advanced game controller mapping
Stars: ✭ 47 (+235.71%)
Mutual labels:  xbox-controller, xbox-one-controller
octoprint-cli
Command line tool for controlling your OctoPrint 3D printer server
Stars: ✭ 25 (+78.57%)
Mutual labels:  3d-printing
SmartSpin2k
Transform your spin bike into a Smart Trainer!
Stars: ✭ 88 (+528.57%)
Mutual labels:  3d-printing
tronxy-xy100
Working with an inexpensive 3D printer, Other names: STARTT (from imakr.com) or Anet A8
Stars: ✭ 22 (+57.14%)
Mutual labels:  3d-printing
boombeastic
A Raspberry Pi based smart connected speaker with support for airplay, spotify, mpd and local playback
Stars: ✭ 206 (+1371.43%)
Mutual labels:  3d-printing
slicer
Fast 3D mesh slicer written in Go.
Stars: ✭ 55 (+292.86%)
Mutual labels:  3d-printing
U8glib-HAL
Customized U8glib for use in Marlin 2.0
Stars: ✭ 40 (+185.71%)
Mutual labels:  3d-printing
Original-CR10-Marlin-Firmware-Source
This is the ORIGINAL Creality CR10 Firmware Source as Creality installs it.
Stars: ✭ 16 (+14.29%)
Mutual labels:  3d-printing
homebridge-roomba-stv
Homebrige plugin for Roomba 9xx
Stars: ✭ 40 (+185.71%)
Mutual labels:  roomba
rasp vusb
This repo explains how to turn your Raspberry Pi Zero into USB Keyboard and Mouse. Also provides sample code and binaries to control them.
Stars: ✭ 85 (+507.14%)
Mutual labels:  raspberry-pi-zero-w
Print3r
Command line interface (CLI) for 3d printing
Stars: ✭ 41 (+192.86%)
Mutual labels:  3d-printing
TheMiniIndex
Crowd-sourced library of 3d models (minis, terrain, scatter, etc.) for D&D, Pathfinder, and other tabletop games.
Stars: ✭ 17 (+21.43%)
Mutual labels:  3d-printing
PiBeacon
Low-cost iBeacon using Raspberry Pi
Stars: ✭ 41 (+192.86%)
Mutual labels:  raspberry-pi-zero-w
openscad-rpi-library
OpenSCAD library of various objects to use in Raspberry Pi-based projects
Stars: ✭ 30 (+114.29%)
Mutual labels:  3d-printing
mks-wifi-plugin
MKS wifi plugin for Cura
Stars: ✭ 105 (+650%)
Mutual labels:  3d-printing
vasaro
Vasaro let you create 3d printable vases in a snap.
Stars: ✭ 30 (+114.29%)
Mutual labels:  3d-printing
threedy
Home Assistant card for 3D printer status and management.
Stars: ✭ 159 (+1035.71%)
Mutual labels:  3d-printing
Voron2.4 My Build Log
This repository will hold any documents I use to help with building my Voron 2.4 250mm 3D Printer and the Voron 2.4 LDO 300mm Printer
Stars: ✭ 65 (+364.29%)
Mutual labels:  3d-printing
rhioCAD
CAD, based on OpenCascade. parametric, parametric 3D modeler. Fork of NaroCAD.
Stars: ✭ 42 (+200%)
Mutual labels:  3d-printing
gamepad.js
A simple HTML5 Gamepad handler that provides keyboard-like events for Gamepad sticks and buttons.
Stars: ✭ 21 (+50%)
Mutual labels:  xbox-controller

Roomba Flamethrower

Watch the video here

demo

This repo contains all of the code, schematics, and 3d models for the Roomba Flamethrower project.

Setup

This project uses a Raspberry pi Zero W running Raspberry Pi OS Lite as the "brains" of the build. Python 3.5 or newer is required to run the software.

  • To use hardware-timed servo pulses and thus avoid jittering from multiple servos being controlled by the pi, this project uses the pigpio library.
  • The Xbox one controller is handled using evdev.
  • Serial communication between the Roomba and the raspberry pi is handled using pyserial.

To facilitate the setup process, this repo includes a setup script. To run it, simply run the following command from the project's root directory

sudo sh setup.sh

In addition, if you want to set up the program to run on boot for a better user experience. You can use crontab to set up a cronjob for the intended user. As an example for the default pi user.

crontab -u pi -e

Then run the script on boot by adding the following line to the file.

@reboot python3 /full/path/to/project/dir/roomba_flamethrower/roomba_flamethrower/main.py

Then save the file. A quick note of caution, the Roomba class initiates a serial connection with the Roomba using safe mode by default. However, if you decide to change the mode to something else, you need to add the logic to properly return the Roomba to safe mode to avoid battery drain.

As part of the setup, you also need to pair the Xbox One Controller and the raspberry pi.

Disable Enhanced Re-Transmission Mode (not supported by the Xbox One Controller)

echo 'options bluetooth disable_ertm=Y' | sudo tee -a /etc/modprobe.d/bluetooth.conf

start bluetoothctl

sudo bluetoothctl

Start pairing mode on the Xbox One controller and scan for the controller

agent on
default-agent
scan on

once you see the controller appear, connect to it using its address

connect XX:XX:XX:XX:XX:XX

trust the controller using its address for automatic connections on boot

trust XX:XX:XX:XX:XX:XX

Controlls

By default, these are the control mappings for the Xbox One controller.

controll mappings

If you want to change them, you can change the conditional statements in main.py in the main() function, which are found inside the for loop.

Build

To build this project, the following parts were used:

If you don't have it already, you may also need wire, solder, and a soldering iron.

In addition, to use the included 3d models, you will also need a 3d printer. I used the Creality Ender 3 V2 and White eSUN PLA+ filament.

3D printing

All of the parts were printed using 10% infill with a 0.28mm layer height. The bed was set to 60° Celcius and the extruder to 225° Celcius. With the exception of the Raspberry Pi Zero base, all of the models were printed without using supports.

Assembly

Besides the Roomba part of the build, the flame thrower part of the build is centered around the butane bottle.

The bottle stand can be used to attach the butane bottle to the Roomba using an adhesive. An option like Hot Glue can allow you to easily remove it later by heating the glue back up.

Attached to the bottle stand you cand you can use string or rope along with the provided hooks to latter hold down the bottle adapter when the butane servo uses a downward force to spray the bottle.

The bottle adapter holds the two 35kg servos using the provided hardware, The butane servo uses the smaller plastic propeller with an M2.5 standoff through one of the holes, which aids in pressing down the cap of the butane bottle and the lighter assembly servo uses the larger plastic propeller with two screws for holding down the servos attached to the lighter assembly.

bottle adapter

Attached to the back portion of the bottle adapter is the Raspberry Pi Zero base. This base is set up with four M2.5 standoffs using screws on the underside. This is why the base has larger 4mm cylindrical cutouts on the underside. This provides a flush base that can be glued to the bottle adapter.

raspberry pi base

The lighter assembly holds the 12kg servo and the arc lighter. The servo is held in place and lifted using 3 brass standoffs. In addition, to press the button on the arc lighter, the metal adapter from the 35kg servos is attached. This is because this adapter has a much larger surface area compared to the included plastic adapters.

lighter assembly

Wiring

To wire everything together, refer to the following schematic:

schematic

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].