ESP32-Skid-Steer - Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on the model.

ESP32-Skid-Steer

Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on the model.

4B1A9B2F-0BB2-496A-850F-82EEA048991A_1_105_c

Written with StackEdit.

ESP32 Skid Steer Project

In this project I converted a Bruder Skid Steer model into a remote controlled version controlled by 2 analog joysticks, of which is then transmitted by an ESP32 to another ESP32 via ESPNOW protocol. The receiver ESP controls the servos with PWM after mapping the raw data from the sender ESP32.

ESP32 Bruder

Bruder ESP32

⚙️ Parts used

Note that these parts below are the ones that i used in my build, you do not need to use the exact same servos. If you are not in a time crunch I recommend buying some of these parts from aliexpress.com, you can save a little bit of money in exchange for longer delivery time.

  • Bruder Skid Steer
  • 2x ESP32 dev modules The sender and receiver modules
  • 1 high torque servo like KS-3518, MG996r or any equivalent strength for moving the arm
  • 1 MG90s servo for controlling the bucket
  • 4 MG90s continuous moving for driving the wheels, note you may want to pick better quality servos as these have a lot of slop in them, which is why i used a washer in between the wheel and servo as you'll see later
  • OLED SSD1306 i2c dislpay 128x64
  • 2 Joystick modules
  • 18k and 10k resistor and optional capacitors (I used 47uF but anything really works)
  • Buck converter 7.4v to 5v, any brand works however i realized later on that this is not necessary as the ESP32 can handle 7.4v (on vin pin)! However i am still using it .
  • (optional) Y servo connector, connects the two servos on each side together, you could optionally just solder them together
  • Perforate DIY breadboard for easy soldering
  • Will need access to a 3D printer for certain parts

📚 Libraries Used

#include  <ESP32Servo.h>
#include  <esp_now.h>
#include  <WiFi.h>
#include  "DifferentialSteering.h"
#include  <Wire.h>
#include  <Adafruit_GFX.h>
#include  <Adafruit_SSD1306.h>
#include  <Adafruit_I2CDevice.h>

🛠 How to build

Watch this video, and this one. These videos provide a great help and converting the model into the RC version, I followed everything in that video except for the motors for the wheels, converting the servo into continuous for me and the creator resulted in random jitter as it was very difficult to center the internal potentiometer.

The 3D files I used which was for the servo bucket attachment, i did not use the other parts as i messed up my wheels and used a different servo for the arm.

The 3D files I created the washer to fix the wheel wobble, inner wheel hub, and the tool used to make the hole circular in the rubber tire. The tool is meant to be wrapped with sandpaper and put into a drill so that making the hole circular is easy.

For connections

Receiver ESP32 Sender ESP32
Pin 16 will be used for arm PWM Pin 36 connected to the right x joystick
Pin 17 will be used for bucket PWM Pin 39 connected to the right y joystick
Pin 4 will be used for the left servos PWM Pin 35 connected to the left x joystick
Pin 18 will be used for the right servos PWM Pin 34 connected to the left y joystick
Pin 34 will be used for the reading analog battery level Pin 23 connected to the right joystick button
Pin 22 connected to the left joystick button
Pin 17 to SDA of OLED
Pin 16 to SCK of OLED
For the Receiver ESP32 it will be easier if you create a row of 3 long header pins that make it easier to connect servos to.

In addition to this you may find it useful to solder in a capacitor between the 5v and ground connection of both receiver and sender.

I am omitting the instructions to incorporate the motors into the model due to the fact that the videos mentioned above do a great job explaining.

🖥 Code

To use the provided code you must first use the following sketch to find the Mac Address of each device

// Complete Instructions to Get and Change ESP MAC Address: https://RandomNerdTutorials.com/get-change-esp32-esp8266-mac-address-arduino/

#ifdef ESP32
  #include <WiFi.h>
#else
  #include <ESP8266WiFi.h>
#endif

void setup(){
  Serial.begin(115200);
  Serial.println();
  Serial.print("ESP Board MAC Address:  ");
  Serial.println(WiFi.macAddress());
}
 
void loop(){

}

Upload this code and both devices and write down each of the Mac Addresses, into the respective copy and replace these addresses in the sender and receiver files above.

Once you have replaced the following you are able to upload the code to each, once uploaded you are most likely going to need to fix the mapping of the joysticks, i tried using math to add a value to the map to fix the issue known as comp_value but this is very poorly done.

Thanks!

That is all for this project, i would like to give special thanks to Rui Santos who has the code on his website Random Nerd Tutorials, this site helped a lot!

Thanks,

Mason Lopez [email protected]

Similar Resources

A simple tool using PC mouse via USART to control MCU and LCD/OLED (with LVGL library), if your screen cannot be controlled by touch.

A simple tool using PC mouse via USART to control MCU and LCD/OLED (with LVGL library), if your screen cannot be controlled by touch.

LVGL_USB_Mouse A simple tool using PC mouse via USART to control MCU and LCD/OLED (with LVGL library), if your screen cannot be controlled by touch. 如

May 5, 2022

2.4 GHz LORA based telemetry and radio link for remote controlled vehicles

mLRS This is the mLRS project. The goal is an open source 2.4 GHz LORA-based high-performance long-range radio link, which provides fully transparent

