# arduino 4 wheel drive robot

This unique mobility of the robot is achieved by using special type of wheels called makin wheels. I actually designed the in 3d printed these wheels because they can be a bit expensive to buy. They work quite well, and I must say that driving this robot platform is so fun. We can wirelessly control the robot using the inner f24 lo1 radio transceiver modules, or in my case I am using my DIY RC transmitter, which I made in one of my previous videos. I also made it possible to be controlled using a smartphone via bluetooth communication. I made a custom Android application through which we can control the makin wheels robot to move in any direction, also using the slider in the app we can control the speed of movement. The brain of this robot platform is an Arduino mega board, which controls each wheel individually. Each wheel is attached on a NEMA, 17 stepper motor and knowing the fact that stepper motors can be precisely controlled. I added one more cool feature in the app through which we can control the robot to move automatically using the Save button. We can save each position or step and then the robot can automatically run and repeat these steps. With the same button, we can post the automatic operation as well as reset and delete all steps, so we can store new ones Music. The begin weight that I designed the makin wheels robot using a 3d modeling software.

You can find and download this 3d model, as well as the STL files which are used for 3d printing on the website article. The link to it is in the description of the video. The base platform of this robot is a simple box which I’ll make out of 8 millimeters thick MDF boards. The four stepper motors are attached to this base platform and the Meccan wheels are attached to the motor shaft. The Meccan wheel is the wheel with rollers attached to its circumference. These rollers are positioned, diagonally or at 45 degree angle to the axis of rotation of the wheel. This makes the wheel exert force in diagonal direction when moving forward or backward so by rotating the wheels in certain patterns. We utilize this diagonal forces and does the robot can move in any direction. We should also note here that we need two types of making wheels. Often referred to as left handed and right handed making wheels, the difference between them is the orientation of the rollers and they must be installed in the robot in specific locations. The rotation axis of each wheel stop roller, should point to the center of the robot here’s. A quick demonstration of how the robot moves, depending on the wheels rotation direction, Music, Music, Music. Nevertheless, now let me show you how I built this robot platform. As I mentioned for making the base of the platform, I am using 8 millimeters thick MDF boards using a table, saw first, I cut all of the pieces according to the 3d model dimensions.

Next, using a three millimeters drill and 25 millimeters Forstner bit. I made the openings on the side panels for attaching the stepper motors. Once I got the pieces ready, I continued with assembling them. I use the wood glue and some screws for securing them. The most important thing here is to hit the openings for the motors precisely made so that all of the wheels have even contact with the surface later on. Of course, you could also 3d print this base platform instead of making it within DF. So I will include a 3d file of it on the website article. Finally, i spray painted the base in its cover with white color. Okay, next are the makin wheels. As I said earlier, these wheels can be a bit expensive to buy so that’s. Why? I decided to design and 3d print my own ones. The wheels are made out of two parts outer and inner side, which are secured together with some m4 bolts and nuts. They have ten rollers each and a shaft coupler, specifically designed to fit a NEMA 17 stepper motor. It really printed all of the parts for the makin wheels using Mike realities here are ten 3d printer. There is also a link to this 3d printer in the video description in case. You want to check it out, just because I find 3d printing time lapses is so satisfying to watch. Here are few, so you can enjoy it. So once I got the 3d printed parts ready, I moved on with making the shafts for the rollers.

For that purpose, I used three millimeter thick steel wire. The length of the shafts needs to be around 40 millimeters, so using a rotary tool. I cut the wire to that land. I started assembling the makin wheel by securing the two sides and the shaft coupler using four m4 bolts and nuts. The length of the bolts needs to be 45 millimeters for installing the rollers. First, we need to slightly insert the shaft through the holes of the inner side. Then we can insert a small entry washer insert the roller and push the shaft all the way into the slot of the outer side of the wheel. I used the single washer because it didn’t have enough space to insert a second washer on the other side, I repeated this process for all 10 rollers it’s, actually easy and kind of fun assembling these wheels. What’S important here, though, is that the rollers need to be able to move freely. At the end, I used few drops of ICI glue in each of the inner holes to make sure that the shaft won’t get loose okay, so once the wheels are ready now we can move on and assemble the whole robot. First, we need to attach the stepper motors to the base platform for securing them in place. I used m3 bolts with length of 12 millimeters. Next, we need to attach the wheels to the motors shaft. The shaft coupler that I meet have a special spot for inserting an m3 knot through which an entry bolt can pass through, and so we can secure the wheel to the shaft next for securing the top cover to the base.

