Thanks :). ESP32 is capable of a whole lot of things as long as you have patience to write some nice software. Devel firmware now also has an option for remote control via web page, and I'm working (so very now and then) on step generation with ESP32 peripherals. Minimal CPU load, 1 MHz step rate!
Got it working! (Kinda) I'm using an ESP32-DEVkitc-32D on a custom made pcb. After getting the motors to rotate the correct way, it 'stands' by itself! Next: RC control and battery monitor. Been wanting to do a balancing bot since I first saw nBot. Thank you for the inspiration! Hope others follow.
Well, I just was looking for an Arduino alternative, and I like it for multiple reasons: working with multiple files is a lot easier, more advanced editor, OTA works like a charm. Plus, I work with some different platforms, and the idea is to use one single environment.
It seems the board you mentioned is esp8266 based. I wrote the software for an esp32 and never tested on esp8266. With effort you could maybe get it to work but I would recommend to just use an esp32
Hi nice work. Any assembling instructions? How did you manage to mount steppers to the frame? Where we can shop for rubber band used on the wheels? Thank you for sharing!
hello, please can you help me step by step? i loaded the sketch, and the serial monitor says : loading index.html; what should i do, which file should i open from the data folder? index? should I click AP or SSID and what credentials to put? I specify that I use arduino ide
Yes Arduino framework, and VS code + PlatformIO as IDE. What kind of efficiency do you mean? The basis is just two cascaded PID controllers, and quite some code around that for interfacing (web page for parameter tuning / data transmission etc.)
Im not able to input WiFi credentials when esp32 used as AP (i have also tried the serial monitor approach). It says ssid too long but i have even tried with single digit ssid . Is there a manual method to input those credentials, like in the code. Please help
Good question. The stepper motors are always on and yes they do consume quite a bit of current. A 4 wheeled robot could be made more efficient. With the battery used in this video battery life is > 5 hours so still pretty good. Also, I'm working on a version that doesn't use stepper motors but DC motors, resulting in a much lower power consumption. From some first tests it appears you can have a battery life of say 5 hours on a single (cheap) lithium cell :)
It was excellent. But i wonder something. Probably this dc motor doesnt have an encoder how do you get the position feedback of robot. Do you just control the vertical angular position.
Wrote the plotter software in javascript (probably stole the idea from someone else, don't remember exactly. Might have been CNLohr. ESP32 sends data via websockets and JS in browser makes it into a nice plot. Code can be found in gitlab.com/kloppertje/balancingrobot/-/blob/devel/Software/data/plotTest.htm
wow, this is cool ! can you share the details about the motor ? I understand is a Nema 17 and is seems not short... maybe you have a link or the specs ?
The ones used in this robot are indeed Nema17, with a length of 48mm. For another one, I've used the 39mm length ones. I don't think it really matters, as the torque is mostly limited by the used drivers, not the stepper motors themselves. I don't know if/how torque/current efficiency of stepper motors scale with length though.
Hi, tuning the robot requires some trial and error. Also, regarding your other questions, the documentation can be found in the gitlab repository, my website, and the youtube videos. You will require a certain amount of problem solving yourself. This is a free, open source project (and quite some time goes into making things open source); it is not a complete guide on how to build a robot.
Thank you so much for sharing the code, I've built a much bigger version of the robot using two solderable breadboards. Well, it falls sometimes when the stepper motor loses steps, but it is pretty stable. I also added minor things like changing motor current depending on speed. And I use different PIDs for staying and going, so now it doesn't swing when it stays. Really nice code, clean, I couldn't write anything like that, especially interesting how you send data via WebSocket, I don't fully understand how it works, but it is cool. One question, Why is microstep adjusted dynamically? Is it just to get faster speed? (I don't use it now).
привет Сергей! я тоже делаю большую версию робота, и у меня тоже есть некоторые проблемы, как можно с вами связаться? Возможно вам тоже смогу помочь в чем то
@Atilla Balcı Yes, but There are also lib folder, inside of this folder are libraries, Arduino needs those libraries to compile balancingrobot.ino, if it doesn't compile try to put the libraries in "C:\Users\User-Name\Documents\Arduino\libraries". (I modified fastStepper library slightly, so make sure you use the library I provided with the code).
ciao, per favore mi puoi aiutare passo dopo passo? ho caricato lo sketch e il monitor seriale dice: loading index.html; cosa devo fare, quale file devo aprire dalla cartella dei dati? indice? devo fare clic su AP o SSID e quali credenziali mettere?
See gitlab.com/kloppertje/balancingrobot/-/tree/devel/Software At the bottom of the page there's a short explanation. There is no dedicated app, via the browser you can visit the web page that is "created" by the esp32
@@kloppertje but the files of the "Data" folder must be loaded in esp32? and how? then open chrome? and how do you start the check? I'm sorry, but if you can clarify, thank you. I specify that I use arduino ide
Hi! I don't have twitter, but you can contact me via my website: www.elexperiment.nl/contact/ At some point I'll probably also make a post on my website about this robot, explaining everything in a bit more detail. For this application, I did some tricks with the steppers. I use the DAC of the ESP32 to set the stepper current, and more importantly, the microstep is adjusted dynamically based on motor speed. Together with the relatively high battery voltage (24V), this gives extremely high stepper speeds. At maximum rotational speed (at which the robot would absolutely not be stable anymore), the theoretical top speed would be something like 20 or 30 km/h I think.
Wow... How you get the speed, I tried to use nema 17 with an A4988 driver, but it was very slow... you think i would have best results with DRV 8845 OR MAYBE WAS THE MOTOR?
What do you mean by "very slow"? What is the motor's rated voltage, resistance and max current? At what voltage did you operate the motor? What was the current limit you set on the A4988? In general I would suggest a motor with a low coil resistance since it will be able to maintain its torque in higher speeds when using current-limiting drivers such as the DRV8825 or the A4988.
The fact that you did this using just esp32 is simply great dude!! 👏👏👏😎👍
Thanks :). ESP32 is capable of a whole lot of things as long as you have patience to write some nice software. Devel firmware now also has an option for remote control via web page, and I'm working (so very now and then) on step generation with ESP32 peripherals. Minimal CPU load, 1 MHz step rate!
Got it working! (Kinda) I'm using an ESP32-DEVkitc-32D on a custom made pcb. After getting the motors to rotate the correct way, it 'stands' by itself! Next: RC control and battery monitor. Been wanting to do a balancing bot since I first saw nBot. Thank you for the inspiration! Hope others follow.
Hello, did your code work with Arduino IDE?
What was your main reasoning for going with platformio? I have poked around a bit with the software but I haven't yet had a reason to use it.
Well, I just was looking for an Arduino alternative, and I like it for multiple reasons: working with multiple files is a lot easier, more advanced editor, OTA works like a charm. Plus, I work with some different platforms, and the idea is to use one single environment.
Best part. The crash at the final... Jajajaj Excelent job. Thanks.
More than expected and I dream of. Great Job!
can I use NodeMcu V3 instead of ESP32 ?
It seems the board you mentioned is esp8266 based. I wrote the software for an esp32 and never tested on esp8266. With effort you could maybe get it to work but I would recommend to just use an esp32
Excellent work 👌😎
It's very disappointing to see so few comments 😔
Hi nice work. Any assembling instructions?
How did you manage to mount steppers to the frame?
Where we can shop for rubber band used on the wheels?
Thank you for sharing!
what is the diameter of the wheel?
hello, please can you help me step by step? i loaded the sketch, and the serial monitor says : loading index.html;
what should i do, which file should i open from the data folder? index? should I click AP or SSID and what credentials to put? I specify that I use arduino ide
Great job! Wonderful outcome!!!
Did you use Arduino Framework for programming? Which tools do you use for ESP32 to achieve that awesome efficiency?
Yes Arduino framework, and VS code + PlatformIO as IDE. What kind of efficiency do you mean? The basis is just two cascaded PID controllers, and quite some code around that for interfacing (web page for parameter tuning / data transmission etc.)
@@kloppertje it's very fast and precise, measuring, calculating PID and also receiving remote commands. It's really good job!
hi , which nema 17, did you buy? part number?
Wow ! Amazing
I'm waiting for your additional information about this.
See (updated) description for links, everything is available now!
Im not able to input WiFi credentials when esp32 used as AP (i have also tried the serial monitor approach).
It says ssid too long but i have even tried with single digit ssid . Is there a manual method to input those credentials, like in the code.
Please help
does the continuous stabilisation makes it less performant and spends more battery compared to a 4 wheels robot?
Good question. The stepper motors are always on and yes they do consume quite a bit of current. A 4 wheeled robot could be made more efficient. With the battery used in this video battery life is > 5 hours so still pretty good.
Also, I'm working on a version that doesn't use stepper motors but DC motors, resulting in a much lower power consumption. From some first tests it appears you can have a battery life of say 5 hours on a single (cheap) lithium cell :)
Nice Work! Very fasr and stable control! Thank you for share your build!
Can anyone tell me which app is using on the phone?
Hi my friend, i was trying it for 3weeks and no sucess, i will try your code in this week... GOOD JOB!
are u using 1/4 or 1/8 microstepping ? im having a real hard time finding it..
gitlab.com/kloppertje/balancingrobot/-/blob/ps3control/Software/src/main.cpp?ref_type=heads#L154
@@kloppertje I'm also not able to connect to wifi by using my credentials in html (although esp32 as AP is visible to me)
Its 4am in my country btw🥲
i'm using tmc2208 please tell me whats the microstep resolution i should choose, my robot seems to work at 1/4 but u r saying its 1/16 ?@@kloppertje
It was excellent. But i wonder something. Probably this dc motor doesnt have an encoder how do you get the position feedback of robot. Do you just control the vertical angular position.
Stepper motors!
0:45 .. what is the plotter software that you are using? Such a great design. Thank you for sharing this!
Wrote the plotter software in javascript (probably stole the idea from someone else, don't remember exactly. Might have been CNLohr. ESP32 sends data via websockets and JS in browser makes it into a nice plot. Code can be found in gitlab.com/kloppertje/balancingrobot/-/blob/devel/Software/data/plotTest.htm
hi, what app should you download to your phone
No app needed! Everything runs on the esp32
wow, this is cool ! can you share the details about the motor ? I understand is a Nema 17 and is seems not short... maybe you have a link or the specs ?
The ones used in this robot are indeed Nema17, with a length of 48mm. For another one, I've used the 39mm length ones. I don't think it really matters, as the torque is mostly limited by the used drivers, not the stepper motors themselves. I don't know if/how torque/current efficiency of stepper motors scale with length though.
Great job!
hola ,puede decirme cual es la aplicacion en en mobil para su manejo
im not able to tune the robot it just wobbles and then falls down & where should is save the pid values permanently?
Hi, tuning the robot requires some trial and error. Also, regarding your other questions, the documentation can be found in the gitlab repository, my website, and the youtube videos. You will require a certain amount of problem solving yourself. This is a free, open source project (and quite some time goes into making things open source); it is not a complete guide on how to build a robot.
Thank you so much for sharing the code, I've built a much bigger version of the robot using two solderable breadboards. Well, it falls sometimes when the stepper motor loses steps, but it is pretty stable. I also added minor things like changing motor current depending on speed. And I use different PIDs for staying and going, so now it doesn't swing when it stays. Really nice code, clean, I couldn't write anything like that, especially interesting how you send data via WebSocket, I don't fully understand how it works, but it is cool. One question, Why is microstep adjusted dynamically? Is it just to get faster speed? (I don't use it now).
привет Сергей! я тоже делаю большую версию робота, и у меня тоже есть некоторые проблемы, как можно с вами связаться? Возможно вам тоже смогу помочь в чем то
@Atilla Balcı Better late than never :) Here you go: github.com/Deimos1994/ESP32_Robot
@Atilla Balcı Yes, but There are also lib folder, inside of this folder are libraries, Arduino needs those libraries to compile balancingrobot.ino, if it doesn't compile try to put the libraries in "C:\Users\User-Name\Documents\Arduino\libraries". (I modified fastStepper library slightly, so make sure you use the library I provided with the code).
ciao, per favore mi puoi aiutare passo dopo passo? ho caricato lo sketch e il monitor seriale dice: loading index.html;
cosa devo fare, quale file devo aprire dalla cartella dei dati? indice? devo fare clic su AP o SSID e quali credenziali mettere?
amazing, geat job !
Wow very very good!
we are not understood, to make it go forward, backward, right, left
See gitlab.com/kloppertje/balancingrobot/-/tree/devel/Software
At the bottom of the page there's a short explanation. There is no dedicated app, via the browser you can visit the web page that is "created" by the esp32
@@kloppertje Can anyone tell me which app is using on the phone?
@@Francesco105590 See my last reply, any browser will do. It's a web page that is running on the ESP32, that you can access via any browser app
@@kloppertje but the files of the "Data" folder must be loaded in esp32? and how? then open chrome? and how do you start the check? I'm sorry, but if you can clarify, thank you. I specify that I use arduino ide
WoW! Man, these steppers sound like servos! Have you a Twitter or other contact method?
Hi! I don't have twitter, but you can contact me via my website: www.elexperiment.nl/contact/
At some point I'll probably also make a post on my website about this robot, explaining everything in a bit more detail.
For this application, I did some tricks with the steppers. I use the DAC of the ESP32 to set the stepper current, and more importantly, the microstep is adjusted dynamically based on motor speed. Together with the relatively high battery voltage (24V), this gives extremely high stepper speeds. At maximum rotational speed (at which the robot would absolutely not be stable anymore), the theoretical top speed would be something like 20 or 30 km/h I think.
@@kloppertje so like servo-steppers?
Como puedes conseguir tanta velocidad con un motor paso a paso XD.
Wow... How you get the speed, I tried to use nema 17 with an A4988 driver, but it was very slow... you think i would have best results with DRV 8845 OR MAYBE WAS THE MOTOR?
What do you mean by "very slow"?
What is the motor's rated voltage, resistance and max current?
At what voltage did you operate the motor? What was the current limit you set on the A4988?
In general I would suggest a motor with a low coil resistance since it will be able to maintain its torque in higher speeds when using current-limiting drivers such as the DRV8825 or the A4988.
What is the battery life like?
It's good! Especially with this version, because there's a 6S 2.6 Ah LiPo battery on top. Runtime should be 4 hours or so.
@@kloppertje thanks!
YOU DISURVE MORE LIKES AND VIEWES
Wait for the next version :)
bb8 get me a beer
Cost?????
See my website, link in description
cool!!!
100%
imu.initialize(); no working Why
Great job!