Dec 1, 2022

Voltage Controlled Digital Core Multimode Oscillator using Mozzi library on Arduino

Arduino-VDCO Voltage Controlled Digital Core Multimode Oscillator using Mozzi library on Arduino Its a digital Oscillator/Voice for the Eurorack Stand

Nov 19, 2022

This is a simple sketch that can be controlled from the TEST_ARMACOM.vr mission

ARMA_LED This is a simple Arduino sketch that can be controlled from the TEST_ARMACOM.vr mission in ARMA 3 With this sketch, a connected Arduino's bui

Oct 27, 2021

arduino controlled led matrix pullover

Animated Xmas pullover With this project we will make an animated pullover for the Christmas season. Controlled by a 32x8 LED matrix and a wemos D1 mi

Nov 5, 2021

Iot-Surveillance-Car - This is a IOT Based Surveillance Car which can be controlled, tracked globally as well as its data can be accessed globally

Iot-Surveillance-Car - This is a IOT Based Surveillance Car which can be controlled, tracked globally as well as its data can be accessed globally. The camera on the front of the car can also be monitored globally. It can go anywhere where sim connection is available. 5th Sem Mini project

Nov 24, 2022

[ICSE 2022] Controlled Concurrency Testing via Periodical Scheduling

(PERIOD is a controlled concurrency testing tool, where a scheduler explores the space of possible interleavings of a concurrent program looking for b

Nov 7, 2022

Arduino-controlled bed that helps in reducing rate of disease infection by detecting whether a person accessed the safe space of a subject who is infected

Arduino-controlled bed that helps in reducing rate of disease infection by detecting whether a person accessed the safe space of a subject who is infected

Infection Control Bed BACKGROUND Spread of COVID-19 occurs via airborne parricels and droplets. People who are infected with COVID an release particle

Mar 17, 2022

Firebase Arduino Client Library for ESP8266 and ESP32. The unified version of Firebase-ESP8266 and Firebase-ESP32 Realtime database libraries with Cloud Firestore, Firebase and Google Cloud Storage, Cloud messaging and Cloud Functions supports.

Firebase Arduino Client Library for ESP8266 and ESP32. The unified version of Firebase-ESP8266 and Firebase-ESP32 Realtime database libraries with Cloud Firestore, Firebase and Google Cloud Storage, Cloud messaging and Cloud Functions supports.

Firebase Arduino Client Library for ESP8266 and ESP32 Google's Firebase Arduino Client Library for ESP8266 and ESP32 v 2.0.3 This library supports ESP

Nov 29, 2022
M17 Analog Gateway by ESP32
M17 Analog Gateway by ESP32

M17 Analog Hotspot Gateway Project How to Make digital voice radio (M17 Digital Voice) analog gateway yourself over the internet width ESP32 NodeMCU/D

Sep 11, 2022
Simplified design of an analog keypad matrix interface and demo thereof
Simplified design of an analog keypad matrix interface and demo thereof

Analog Keypad Interface In pin-restricted microcontroller designs it is common to use analog pins and sets of resistors to encode button switch inputs

Feb 6, 2022
Si5351 and Arduino based superheterodyne receiver
Si5351 and Arduino based superheterodyne receiver

Arduino Superheterodyne Receiver In this project, we will upgrade a traditional shortwave superheterodyne receiver with an Arduino base tuner. This tu

Nov 14, 2022
This repository provides the implementation of a ADC real-time viewer for an analog sound sensor.

Real-time sound analysing using microcontroller FRDM-KL25Z Acest cod este realizat pentru o platforma autonoma realizata cu kitul de la NXP care are r

Jan 20, 2022
A CPU implemented in an analog modular synthesizer
 A CPU implemented in an analog modular synthesizer

A CPU implemented in an analog modular synthesizer This runs in the VCV Rack eurorack simulator. I wrote a thread explaining the CPU on twitter and a

Nov 22, 2022
QN8035 based Raspberry Pi FM radio receiver
QN8035 based Raspberry Pi FM radio receiver

QN8035 based Raspberry Pi FM radio receiver. QN8035 is a single-chip stereo FM radio receiver IC designed by the Quintic Corporation. This receiver su

Oct 6, 2022
somfy remote receiver for stm32 platform

SOMFY library for STM32 http://www.github.com/NimaLTD https://www.instagram.com/github.nimaltd/ https://www.youtube.com/channel/UCUhY7qY1klJm1d2kulr9c

Mar 2, 2022
An open source GNSS receiver

greta-oto An open source GNSS receiver This project is an open source project of a consumer level GNSS receiver. It has the capability to receive L1 b

Nov 20, 2022
A driver for u-blox receiver (ZED-F9P) with ros support

ublox_driver Authors/Maintainers: CAO Shaozu (shaozu.cao AT gmail.com) The ublox_driver provides essential functionalities for u-blox GNSS receivers.

Nov 29, 2022
A set of tutorial projects for creating a simple digital radio receiver based on the STM32G431KB microcontroller

simple-radio Обучающие проекты по созданию простого цифрового радиоприемника на базе микроконтроллера STM32G431KB. Разработка программ выполнялась в W

Sep 21, 2022