I attach threaded rods on the two corners of the base. I made holes on the same position on the cover, and so I was able to easily insert and secure the cover to the base on the backside of the base. I made 20 millimetres hole for attaching a power switch later on, as well as 5 millimeters hole for attaching an LED ok. So now we can move on with the electronics here’s the complete circuit diagram of this project. So we will control the 4 NEMA 17 stepper motors using the 4 drv8825 erse, or also we could use the a 4988 stepper drivers for powering the steppers and the whole robot. We will use 12 volt power supply and, in my case I will use a 3s lipo battery, which provides around 12 volts for the radio communication. We are using the inner F, 24 lo1 module and for the Bluetooth communication we are using the HCO v bluetooth module. I also included a simple voltage divider, which will be used for monitoring the battery voltage and an LED connection for indicating when the battery voltage will drop below 11 volts. I also included a dedicated at 5 volts voltage regulator, which can provide around 3 amps of current. This is optional, but I am planning in a future video to combine this project with my Arduino robot arm project, and for that purpose I would need 5 volts for driving its servo motors. Nevertheless, in order to keep the electronics components organized and get rid of wiring mess, I designed a custom PCB using the easi da free on line circuit design software.

This PCB will actually act as an Arduino mega shield because we will be able to directly connect it on the top of the Arduino mega board. I used both the top and the bottom they’re for running the connections for those Arduino pins, which I didn’t use. I included in header connections so that they are available in case. We want to use them for something in future. I also included 12 volts, 5 volts and ground connection pins, as well as pins for selecting the taping resolution of the drivers. Once I finish the design I generated the gerber file needed for manufacturing the PCB. Then I ordered the PCB from jlc PCB, which are also the sponsor of this video. Here we can simply drag and drop the Gerber file and once uploaded we can review our PCB in the gerber viewer. If everything is allright, then we can go on and select the properties that we want for our PCB this time. I chose the PCB color to be blue in order to match, with the Arduino board color and that’s it. Now we can simply order our PCB at a reasonable price note that if it’s your first order from jlc PCB, you can get up to 10 PCBs for only 2. After several days, the PCBs have arrived, the quality of the PCBs is great and everything is exactly the same as in the design. Ok, now we can move on and assemble the PCB.

I started with soldering the smaller components: first, the resistors and the capacitors. Then I insert it and soldered male pin feathers to the PCB, which will be used for connecting it to the Arduino board. Next, I place all female pin headers in place and solder them, as well as for the stepper motors connections and the pins for selecting the stepping resolution. I used male pin headers this way. We can directly connect the motors to the PCB and use jumpers for selecting the stepping resolution. Then I solder the terminal blocks the trimmer and the voltage regulator and that’s it. The PCB is now ready and we can move on with inserting the drivers and connecting the motors to it. First, I place the jumpers for selecting the stepping resolution. I selected 16 step resolution by connecting the MS 3 pin of the driver to five volts. Then, on top of them I place the drv8825 drivers as well as connected the inner f24 lo1 module in the 805 bluetooth module at the end. We can simply attach this PCB shield to the Arduino board. Next, I connected the berry to the PCB to the appropriate terminal block and place them into the base platform. Here I inserted the power switch in place and connected it to the other terminal block right above the power switch. I also mr. Tate. The battery indicator LED what’s left now is to connect the motors to the PCB. We should note here that, when connecting opposite motors, we should connect their connectors opposite as well.

This is needed later when programming the robot, so that, for example, the forward command would move both motors in the same direction, although they are actually flipped and one would make clockwise and the other anti clockwise rotation. At the end, I can simply insert the cover at the top, and so we are done with this makin wheels project. However, what’s left for this video is to take a look at the Arduino code. Actually, there are two separate arena cause. The first one is for controlling the robot using the inner f24 lo1 modules, and the other is for controlling the robot using a smartphone. So here we are using the RF 24 library for the radio communication and the accel stepper library for controlling the stepper motors. First, we need to define the pins to which all of them are connected, define some variables needed for the program below and in the setup section, set the steppers maximum speed and begin the radio communication in the loop section. We start by reading the data coming from the RC transmitter, the RC transmitter code, as well as more details how this communication works can be found on my particular tutorial for it. The link to it will be on the website article so depending on the received data, for example, if the left joystick is moved forward, its value will be greater than 160 and in such a case we will call the move forward. Custom function. If we take a look at this function, we can see that all it does, it says speed of the motor too positive for moving backward.

