Hello!
I'm back to build my second ROV! (My first is also published on this forum and is called Skagen ROV is anyone is interested )
While designing this ROV I was keen to not make the same mistakes as last time, here's a list of some of the things I learnt building my first ROV:
1. DC motors (bilge pumps) are expensive.
Not only are good DC motors fairly pricey, but the real cost is in high amp DC motor controllers, these very quickly become very expensive. Therefore, this time I decided I would use brushless motors. (also as the deal with pressure better)
2.Internet communication is the way to go.
In my first ROV I had two cable, one for serial communication with my ROV and one for video. This was horribly inefficient and the video was terrible quality. This time Suki ROV is going to be communication through one Ethernet cable.
3. Waterproofing is hard.
This time I'm not going to ignore waterproofing!
4. 3D printers and Laser cutters are great tools.
Even in the couple of years since my first ROV 3D printers and laser cutters have only got better, and therefore I'm going to try and use 3D printed and laser cut parts as much as possible in Suki ROV. It's also very fast and cheap to manufacture these parts if you have a local hackerspace/makerspace.
So with these principles in heart and 200£ of a university grant in my pocket, I started designing!
Here we see what Suki will look like! As you can see it has two motors for horizontal movement and two for vertical. Like the Open ROV (on which it's hardware and software is loosely bsed) it has a clear tube which houses all the electronics, webcam. the battery and some other bits and pieces.
The ROV has two side panels, these will be laser cut out of colored acrylic (if I can get my hands on it) on to it will the vertical motors be held in place. The green parts will hold onto the tube, and the two horizontal motors. Two threaded rods will also be attached which will act as the "rails" of the ROV
The Orange part on the top is my preliminary design for floats, but will probably change as I unfortunately don't think I can build such a nice shape.
This is the main tube, in it you can see the webcam, which will be attached to a servo motor allowing it to pan up/down in the tube for a better field of view.
The end caps for the tube will be made using a laser cutter. I will cut many different layers and glue them together and fit O-Rings in between them. This is what the old Open ROV kits did and will save me a lot of money compared to getting them CNC'ed!
Finally here is a schematic of how the software works
As you can see, a Raspberry Pi in the robot hosts a website which is made using flask, a python web development tool, and an interface out of HTML and JavaScript. This means that when we plug the Ethernet cable into our computer, all we have to do is type in the Raspberry pi's ip adresss into our browse and we can see this webpage!
The webpage uses "motion" (it's a raspberry pi tool) to stream the video from the webcam. The webpage has some buttons to control the robot, I basically followed this tutorial. https://circuitdigest.com/microcontroll ... ance-robot This works very well, fantastic frame rate and quality. The only issues I had were due to the frame rates being limited in the motion.conf file. However, after I disabled all frame rate limitations, it worked like a charm. Another issue is getting a webpage to read keyboard input and hopefully in the long term an Xbox/PlayStation controller, but I haven't cracked that nut yet (advice/help would be appreciated! I am new to JavaScript!).
The Raspberry pi then talks to an Arduino Nano by serial communication. This is quite simply achieved by a USB cable plugged into both. The Arduino executes the commands send by the raspberry pi. So far this has proved extremely reliable.
Until now, the Suki ROV project had been going very well, however in my ignorance of brushelss motors, I bought these motors and ESCs.
These motors work absolutely fantastic, expect I didn't realise that they (like most drone ESCs) usually by default cannot be driven forwards and backwards. So I have spent a long time trying to reprogram my ESCs to be reversible.
Ater a lot of googling, I found out you can reprogram ESCs using something called BLheli, first tried to reprogram them using the signal cable of the input to them. (This is the yellow wire going from the ESC you plug into your micro controller) and using BLheli suite. This did not work. So then I tried using the Arduino as an ISP and connecting the Arduino to the pins on the ESC. Here again I used BLheli suite but I still couldn't get BLheli to recognize the ESC, and ended up just bricking my arduino.
I've spent a week trying to get these ESCs to be reversible and have not succeed at all in fact, I'm not sure what ESCs they actually are. If anyone has any idea what ESCs I have, or how to make them reversible I would very much appreciate it. Here are some pics of them without the Heat shrink.
Again any help or advice on how to program these to be reversible or if there's any cheap alternative ESCs that would work, would be extremely appreciated!
Please ask if I've been unclear at all, I'd love to hear any comments or feedback!
Thanks!
-MantFish
Suki ROV
-
- Posts: 187
- Joined: Mar 4th, 2018, 6:11 pm
- Location: Valverde de Júcar, Cuenca, España
Re: Suki ROV
Buenas noches.
Yo he estado estudiando cómo controlar los motores sin escobillas con Arduino, y he conseguido un montón de información, desde la explicación más básica de que es un ESC, hasta la más compleja, te pongo los enlaces a ver si te sirven para aclarar tus dudas.
Si la pagina te sale en Español, ábrela con el Google Chrome y tradúcela, no puede ser todo a tu gusto, lo siento.
Un saludo
Good night.
I have been studying how to control brushless motors with Arduino, and I have obtained a lot of information, from the most basic explanation that it is an ESC, to the most complex, I put the links to see if they serve you to clarify your doubts.
If the page is in Spanish, open it with Google Chrome and translate it, it can't be all to your liking, I'm sorry.
A greeting
https://blog.bricogeek.com/noticias/mod ... brushless/
http://elrincondelpoli.blogspot.com/201 ... ne555.html
https://aprendiendoarduino.wordpress.co ... ervomotor/
https://www.robotshop.com/community/blo ... no-library
https://github.com/lobodol/ESC-calibration
Yo he estado estudiando cómo controlar los motores sin escobillas con Arduino, y he conseguido un montón de información, desde la explicación más básica de que es un ESC, hasta la más compleja, te pongo los enlaces a ver si te sirven para aclarar tus dudas.
Si la pagina te sale en Español, ábrela con el Google Chrome y tradúcela, no puede ser todo a tu gusto, lo siento.
Un saludo
Good night.
I have been studying how to control brushless motors with Arduino, and I have obtained a lot of information, from the most basic explanation that it is an ESC, to the most complex, I put the links to see if they serve you to clarify your doubts.
If the page is in Spanish, open it with Google Chrome and translate it, it can't be all to your liking, I'm sorry.
A greeting
https://blog.bricogeek.com/noticias/mod ... brushless/
http://elrincondelpoli.blogspot.com/201 ... ne555.html
https://aprendiendoarduino.wordpress.co ... ervomotor/
https://www.robotshop.com/community/blo ... no-library
https://github.com/lobodol/ESC-calibration
Re: Suki ROV
Hi, great Project!!
I don't think you can reverse polarity in all kinds of ESCs.
If you want to use this ESCs, and be able to reverse them, I would suggest you tu plug a rele to two of the output cables on the esc so that when it is active it will switch both cables, this will make the motor go on the opposite direction.
Hope you understood my idea, if you have any doubt just tell me and I will make a drawing.
Maybe you could use MOSFET transistors instead of rele to lower power consumption and reliability over time.
I don't think you can reverse polarity in all kinds of ESCs.
If you want to use this ESCs, and be able to reverse them, I would suggest you tu plug a rele to two of the output cables on the esc so that when it is active it will switch both cables, this will make the motor go on the opposite direction.
Hope you understood my idea, if you have any doubt just tell me and I will make a drawing.
Maybe you could use MOSFET transistors instead of rele to lower power consumption and reliability over time.
Re: Suki ROV
Thanks asesorplaza1 for the links, although I don't have too much problems with controlling an ESC with arduino, I'm really struggling to get it to be reversible (spin clockwise AND anticlockwise). But the library on github looks like it'll make my code a lot neater!
Thanks as well MarcoMota, I think I understand what you mean, however, I was looking at this thread on the Arduino forum https://forum.arduino.cc/index.php?topic=419102.0.
Here they also suggest using some kind of switches to swap the wires of brushless motor, but it seems you might break your motor if it's not powered completely off when you switch?
Secondly this seems like quite of lot of hassle and not the most elegant solution but if it's the only way to go, I will probably have to resort to it. It just seems like it'll be expensive, complicated and will be slow at switching from forwards to backwards. . Do you know of any ESCs that definitely can be programmed to be reversible and how to do it if so?
Thanks for the replies!
-MantFish
Thanks as well MarcoMota, I think I understand what you mean, however, I was looking at this thread on the Arduino forum https://forum.arduino.cc/index.php?topic=419102.0.
Here they also suggest using some kind of switches to swap the wires of brushless motor, but it seems you might break your motor if it's not powered completely off when you switch?
Secondly this seems like quite of lot of hassle and not the most elegant solution but if it's the only way to go, I will probably have to resort to it. It just seems like it'll be expensive, complicated and will be slow at switching from forwards to backwards. . Do you know of any ESCs that definitely can be programmed to be reversible and how to do it if so?
Thanks for the replies!
-MantFish
Re: Suki ROV
Hey, yes! Look at RC car escs. I also was a lot into electric skateboards and they used VESCs with are really powerful and completely programmable.
It seems weird you would brake your motor. Mostly probably you would brake the esc. You should create a protection circuit with diodes and capacitors. For sure it wouldn't be a hassle free solution.
Hope it helps
It seems weird you would brake your motor. Mostly probably you would brake the esc. You should create a protection circuit with diodes and capacitors. For sure it wouldn't be a hassle free solution.
Hope it helps
Re: Suki ROV
Hello!
After a little break, I'm back! Just to update on how its going!
To solve the reversible ESC issue, I ended up buying car ESCs from hobbyking (https://hobbyking.com/en_us/hobbykingr- ... tore=en_us). These were just the easiest solution as I couldn't reprogram my ESCs. Thanks for all the advice guys!
The code is almost finished, although I'm having trouble with two way communication using flask, I might have to dive into some node.js stuff after all!
I've also started 3D printing my design! Here are some pictures: I was wondering about using these brushless motors for my ROV, I doubt they are made to be thrown into the sea! How do you prevent corrosion?
Thanks!
-Mantfish
After a little break, I'm back! Just to update on how its going!
To solve the reversible ESC issue, I ended up buying car ESCs from hobbyking (https://hobbyking.com/en_us/hobbykingr- ... tore=en_us). These were just the easiest solution as I couldn't reprogram my ESCs. Thanks for all the advice guys!
The code is almost finished, although I'm having trouble with two way communication using flask, I might have to dive into some node.js stuff after all!
I've also started 3D printing my design! Here are some pictures: I was wondering about using these brushless motors for my ROV, I doubt they are made to be thrown into the sea! How do you prevent corrosion?
Thanks!
-Mantfish
Re: Suki ROV
MantFish wrote:Hello!
After a little break, I'm back! Just to update on how its going!
To solve the reversible ESC issue, I ended up buying car ESCs from hobbyking (https://hobbyking.com/en_us/hobbykingr- ... tore=en_us). These were just the easiest solution as I couldn't reprogram my ESCs. Thanks for all the advice guys!
The code is almost finished, although I'm having trouble with two way communication using flask, I might have to dive into some node.js stuff after all!
I've also started 3D printing my design! Here are some pictures: I was wondering about using these brushless motors for my ROV, I doubt they are made to be thrown into the sea! How do you prevent corrosion?
Thanks!
-Mantfish
First of all if it gets in sea water if its not made with anti corrosion material it will for sure get rusty.
The first thing you will have to do is change the metal bearing with a ceramic one. Another thing you should do is put a litlle epoxy where the wires meet the stators of the motor
-
- Posts: 187
- Joined: Mar 4th, 2018, 6:11 pm
- Location: Valverde de Júcar, Cuenca, España
Re: Suki ROV
Good night from Spain.
In your last post I have seen several doubts that you expose very quickly, but that the explanation or solution is not easy.
In my project, I use the Serial Communication between the two Arduinos, with 4 RS485, to get Full Duplex communication, these links explain how it is done.
https://proyectoarduino.com/comunicaciones-con-rs485/
As for the engines, although brushless motors are supposed to get wet, I do not trust, not by water, but by the suspended particles that may be in the water, therefore I have protected the motors in a tube, attached photo, I do not know how you can implement it in your project, but the ideas that are not missing.
Happy Easter and stay away from Covid-19
In your last post I have seen several doubts that you expose very quickly, but that the explanation or solution is not easy.
In my project, I use the Serial Communication between the two Arduinos, with 4 RS485, to get Full Duplex communication, these links explain how it is done.
https://proyectoarduino.com/comunicaciones-con-rs485/
As for the engines, although brushless motors are supposed to get wet, I do not trust, not by water, but by the suspended particles that may be in the water, therefore I have protected the motors in a tube, attached photo, I do not know how you can implement it in your project, but the ideas that are not missing.
Happy Easter and stay away from Covid-19