0% found this document useful (0 votes)
179 views

Arduino Mecanum Wheels Robot

This document describes how to build an Arduino robot that uses Mecanum wheels for omnidirectional movement. It uses an Arduino, NRF24L01 radio module, and four stepper motors to control the wheels. The robot receives radio control signals and uses an AccelStepper library to independently control the speed and direction of each wheel, allowing it to move in any direction or rotate in place.

Uploaded by

Lincoln Lobo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
179 views

Arduino Mecanum Wheels Robot

This document describes how to build an Arduino robot that uses Mecanum wheels for omnidirectional movement. It uses an Arduino, NRF24L01 radio module, and four stepper motors to control the wheels. The robot receives radio control signals and uses an AccelStepper library to independently control the speed and direction of each wheel, allowing it to move in any direction or rotate in place.

Uploaded by

Lincoln Lobo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 80

Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.

com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

1 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

SPONSORED SEARCHES

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

2 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

3 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

4 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

5 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

6 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

7 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

8 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

9 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

10 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

11 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

12 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

13 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

14 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

15 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

16 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

17 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

18 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

19 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

20 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

21 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

1. /*
2. === Arduino Mecanum Wheels Robot ===
3. Radio control with NRF24L01
4. by Dejan, www.HowToMechatronics.com
5. Libraries:
6. RF24, https://github.com/tmrh20/RF24/
7. AccelStepper by Mike McCauley: http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
8.
9. */
10.
11. #include <SPI.h>
12. #include <nRF24L01.h>
13. #include <RF24.h>
14.
15. #include <AccelStepper.h>
16.
17. RF24 radio(48, 49); // nRF24L01 (CE, CSN)
18.
19. const byte address[6] = "00001";
20. unsigned long lastReceiveTime = 0;
21. unsigned long currentTime = 0;
22.
23. // Define the stepper motors and the pins the will use
24. AccelStepper LeftBackWheel(1, 42, 43); // (Type:driver, STEP, DIR) - Stepper1
25. AccelStepper LeftFrontWheel(1, 40, 41); // Stepper2
26. AccelStepper RightBackWheel(1, 44, 45); // Stepper3
27. AccelStepper RightFrontWheel(1, 46, 47); // Stepper4
28.
29. Ok
int wheelSpeed = 1500; Read more (https://howtomechatronics.com/privacy-policy-page/)

22 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

30.
31. // Max size of this struct is 32 bytes - NRF24L01 buffer limit
32. struct Data_Package {
33. byte j1PotX;
34. byte j1PotY;
35. byte j1Button;
36. byte j2PotX;
37. byte j2PotY;
38. byte j2Button;
39. byte pot1;
40. byte pot2;
41. byte tSwitch1;
42. byte tSwitch2;
43. byte button1;
44. byte button2;
45. byte button3;
46. byte button4;
47. };
48. Data_Package data; //Create a variable with the above structure
49.
50. void setup() {
51. // Set initial seed values for the steppers
52. LeftFrontWheel.setMaxSpeed(3000);
53. LeftBackWheel.setMaxSpeed(3000);
54. RightFrontWheel.setMaxSpeed(3000);
55. RightBackWheel.setMaxSpeed(3000);
56.
57. radio.begin();
58. radio.openReadingPipe(0, address);
59. radio.setAutoAck(false);
60. radio.setDataRate(RF24_250KBPS);
61. radio.setPALevel(RF24_PA_LOW);
62. radio.startListening(); // Set the module as receiver
63.
64. Serial.begin(115200);
65. }
66.
67. void loop() {
68. // Check whether we keep receving data, or we have a connection between the two modules
69. currentTime = millis();
70. if ( currentTime - lastReceiveTime > 1000 ) { // If current time is more then 1 second since we
have recived the last data, that means we have lost connection
71. resetData(); // If connection is lost, reset the data. It prevents unwanted behavior, for
example if a drone jas a throttle up, if we lose connection it can keep flying away if we dont
reset the function
72. }
73. // Check whether there is data to be received
74. if (radio.available()) {
75. radio.read(&data, sizeof(Data_Package)); // Read the whole data and store it into the 'data'
structure
76. lastReceiveTime = millis(); // At this moment we have received the data
77. }
78. // Set speed - left potentiometer
79. wheelSpeed = map(data.pot1, 0, 255, 100, 3000);
80.
81. if (data.j1PotX > 150) {
82. moveSidewaysLeft();
83. }
84. else if (data.j1PotX < 100) {
85. moveSidewaysRight();
86. }
87. else if (data.j1PotY > 160) {
88. moveForward(); Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

23 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

89. }
90. else if (data.j1PotY < 100) {
91. moveBackward();
92. }
93. else if (data.j2PotX < 100 & data.j2PotY > 160) {
94. moveRightForward();
95. }
96. else if (data.j2PotX > 160 & data.j2PotY > 160) {
97. moveLeftForward();
98. }
99. else if (data.j2PotX < 100 & data.j2PotY < 100) {
100. moveRightBackward();
101. }
102. else if (data.j2PotX > 160 & data.j2PotY < 100) {
103. moveLeftBackward();
104. }
105. else if (data.j2PotX < 100) {
106. rotateRight();
107. }
108. else if (data.j2PotX > 150) {
109. rotateLeft();
110. }
111. else {
112. stopMoving();
113. }
114. // Execute the steps
115. LeftFrontWheel.runSpeed();
116. LeftBackWheel.runSpeed();
117. RightFrontWheel.runSpeed();
118. RightBackWheel.runSpeed();
119.
120. // Monitor the battery voltage
121. int sensorValue = analogRead(A0);
122. float voltage = sensorValue * (5.0 / 1023.00) * 3; // Convert the reading values from 5v to
suitable 12V i
123. // If voltage is below 11V turn on the LED
124. if (voltage < 11) {
125. digitalWrite(led, HIGH);
126. }
127. else {
128. digitalWrite(led, LOW);
129. }
130. }
131.
132. void moveForward() {
133. LeftFrontWheel.setSpeed(wheelSpeed);
134. LeftBackWheel.setSpeed(wheelSpeed);
135. RightFrontWheel.setSpeed(wheelSpeed);
136. RightBackWheel.setSpeed(wheelSpeed);
137. }
138. void moveBackward() {
139. LeftFrontWheel.setSpeed(-wheelSpeed);
140. LeftBackWheel.setSpeed(-wheelSpeed);
141. RightFrontWheel.setSpeed(-wheelSpeed);
142. RightBackWheel.setSpeed(-wheelSpeed);
143. }
144. void moveSidewaysRight() {
145. LeftFrontWheel.setSpeed(wheelSpeed);
146. LeftBackWheel.setSpeed(-wheelSpeed);
147. RightFrontWheel.setSpeed(-wheelSpeed);
148. RightBackWheel.setSpeed(wheelSpeed);
149. }
150. Ok
void moveSidewaysLeft() { Read more (https://howtomechatronics.com/privacy-policy-page/)

24 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

151. LeftFrontWheel.setSpeed(-wheelSpeed);
152. LeftBackWheel.setSpeed(wheelSpeed);
153. RightFrontWheel.setSpeed(wheelSpeed);
154. RightBackWheel.setSpeed(-wheelSpeed);
155. }
156. void rotateLeft() {
157. LeftFrontWheel.setSpeed(-wheelSpeed);
158. LeftBackWheel.setSpeed(-wheelSpeed);
159. RightFrontWheel.setSpeed(wheelSpeed);
160. RightBackWheel.setSpeed(wheelSpeed);
161. }
162. void rotateRight() {
163. LeftFrontWheel.setSpeed(wheelSpeed);
164. LeftBackWheel.setSpeed(wheelSpeed);
165. RightFrontWheel.setSpeed(-wheelSpeed);
166. RightBackWheel.setSpeed(-wheelSpeed);
167. }
168. void moveRightForward() {
169. LeftFrontWheel.setSpeed(wheelSpeed);
170. LeftBackWheel.setSpeed(0);
171. RightFrontWheel.setSpeed(0);
172. RightBackWheel.setSpeed(wheelSpeed);
173. }
174. void moveRightBackward() {
175. LeftFrontWheel.setSpeed(0);
176. LeftBackWheel.setSpeed(-wheelSpeed);
177. RightFrontWheel.setSpeed(-wheelSpeed);
178. RightBackWheel.setSpeed(0);
179. }
180. void moveLeftForward() {
181. LeftFrontWheel.setSpeed(0);
182. LeftBackWheel.setSpeed(wheelSpeed);
183. RightFrontWheel.setSpeed(wheelSpeed);
184. RightBackWheel.setSpeed(0);
185. }
186. void moveLeftBackward() {
187. LeftFrontWheel.setSpeed(-wheelSpeed);
188. LeftBackWheel.setSpeed(0);
189. RightFrontWheel.setSpeed(0);
190. RightBackWheel.setSpeed(-wheelSpeed);
191. }
192. void stopMoving() {
193. LeftFrontWheel.setSpeed(0);
194. LeftBackWheel.setSpeed(0);
195. RightFrontWheel.setSpeed(0);
196. RightBackWheel.setSpeed(0);
197. }
198.
199.
200. void resetData() {
201. // Reset the values when there is no radio connection - Set initial default values
202. data.j1PotX = 127;
203. data.j1PotY = 127;
204. data.j2PotX = 127;
205. data.j2PotY = 127;
206. data.j1Button = 1;
207. data.j2Button = 1;
208. data.pot1 = 1;
209. data.pot2 = 1;
210. data.tSwitch1 = 1;
211. data.tSwitch2 = 1;
212. data.button1 = 1;
213. data.button2 = 1;Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

25 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

214. data.button3 = 1;
215. data.button4 = 1;
216. }

1. /*
2. === Arduino Mecanum Wheels Robot ===
3. Smartphone control via Bluetooth
4. by Dejan, www.HowToMechatronics.com
5. Libraries:
6. RF24, https://github.com/tmrh20/RF24/
7. AccelStepper by Mike McCauley: http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
8.
9. */
10.
11. #include <SoftwareSerial.h>
12. #include <AccelStepper.h>
13.
14. SoftwareSerial Bluetooth(A8, 38); // Arduino(RX, TX) - HC-05 Bluetooth (TX, RX)
15.
16. // Define the stepper motors and the pins the will use
17. AccelStepper LeftBackWheel(1, 42, 43); // (Type:driver, STEP, DIR) - Stepper1
18. AccelStepper LeftFrontWheel(1, 40, 41); // Stepper2
19. AccelStepper RightBackWheel(1, 44, 45); // Stepper3
20. AccelStepper RightFrontWheel(1, 46, 47); // Stepper4
21.
22. #define led 14
23.
24. int wheelSpeed = 1500;
25.
26. int dataIn, m;
27.
28. Ok rbw[50],
int lbw[50], lfw[50], Read more (https://howtomechatronics.com/privacy-policy-page/)
rfw[50]; // for storing positions/steps

26 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

29. int index = 0;


30.
31. void setup() {
32. // Set initial seed values for the steppers
33. LeftFrontWheel.setMaxSpeed(3000);
34. LeftBackWheel.setMaxSpeed(3000);
35. RightFrontWheel.setMaxSpeed(3000);
36. RightBackWheel.setMaxSpeed(3000);
37.
38. Serial.begin(38400);
39. Bluetooth.begin(38400); // Default baud rate of the Bluetooth module
40. Bluetooth.setTimeout(1);
41. delay(20);
42.
43. pinMode(led, OUTPUT);
44.
45. }
46.
47. void loop() {
48. // Check for incoming data
49.
50. if (Bluetooth.available() > 0) {
51. dataIn = Bluetooth.read(); // Read the data
52.
53. if (dataIn == 0) {
54. m = 0;
55. }
56. if (dataIn == 1) {
57. m = 1;
58. }
59. if (dataIn == 2) {
60. m = 2;
61. }
62. if (dataIn == 3) {
63. m = 3;
64. }
65. if (dataIn == 4) {
66. m = 4;
67. }
68. if (dataIn == 5) {
69. m = 5;
70. }
71. if (dataIn == 6) {
72. m = 6;
73. }
74. if (dataIn == 7) {
75. m = 7;
76. }
77. if (dataIn == 8) {
78. m = 8;
79.
80. }
81. if (dataIn == 9) {
82. m = 9;
83. }
84. if (dataIn == 10) {
85. m = 10;
86. }
87. if (dataIn == 11) {
88. m = 11;
89. }
90.
91.
Ok {
if (dataIn == 12) Read more (https://howtomechatronics.com/privacy-policy-page/)

27 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

92. m = 12;
93. }
94. if (dataIn == 14) {
95. m = 14;
96. }
97. // Set speed
98. if (dataIn >= 16) {
99. wheelSpeed = dataIn * 10;
100. Serial.println(wheelSpeed);
101. }
102. }
103. if (m == 4) {
104. moveSidewaysLeft();
105. }
106. if (m == 5) {
107. moveSidewaysRight();
108. }
109. if (m == 2) {
110. moveForward();
111. }
112. if (m == 7) {
113. moveBackward();
114. }
115. if (m == 3) {
116. moveRightForward();
117. }
118. if (m == 1) {
119. moveLeftForward();
120. }
121. if (m == 8) {
122. moveRightBackward();
123. }
124. if (m == 6) {
125. moveLeftBackward();
126. }
127. if (m == 9) {
128. rotateLeft();
129. }
130. if (m == 10) {
131. rotateRight();
132. }
133.
134. if (m == 0) {
135. stopMoving();
136. }
137. //Serial.println(dataIn);
138. // If button "SAVE" is pressed
139. if (m == 12) {
140. if (index == 0) {
141. LeftBackWheel.setCurrentPosition(0);
142. LeftFrontWheel.setCurrentPosition(0);
143. RightBackWheel.setCurrentPosition(0);
144. RightFrontWheel.setCurrentPosition(0);
145. }
146. lbw[index] = LeftBackWheel.currentPosition(); // save position into the array
147. lfw[index] = LeftFrontWheel.currentPosition();
148. rbw[index] = RightBackWheel.currentPosition();
149. rfw[index] = RightFrontWheel.currentPosition();
150. index++; // Increase the array index
151. m = 0;
152. }
153.
154. if (m == 14) { Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

28 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

155. runSteps();
156. if (dataIn != 14) {
157. stopMoving();
158. memset(lbw, 0, sizeof(lbw)); // Clear the array data to 0
159. memset(lfw, 0, sizeof(lfw));
160. memset(rbw, 0, sizeof(rbw));
161. memset(rfw, 0, sizeof(rfw));
162. index = 0; // Index to 0
163. }
164. }
165.
166. LeftFrontWheel.runSpeed();
167. LeftBackWheel.runSpeed();
168. RightFrontWheel.runSpeed();
169. RightBackWheel.runSpeed();
170.
171. // Monitor the battery voltage
172. int sensorValue = analogRead(A0);
173. float voltage = sensorValue * (5.0 / 1023.00) * 3; // Convert the reading values from 5v to
suitable 12V i
174. //Serial.println(voltage);
175. // If voltage is below 11V turn on the LED
176. if (voltage < 11) {
177. digitalWrite(led, HIGH);
178. }
179. else {
180. digitalWrite(led, LOW);
181. }
182.
183. }
184.
185. void runSteps() {
186. for (int i = index - 1; i >= 0; i--) { // Run through all steps(index)
187. LeftFrontWheel.moveTo(lfw[i]);
188. LeftFrontWheel.setSpeed(wheelSpeed);
189. LeftBackWheel.moveTo(lbw[i]);
190. LeftBackWheel.setSpeed(wheelSpeed);
191. RightFrontWheel.moveTo(rfw[i]);
192. RightFrontWheel.setSpeed(wheelSpeed);
193. RightBackWheel.moveTo(rbw[i]);
194. RightBackWheel.setSpeed(wheelSpeed);
195.
196. while (LeftBackWheel.currentPosition() != lbw[i] & LeftFrontWheel.currentPosition() != lfw[i]
& RightFrontWheel.currentPosition() != rfw[i] & RightBackWheel.currentPosition() != rbw[i]) {
197. LeftFrontWheel.runSpeedToPosition();
198. LeftBackWheel.runSpeedToPosition();
199. RightFrontWheel.runSpeedToPosition();
200. RightBackWheel.runSpeedToPosition();
201.
202. if (Bluetooth.available() > 0) { // Check for incomding data
203. dataIn = Bluetooth.read();
204. if ( dataIn == 15) { // If button "PAUSE" is pressed
205. while (dataIn != 14) { // Wait until "RUN" is pressed again
206. if (Bluetooth.available() > 0) {
207. dataIn = Bluetooth.read();
208. if ( dataIn == 13) {
209. stopMoving();
210. break;
211. }
212. }
213. }
214. }
215. if (dataIn Ok
>= 16) Read
{ more (https://howtomechatronics.com/privacy-policy-page/)

29 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

216. wheelSpeed = dataIn * 10;


217. dataIn = 14;
218. }
219. if ( dataIn == 13) {
220. break;
221. }
222. }
223. }
224. }
225. // Go back through steps
226. for (int i = 1; i <= index - 1; i++) { // Run through all steps(index)
227.
228. LeftFrontWheel.moveTo(lfw[i]);
229. LeftFrontWheel.setSpeed(wheelSpeed);
230. LeftBackWheel.moveTo(lbw[i]);
231. LeftBackWheel.setSpeed(wheelSpeed);
232. RightFrontWheel.moveTo(rfw[i]);
233. RightFrontWheel.setSpeed(wheelSpeed);
234. RightBackWheel.moveTo(rbw[i]);
235. RightBackWheel.setSpeed(wheelSpeed);
236.
237. while (LeftBackWheel.currentPosition() != lbw[i]& LeftFrontWheel.currentPosition() != lfw[i] &
RightFrontWheel.currentPosition() != rfw[i] & RightBackWheel.currentPosition() != rbw[i]) {
238.
239. LeftFrontWheel.runSpeedToPosition();
240. LeftBackWheel.runSpeedToPosition();
241. RightFrontWheel.runSpeedToPosition();
242. RightBackWheel.runSpeedToPosition();
243. //Serial.print(" current: ");
244. //Serial.println(LeftBackWheel.currentPosition());
245.
246. if (Bluetooth.available() > 0) { // Check for incomding data
247. dataIn = Bluetooth.read();
248. if ( dataIn == 15) { // If button "PAUSE" is pressed
249. while (dataIn != 14) { // Wait until "RUN" is pressed again
250. if (Bluetooth.available() > 0) {
251. dataIn = Bluetooth.read();
252. if ( dataIn == 13) {
253. stopMoving();
254. break;
255. }
256. }
257. }
258. }
259. if (dataIn >= 16) {
260. wheelSpeed = dataIn * 10;
261. dataIn = 14;
262. }
263. if ( dataIn == 13) {
264. //Serial.println("DEKI");
265. break;
266. }
267. }
268. }
269. }
270. }
271.
272. void moveForward() {
273. LeftFrontWheel.setSpeed(wheelSpeed);
274. LeftBackWheel.setSpeed(wheelSpeed);
275. RightFrontWheel.setSpeed(wheelSpeed);
276. RightBackWheel.setSpeed(wheelSpeed);
277. } Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

30 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

278. void moveBackward() {


279. LeftFrontWheel.setSpeed(-wheelSpeed);
280. LeftBackWheel.setSpeed(-wheelSpeed);
281. RightFrontWheel.setSpeed(-wheelSpeed);
282. RightBackWheel.setSpeed(-wheelSpeed);
283. }
284. void moveSidewaysRight() {
285. LeftFrontWheel.setSpeed(wheelSpeed);
286. LeftBackWheel.setSpeed(-wheelSpeed);
287. RightFrontWheel.setSpeed(-wheelSpeed);
288. RightBackWheel.setSpeed(wheelSpeed);
289. }
290. void moveSidewaysLeft() {
291. LeftFrontWheel.setSpeed(-wheelSpeed);
292. LeftBackWheel.setSpeed(wheelSpeed);
293. RightFrontWheel.setSpeed(wheelSpeed);
294. RightBackWheel.setSpeed(-wheelSpeed);
295. }
296. void rotateLeft() {
297. LeftFrontWheel.setSpeed(-wheelSpeed);
298. LeftBackWheel.setSpeed(-wheelSpeed);
299. RightFrontWheel.setSpeed(wheelSpeed);
300. RightBackWheel.setSpeed(wheelSpeed);
301. }
302. void rotateRight() {
303. LeftFrontWheel.setSpeed(wheelSpeed);
304. LeftBackWheel.setSpeed(wheelSpeed);
305. RightFrontWheel.setSpeed(-wheelSpeed);
306. RightBackWheel.setSpeed(-wheelSpeed);
307. }
308. void moveRightForward() {
309. LeftFrontWheel.setSpeed(wheelSpeed);
310. LeftBackWheel.setSpeed(0);
311. RightFrontWheel.setSpeed(0);
312. RightBackWheel.setSpeed(wheelSpeed);
313. }
314. void moveRightBackward() {
315. LeftFrontWheel.setSpeed(0);
316. LeftBackWheel.setSpeed(-wheelSpeed);
317. RightFrontWheel.setSpeed(-wheelSpeed);
318. RightBackWheel.setSpeed(0);
319. }
320. void moveLeftForward() {
321. LeftFrontWheel.setSpeed(0);
322. LeftBackWheel.setSpeed(wheelSpeed);
323. RightFrontWheel.setSpeed(wheelSpeed);
324. RightBackWheel.setSpeed(0);
325. }
326. void moveLeftBackward() {
327. LeftFrontWheel.setSpeed(-wheelSpeed);
328. LeftBackWheel.setSpeed(0);
329. RightFrontWheel.setSpeed(0);
330. RightBackWheel.setSpeed(-wheelSpeed);
331. }
332. void stopMoving() {
333. LeftFrontWheel.setSpeed(0);
334. LeftBackWheel.setSpeed(0);
335. RightFrontWheel.setSpeed(0);
336. RightBackWheel.setSpeed(0);
337. }

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

31 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

32 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

33 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Share 1.3K Like 1.3K

Salvar (https://br.pinterest.com/pin/create/button/?guid=sQAGzBSZFKtp-1&url=https%3A%2F 8

%2Fhowtomechatronics.com%2Fprojects%2Farduino-mecanum-wheels-robot%2F&media=https%3A%2F
%2Fhowtomechatronics.com%2Fwp-content%2Fuploads%2F2019%2F05%2FArduino-Mecanum-Wheels-Robot-Project.jpg&
description=Arduino%2BMecanum%2BWheels%2BRobot)

Tweet

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

34 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

35 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

36 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

37 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

38 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

39 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

40 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

41 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

42 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

S U BMI T

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

43 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

44 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

45 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

46 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

47 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

SUBSCRIBE

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

48 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

How To Mechatronics

999+

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

49 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

50 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

51 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

52 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

53 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

54 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

55 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

56 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

57 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

58 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

59 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

60 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

61 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

62 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

63 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

64 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

65 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

66 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

67 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

68 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

69 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

70 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

71 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

72 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

73 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

74 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

75 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

76 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

77 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

78 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

79 of 80 28/07/2019 17:11
Arduino Mecanum Wheels Robot - HowToMechatronics https://howtomechatronics.com/projects/arduino-mecanum-wheels-robot/

Ok Read more (https://howtomechatronics.com/privacy-policy-page/)

80 of 80 28/07/2019 17:11

You might also like