Introduction: Motorized WiFi Controlled Chassis
Donald Bell of Maker Project Lab (https://makerprojectlab.com) pointed out in his November 29, 2017 update (https://youtu.be/cQzQl97ntpU) that the "Lady Buggy" chassis (https://www.instructables.com/id/Lady-Buggy/) could be used as a generic platform. He must of somehow seen my "projects todo" list...
Motorized WiFi Chassis is a simple WiFi controlled motorized open chassis generic platform that uses an Adafruit Feather Huzzah ESP8266 for communication and control, and two continuous rotation servos plus a lithium ion battery for movement. The chassis contains 8 6mm by 1 threaded mounting points to mount, well, more to come on that.
I've included the source code in the form of an Arduino sketch for the Adafruit Feather Huzzah ESP8266 if you wish to modify it. Also, you will need soldering skills and soldering equipment, wire, and all parts listed in the first step, plus an Arduino IDE with appropriate libraries installed in order to complete Motorized WiFi Chassis.
As usual, I probably forgot a file or two or who knows what else, so if you have any questions, please do not hesitate to ask as I do make mistakes in plenty.
Designed using Autodesk Fusion 360, sliced using Cura 3.1, and printed in PLA on an Ultimaker 2+ Extended and an Ultimaker 3 Extended.
Step 1: Parts.
I printed all parts at .15mm vertical resolution with 50% infill. Print 1 each of "Ball Bearing Cap.stl" and "Chassis.stl", print 2 each of the remaining parts.
I purchased the following parts:
1 Ball Bearing, 15.9mm (5/8")
4 O-Ring (ID 16mm, section 2.5mm)
2 Servo (FS90R Continuous Rotation)
1 Adafruit Feather HUZZAH ESP8266 (Adafruit)
1 Battery (Adafruit 258)
Prior to assembly, test fit and trim, file, sand, etc. all parts as necessary for smooth movement of moving surfaces, and tight fit for non moving surfaces. Depending on the colors you chose and your printer settings, more or less trimming, filing and/or sanding may be required. Carefully file all edges that contacted the build plate to make absolutely sure that all build plate "ooze" is removed and that all edges are smooth. I used small jewelers files and plenty of patience to perform this step.
This design uses threaded assembly, thus a 6mm by 1 tap and die may be needed to clean the threads.
Step 2: Wiring.
Wiring consists of soldering the servo wires to the Feather Huzzah ESP8266.
To power the servos, both servo positive (red) wires are soldered to the "BAT" pin on the Feather Huzzah ESP8266 and both servo negative (brown) wires are soldered to the "GND" pin on the Feather Huzzah ESP8266.
To control the servos, the left servo signal (orange) wire is soldered to the "12/MISO" pin on the Feather Huzzah ESP8266, and the servo right signal wire (orange) is attached to the "13/MOSI" pin on the Feather Huzzah ESP8266.
Step 3: Assembly.
Place 2 o-rings onto each "Gear Wheel.stl" as shown.
Using two "Axle Gear Wheel.stl", attach both wheel assemblies into "Chassis.stl" as shown.
Place the 5/8 inch ball bearing into the chassis as shown, then secure in place with "Ball Bearing Cap.stl" making sure the ball bearing rotates freely.
Secure one "Gear Servo.stl" to one servo using the servo screws that came with the servo, then repeat with the second gear and servo.
Place the left servo into the left servo slot, and the right servo in the right servo slot as shown.
Using thin double sided tape, secure the battery into the chassis as shown.
Again using thin double sided tape, secure the Adafruit Feather Huzza ESP8266 onto the battery as shown.
Step 4: Software.
Motorized WiFi Chassis uses an html "canvas" element for the graphics, and the canvas events "touchstart", "touchmove" and "touchend" for control. I'm of the belief the software should work on touch enabled devices other than iOS, but have not been able to confirm that it will.
I designed the Motorized WiFi Chassis software to operate in both ap (access point) and station (wifi router) wireless modes.
If you choose to operate Motorized WiFi Chassis in ap mode, a wireless router is not required as your iOS device communicates directly with Motorized WiFi Chassis. To operate in this mode, you will go to the wifi settings on your iOS device and select the "WiFiChassis" network. Once connected, open the web browser on your iOS device and enter the ip address of "18.104.22.168" in the url field.
If you choose to operate Motorized WiFi Chassis in station mode, you will communicate with Motorized WiFi Chassis via a wireless router and thus need to change the Motorized WiFi Chassis software such that "sSsid =" is set to your wireless router ssid and "sPassword = " is set to your wireless router password. You will need to change these settings using the Arduino IDE editor before compiling and downloading it to your Motorized WiFi Chassis. Note that when using station mode, I've also included MDNS support that allows you to communicate with Motorized WiFi Chassis at the ip address "wifichassis.local" so the physical ip address is not required. However if you wish to use the physical ip address assigned by your wireless router, you will need to be connected to the Arduino serial monitor when you turn on Motorized WiFi Chassis (make sure "#define USE_SERIAL 1" is at the top of the source code file before compiling and sending the code to the Motorized WiFi Chassis) in order to view the ip addressed assigned to Motorized WiFi Chassis by your wireless router.
After you've decided which mode you will be operating your Motorized WiFi Chassis in and have made any necessary changes to the software, attach a suitable cable between your computer USB and the micro usb port on the Feather Huzzah ESP8266, plug in the battery, then compile and download the software into Motorized WiFi Chassis.
Step 5: Operation.
Plug the battery cable into the battery port on the Feather Huzzah ESP8266.
Log onto the Feather Huzzah ESP8266 using the method you chose in Software.
Drag the grey dot around the screen in the direction you wish to travel.
See the video for a short demonstration of controlling Motorized WiFi Chassis.
Hope you like it!
To be continued...