The speed is set to negative so for moving in all direction. We just need to set the rotation of the wheels appropriately as explained in the beginning, for executing these commands in the loop section. We need to call the run speed function for all steppers in the loop section. We also read the analog input from the voltage divider coming from the battery and according to this value, we will know when the battery voltage will drop under 11 volts, and so we will turn on the indicator LED the other code for controlling the robot using the Android application is very similar and works the same way here, instead of the radio module, we need to define the Bluetooth, module and initialize its communication in the setup section. So again, first we read the incoming data from the smartphone or the Android tab and according to it we tell the robot in which direction to move. If we take a look at the entry tab, we can see that it simply sends numbers from 0 to 15 through the Bluetooth when the buttons are pressed. The app is made using the MIT App Inventor online application, and you can find more details about it. In my particular tutorial for it, you can also find and download this app, as well as the editable project file on the website, article for programming, the automatic robot movement. With this app. When we press the Save button, we simply store the current positions of the stepper motors into RS.

Then, when we press the Run button, we call the Run steps custom function, which executes or runs through all storage steps using some for and while loops. So that would be all for this video but, of course, for more details and better understanding how the code works. You can always check the website article. I hope you enjoyed this video and learn something new don’t forget to subscribe and for more tutorials and projects visit.

# arduino 4 wheel drive robot Social

official.arduino
2019-10-02T19:32:52+0000

👋 Want to bring Tony Stark-like gesture control to your projects? Learn how with the BLE-enabled MKR WiFi 1010 and Nano 33 BLE Sense boards using the ArduinoBLE library.
official.arduino
2019-10-02T19:08:01+0000

Arduin-yo ho ho! A fairground favorite, the pirate ship is a fun way to explore the oscillation of a pendulum. How much fun, you ask? Access our Science Kit Physics Lab preview and see for yourself: http://bit.ly/2oC6L0Q

🔬 Now that you’ve gotten your feet wet, dive into the kit and enjoy all nine experiments. Order yours today: http://bit.ly/2MnQ7fr

2016-04-15T14:35:45

2016-04-15T14:35:40

2016-04-15T14:35:36

(Visited 15 times, 1 visits today)

## Comment (25)

1. CHIESSEY says:

I want that rotary tool which you used to cut wire
Where can I get it
Or what’s its model no??

1. Shubham Narvekar says:

2. CHIESSEY says:

Shubham Narvekar actually I want this for different purpose
Not for cutting wire

2. marwen mrabti says:

Great work !

3. Dilip Raj says:

Superb…

4. Al Hamid says:

100% Genius
100% Creative

5. Vaibhav Singh says:

May be it’s not work properly in rough surface

1. JOHN 748 says:

He doesn’t design that to work in rough surface……!!

6. Richard Wenner says:

B E A utiful! Thanks for publishing these wonderful videos.

7. bruno boris says:

Hello friend, is it possible to use a Ramps 1.4 card with the dvr8825 drivers or the A4988 drivers, instead of making the printed circuit board you developed? I have difficulty getting this printed circuit .. it would take a long time to get to where I live. And I already have a ramps card with the A4988 drivers.

8. Hu Ssss says:

I told you

9. Hu Ssss says:

We have a healthy minerals

10. 2sh ar says:

We can distribute 10 PhD’s for this single project

11. Computer Power says:

you do no’t credit the author.

12. Antonio Garrido says:

Hi, I can’t download the files for the Mit inventor app. How could I solve this problem?

13. Liam Bargmann says:

Omg most satisfying video ever

14. Calculus DeeDee says:

Great video

1. How To Mechatronics says:

Hey, thanks. Try to use different browser or incognito.

2. Calculus DeeDee says:

Thank you that worked

15. Rene Deck says:

Thank you Sir, what an amazing job!

16. kla creator says:

Nice

17. Vedant Deshpande says:

Can someone answer me *How Much does this thing cost to build?*

1. Opposite34 says:

Uh I’m trying to make similar model. It cost around \$65

18. DDD XP says:

I got a problem, i think the motor i used, a nema 15, has no enought power to work in this project… tryed to use it, and the motor skips passes… am i right?

19. Gustavo Voltani von Atzingen says: