In my intro to engineering class there will be a competition at the end of the semester where I have to transport an orange from one end of a small pond to the other side. In the middle of the pond is a large fountain that I will need to avoid.
Id like some way to detect when I am getting closer to the fountain and therefore I need to detect waves. I have a few ideas (and they aren't necessarily mutually exclusive, but I think there will be budget constraints for the competition), including:
Capacitive water level sensing
A barometer at the top of a tube (closed on top) with the other end submerged in water
A water pressure sensor
Detect rocking of the vessel using an accelerometer and gyro
Do any of you have any experience with this and know which method might be my best bet? Is there some other method I didn't mention?
The competition is still a long way out and the rules haven't even been posted (though we are encouraged to seek guidance from friends/faculty/the internet) but I'm trying to get a head start.
Wrong I can think of lots of ways to detect the fountain without looking for waves. The fountain in my local park does not produce waves at all and is still there (as an obstacle) if the water is turned off.
holmes4:
Wrong I can think of lots of ways to detect the fountain without looking for waves. The fountain in my local park does not produce waves at all and is still there (as an obstacle) if the water is turned off.
Mark
I'm not concerned about the physical fountain its self, I need to avoid water getting in my vessel or knocking the orange out.
pito:
What about the acoustic noise of the fountain?
That definitely sounds worthwhile!
Another issue would be detecting the directionality of the waves.
Another issue would be detecting the directionality of the waves.
I would mount a small directional microphone (a mike in a tube) on a servo (driven by arduino) and home to the max fountain noise signal level (an opamp with peak detector). Based on the max noise direction you can steer the boat by the second servo (rudder - driven by arduino) to the proper heading.
With Due you can even provide a spectral analysis of the signal (filter the fountain noise pattern), and/or use two microphones (bow, stern) and calculate the direction (or even Doppler) based on correlation of the two signals..
(search "passive sonar")
Detecting waves doesn't feel like a very promising way to detect the fountain. Is the fountain a physical object you need to steer round, or just a source of lots of falling water that needs to be avoided? Do you have any scope to design the vessel itself? It is probably far easier to design an unsinkable self-steering boat than detect the fountain and steer around it. If you can't modify the boat then a solution that just follows a hard-coded course would probably work more consistently than a detection/avoidance system.
I'm not concerned about the physical fountain its self, I need to avoid water getting in my vessel or knocking the orange out.
It seems the fountain will pour the water during the test, so it might be used as a good source of acoustic waves...
It depends on the setup as well - if the pond is 10m in diameter and the fountain pours water in 8m dia, then it wiil be not an easy task however..
piezo sensors. one on each side of the boat, under the water line.
or, two on each side.
compare the port sensor to the starboard one. which ever is greater is closer to the fountain.
compare the bow sensors to the stern. if they are equal, your course is parallel to the fountain.
if you use a tube to bring the sensors inboard a little, then the greatest value would be when the tube is pointed to the source. the course would not be plotted, but run in a circle around the fountain.
the wild variable is that if the fountain is a waterfall, the waves will be large. if the fountain is a spray, it will be very light.
the leeward side will be calm in comparison regardless.
problems. you cannot just steer away or you will never reach that foreign port. ( I hear the ale is great)
you need to figure how to stay in the chop, then once near your destination, head to port.
is there a lighthouse or buoy to make when to head to port ?
are you allowed to supply some marker for that foreign shore ?
Is this an outdoor fountain where the water spray will be affected by wind? If so the position of the fountain won't be a good indicator of where your "boat" will get wet.
How wide is the pond? is it circular? What is the diameter of the area affected by water emitted by the fountain? How wet can your "boat" get without damage? Are the waves big enough to swamp the boat (so that they must be avoided) or are you just considering them as a means to detect falling water?
I suspect you need to define your problem a bit more carefully.
As a hobby I have been building a small airboat from foam and electric airplane parts. I test it at a pond where I go to college. The pond does have a small fountain (more of a circulation pump) and a little waterfall. I have driven through both of them on purpose and by accident without incident. If you can make your boat out of a closed cell foam (sold as insulation at many stores) then it will be unsinkable. Waterproofing the electronics and securing the orange should mitigate any risk from the fountain.
Detecting waves in general might be feasible with a gyro, but determining the source of the waves would be a HARD problem. If the fountain must be avoided (say it has a hard metal center pipe) I would try to make some sort of guidance system that goes around it without sensing the fountain directly.
This seems to be a pretty good picture of the fountain its self (And as the picture indicates I am a freshman at UCF :p). The pond is shaped like a capital "D" and I'm pretty sure we will have to start one end of the flat side and go in a semi-circle to the other end of the flat side (So the bottom left of the D to the top left of the D).
The walls of the pond are vertical concrete, and I'm pretty sure there is a barrier that would prevent my boat from getting in to where the actual nozzles of the fountain are, so I could pretty easily just follow the outer wall and safely avoid the fountain.
I suppose I could even just get a strong enough motor and have no steering whatsoever - just let it scrape against the side of the pond until it got to where it was going - but that seems pretty boring. I enjoy coding and like to make all my Arduino projects as intelligent as possible.
jroorda:
As a hobby I have been building a small airboat from foam and electric airplane parts. I test it at a pond where I go to college.
Do you know a good place to start when trying to pick motors and props? I've never really worked with DC motors but when shopping around the only spec I can usually find is RPMs under no load which seems like a pretty useless spec. How can I tell how powerful a DC motor will be in comparison to another? Also, how does one typically mount a motor in such a way that the prop is in the water but the motor stays dry?
I don't see any detectable waves in your photo but there is lots of stuff like heavy rain. It's hard to see how you could avoid it. Back to the umbrella
Maybe your boat could follow a radial path between the "showers" to the centre ring (where there doesn't seem to be much rain), circumnavigate that ring, and follow another radial path out to the perimeter.
I can't think how to detect the paths that don't have showers. Some sort of "rain" detector stretched out from each of the 4 "sides" of the boat perhaps? But it's not enough to know there is no "rain" - your boat also needs direction. And maybe there would be real rain on the test day to confound your detectors.
Maybe your boat could "know" the layout of the pond - i.e. have a map of the areas without showers? It looks like that can't change (apart from with wind).
Well, there you have it. Just avoid the fountain altogether and follow the outside of the fountain. I thought the roller wheels were a bit crude but effective. I guess I would use a couple of those ultrasonic distance measuring modules, one fore and one aft. Set you boat up so it goes straight when starting out and as soon as it comes close to a wall, use the distance voltage to steer away from the wall. As for the boat, it depends on how many $$ you have to spend. You can either buy a cheap RC boat already built or roll your own. Most use a simple flex shaft running inside a tube for the propulsion. Be sure you start with "hobby grade" components as some of the cheaper boats have everything integrated. You want to be able to get at the individual servos and motors' ESC, which is the term for speed controller. All servos operate off a 1ms pulse width. 1mS is "center, and then you go +- 1/2 ms from center to each direction.
Thanks for all the suggestions! I guess I was overthinking the problem a bit to begin with (I also had just read about detecting water level with a capacitive sensor so I was really eager to try and use the new trick i learned somewhere :p)
Anyway, here is how I plan to proceed:
Use an ultrasonic sensor (probably HC-SR04 since I've used one before and they are cheeeeeap) to detect distance from wall and use a PD feedback loop to steer (I don't think I would need the integral in this situation)
Maybe add roller wheels just in case
Don't bother waterproofing unless I have lots of time to kill and it doesn't substantially complicate my design (I should avoid all the fountains/spray by sticking to the wall)
And here is what I still have to figure out:
Choose a design for a hull (supposed to be built from scratch)
Choose appropriate propulsion for hull design
Design a rudder
Build, write code, test, fix code, test again
The budget is $80 I think but I can use an Arduino pro in the final design instead of my usual Uno to cut back a lot. I figure the bulk of my money should be spent on the most powerful motor I can find that wont sink my boat. I expect the hull to be pretty cheap as well (Foam? PVC? 2-liter coke bottels? All are pretty cheap) .
I think I can mostly figure it out from here though I am very much still open to any suggestions/wisdom/references for choosing an appropriate motor + ESC + power supply (which depends on the chosen size and shape of the hull).
I meant to post this a few days back, but I must have closed the tab without posting it.
I would check with hobby stores for your motor. Many brushless outrunners are actually designed to run underwater, so if you can find one of those water proofing becomes much simpler. You can check a site like hobbyking.com for motors, but be warned that international shipping from them can take a few weeks. Brushless motors also need an electronic speed controller or ESC, but any site that sells the motors should also sell the ESCs, and you can talk to the ESCs via the Servo library. I would also recommend a brushless motor because you tend to get a lot more power for the size and price of the motor.
I have attached a picture of my air boat. I made it out of closed cell insulation foam, so it is unsinkable (though it can certainly be capsized). The motor drives a 5" propeller above the surface of the water. So long as the water is fairly flat I can get the boat up onto hydroplane so that most of the boat is sitting on air. My maximum speed with the hull in the water is about 4 mph while if I can get the boat out of the water I can get up to 15 mph without much issue. I suspect I could do much better when not in hydroplane if I had a more slender hull design, so I am working on a more standard hull for days when it is too windy to hydroplane. Getting the propeller out of the water was almost a necessity for me because the ponds I use have a lot of debris and weeds in the water.
My school's pond also has a poured concrete wall, and it grabs at the foam of my boat, so if you use foam you would want some form of a wall following wheel or sensor. I would be temped to try to use two IR or ultrasonic distance sensors to sense the distance from the wall at the front and back of the boat, but on your budget some wheels may be the better choice.