Motorized WiFi Controlled Chassis

4,050

43

12

Introduction: Motorized WiFi Controlled Chassis

About: Hoping to win more Instructables T-Shirts!

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 "192.128.20.20" 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...

Wireless Contest

Participated in the
Wireless Contest

Be the First to Share

    Recommendations

    • Make it Glow Contest

      Make it Glow Contest
    • First Time Author Contest

      First Time Author Contest
    • PCB Challenge

      PCB Challenge

    12 Discussions

    0
    izulustudios
    izulustudios

    Question 9 months ago

    Hello and thank you for this awesome Instructable!
    I have installed the code onto my Huzzah and can see the WiFi network WiFiChassis, however all of my devices are asking for the wifi password, when i try to connect.
    What should I use as the wifi password?
    Thank you again

    0
    gzumwalt
    gzumwalt

    Answer 9 months ago

    Thank you izulustudios!

    You will need to change the SSID password variable in the code to match that of the network you are attempting to connect.

    Greg

    0
    izulustudios
    izulustudios

    Reply 9 months ago

    Hey Greg. Thanks for your reply and thank you again for sharing your project.
    I muddled my way forward and figured out how to change the SSID setting and can now connect to my Huzzah no problem.
    I hAd thought that those settings were more for allowing the Huzzah to itself log onto an external router, so I naively just entered the password and network id of my home wifi network..
    Anyway, I got it working.
    I also have utilised the Oled integration of your code and have included a display in my project. Though I will probably use it to display slightly different parameters to those in your setup.
    I am building a slightly different drive system to your design, though I will still use miniature continuous rotation servo's and will also print a little chassis to house the whole thing.
    I love your little chassis design! The use of O-Rings and the little ball bearing housing is inspired, so thank you again for your generosity in sharing your build!

    I am finding the servo output quite steppy.
    Is that a byproduct of the refresh rate of the code loop, or the wifi, or something else entirely?
    Thanks again.
    Dan.

    0
    russ_hensel
    russ_hensel

    3 years ago

    Could you tell us what printer you use and other printing details?

    0
    gzumwalt
    gzumwalt

    Reply 3 years ago

    Sure!

    I printed all the parts in PLA on an Ultimaker 2+ Extended and an Ultimaker 3 Extended. Also, I printed all parts at .15mm vertical resolution with 50% infill. You will need to print 1 each of "Ball Bearing Cap.stl" and "Chassis.stl", print 2 each of the remaining parts.

    Hope that helps!

    Greg

    0
    russ_hensel
    russ_hensel

    Reply 3 years ago

    Thanks, useful details.

    0
    gzumwalt
    gzumwalt

    Reply 3 years ago

    You are very welcome, and if you have any other questions, please ask and I'll do my best to answer them.

    Greg

    0
    misterxp
    misterxp

    3 years ago

    Yes I downloaded the stl files thanks. I use other software but I am sure I can use them!

    0
    misterxp
    misterxp

    3 years ago

    Oh this is a great starter for 3d and arduino too! Thanks!

    0
    gzumwalt
    gzumwalt

    Reply 3 years ago

    You are welcome! The Autodesk Fusion 360 design file is included in step 1 if you’re a Fusion 360 user.

    Thanks again!

    Greg

    0
    tvdbon
    tvdbon

    3 years ago

    This is very cool, definitely planning on building this. any chance you can share the fusion 360 design files ?

    0
    gzumwalt
    gzumwalt

    Reply 3 years ago

    Thanks, glad you enjoyed it.

    The file is in step 1.