Saturday, December 19, 2015

If we build it, the world will change.

If we can make economical, safe, ocean going homes that can link together, it will change the world.   People will be able to live, work, and trade while on the ocean.  Groups can get together to cross the ocean or go on any tour.   Groups could join up to work on projects.   Trading while on the ocean becomes easy.    This will change the world.  We must build it.

Thursday, November 19, 2015

Putting Foam in Boat

Our foam got lost in Miami on its way here but eventually showed up.

Anguilla is so warm, and we did this in the late afternoon, that the foam reacted really fast.   Next attempt we will first put foam A and B parts in fridge and do it in the early morning.   First attempt had maybe 1/5 gallon each of A and B.  I think we got more into the boat than was left in the bucket.  We tipped the trailer to try to get the first batch of foam to flow toward the back of the boat.   We may stick a go-pro inside to take some pictures and see what really happened inside the boat.


Anguilla is warm and this makes the foam react faster.  So we put the A and B parts in the fridge overnight and did another test.    It did take much longer to react but it flows so slowly that I still don't think we have much chance of getting the boat really full of foam.   I am afraid that we would get pockets that once water got in would be hard to drain the water from.  


So now I am thinking we go on to make a real Quadmaran before attempting to send a robot across the Atlantic.    So will save the rest of the foam for this.

Will use this boat to test electronics and software but not too far from land.   Will also try to patch holes and get a better cork.

Sunday, September 20, 2015

TowBot Mechanical Testing


We are still waiting for some of the electronic parts for the robot to come in the mail but we have the trolling motors and hull so we did some testing today.   We made a U-shaped frame of wood and painted it red.  Then attached this wood frame to the boat with bungee-cords.  The motors come with mounting clamps so once there was something for them to clamp onto, mounting one on each side to the wood frame was easy.  The battery is inside a water-resistant case with a circuit breaker to minimize risk from a salt-water splash on the battery.

When the phone/computer controls this it will steer by adjusting the power sent to the two motors.   Putting more power to the left side makes the boat turn to the right and more to the right makes it turn left.   This makes for a simple design as there is no rudder to control, it is just turning motors on and off.  So we had to try steering this way with humans.

We started out with Teryn facing backward so his feet could be down inside the boat and Dad dragging in the water behind to be able to act as a rudder.  With this Teryn could control the boat fine and I could turn it with my body if he left throttles alone.   We later decided having the captain looking forward is better.  We also tried Teryn driving without Dad in the water behind and he found it hard to control.   I also tried this and also found it hard.  We could sort of manage at slow speeds.   I suspect with a bit more practice we could get used to it and also that a computer will not have trouble.
If you click on a picture you can get a larger version with more detail.  The above picture is not in chronological order but it seems the best at showing how everything was.  Zoomed in you can see bungee-cords and everything.






















I think we are calling this 12 foot robot "TowBot".  We will use it as a "Tow Boat" and is is also a "Toy Boat" and a "Robot".

The boat took on a lot of water, probably more than 100 lbs in like 1 hour.   It has been in the basement since before I had kids, so more than 14 years.   I will look into just filling the inside with foam.   At the moment it is not in good enough shape to go to an island 10 miles away, let alone Africa.

We chose today for our first test because it was a particularly calm day.  The boat is very stable and has lots of power.   The instructions for the 46 lbs thrust motors say they can push a boat up to 2,000 lbs and our boat is more like 250 without humans and 500 with humans, and we have two motors.

Friday, September 18, 2015

Robot Boat Transportation Device







Robot boat transportation device. On its own the laser hull would go on top of the jeep, but fitted with all the robot and solar stuff it would not work. This used trailer will do the trick. Now to make the robot.  First step will be to mount the motors and the battery and test that much out.  Hope to launch Sunday.  Don't have all the parts for the robot yet but should in the next week or two.





Wednesday, August 26, 2015

Improving Odds of Robot Crossing the Atlantic


After building and learning what we can from our 12 foot solar robot boat it really seems like it would be fund to send it across the Atlantic.  There have been a number of other attempts to send small home made robot boats across the Atlantic but it seems so far all have failed.  So maybe we could be the first!

Our boat is not self righting.  If it turns over that is probably the end of our attempt.  There is some chance that another big wave tips it back over.   With the daggerboard down in the water it is more stable in the upright position so it could end up that way even after tipping a few times.   I am sure many people reading this think we will never make it across the Atlantic without the ability to self right.    I think we still have a good chance.    Let me try to explain my thinking.

First it would really take a breaking wave to flip this boat.  This is something that comes from storms.   If we are going from around 18 degrees North in the non-hurricane season we can mostly avoid storms.   If we can send the robot new waypoints over a sat-link to avoid a storm it may never run into a storm.

The boat is 4+ feet wide and has enough stability for a sail.  Without a sail and the leverage that gives the wind, it would not tip over easily.  Also, the battery or batteries will be very low in the boat.

I think the main danger will be at the crest of a large wave.  The phone has motion sensing so we could write code so that it knows when it is coming to the crest of a wave.   It could then point the boat into the wave and slow down to minimize the risks.  We will generally be headed into the wind so most of the time we will be pointed into the waves.

If one motor breaks we can still use the forward/reverse capability of the other motor to control which way the boat is pointed.   With the wind mostly blowing the boat back toward Anguilla if the boat is pointed the right way the daggerboard should be enough to bring the boat home.  So even if a trolling motor fails we should get the boat back and be able to try again.

We have played with vision software on our phone enough to recognize a yellow tennis ball inside our house.   Recognizing a large patch of brown seaweed floating on a blue ocean is probably something we can do.  So we may be able to avoid large patches of seaweed.   A small clump on the surface probably does not stop us.  The propellers are down in the water a ways as is the daggerboard.

We could put in lots of batteries and try to run the motor all night or we could have the boat turn sideways in the night and just drift slowly.

Some of the things that could still go wrong:
   1) Phone or other critical electronics could die
   2) Both trolling motors could fail
   3) We could run into seaweed in the dark when our vision could not help us
   4)  Camera can get crusted over with salt and the robot go blind

There are websites that report seaweed locations.  We might be able to avoid the seaweed just by going when there is not much seaweed.   In the 20 years I have been in Anguilla most of the seaweed I have seen is in the last year.  I think in another few months we might be back to normal.

We can probably work out something to keep the camera from going blind.

There are still challenges to solve but it seems possible.

Satellite Data Link Ordered


We will test our 12 foot solar robot boat around Anguilla using cellphone Internet but it really would be fun to try to send this boat across the Atlantic to Africa.  For that we will need some sort of satellite data link.  It would be best to test the sat link early on as well.  So I have looked into it more and ordered one.

At a minimum we want the robot to report its location but we would also like to report more than that.  Things like wave height, tipping angles, current speed, battery level, etc.   Also, if the robot can receive data we could send it new waypoints if it was headed for a storm or something.  We could also decide it was having trouble and should just head home so we can improve things and try again.  It seems much better if we can both send and receive data.

There is Iridium Go that gives you a wifi hotspot with real Internet.  This would work great with our Android phone.   The problem is the device is around $1,000 US and the data service is like $150/month.   This is out of our budget range for something we might send off into the ocean and never see again.

There is Spot which uses GlobalStar.   Spot says they have good coverage for data in the Atlantic.   GlobalStar says they don't have voice coverage off of Africa where we might be headed.    But GlobalStar does say their data coverage is good.   Spot can only send messages and not receive.   There are a number of Spot devices easily found on Amazon including ones that work with a cellphone.   So the big drawback is just that it can not receive.

There is Orbcomm which has sats in LEO (low earth orbit) so a small device can reach them.   We can get service contracts for $17/month and only $7/month when we are not really using it.  We can send and receive data.   It is not realtime as the data may sit on a sat for a bit till it is near a groundstation or our boat but that is fine for us.

I have ordered a Quake Q1000 modem to work with Orbcomm.   It has an RS232 port so I also ordered an RS232 to Bluetooth converter.   With this I think we can send and receive data from our Android phone over satellite.   It was hard to find a retail outlet for these and I ended up finding one on Ebay for about $100 US.







Monday, August 24, 2015

Catamaran Model

Our first robot boat was having trouble with wind, so we made a catamaran model that is lower and has less for wind to push on.    Once we realized there was a 12 foot sailboat in the basement, we  started making plans to make that into a robot (see previous 2 posts).  So this model is on the back burner.  






Saturday, August 22, 2015

Circuit Drawings



Our motor controller has outputs for 2 motors.   It gets power from USB.  The phone talks to this over bluetooth.


Here is how we will wire from one port on the controller through the relays to the trolling motor.  This is called an H-Bridge.  When the Forward/green wire is on the battery is connected to the motor red-red and black-black.  If the Back/purple wire is on then they are switched red-black and black-red.  The controller should never have Forward and Back on at the same time.  To be safe we will probably have the software always go to stop between Forward and Back so both are off for a bit during transitions.



This is a drawing of the inside of the trolling motor.   I have some hope that if the speed controller is on max that the input power goes directly to the motor but we may have to open it up and bypass the speed controller.  I am told the red and black going down the shaft are the key wires to the motor.  Not sure what the Yellow and White wires going down the shaft are for.

Since there are 2 motors we have to do the above wiring twice, but even so this is really simple electronics for a rather capable robot boat.

Being able to run motors both forward and backward will give us extra steering power at slow speed and also let us control which way the boat points even if one motor fails.   With the daggerboard if we do our testing up-wind from home the boat could drift home even if one engine fails.  It is upwind all the way to Africa from Anguilla.  There is usually good wind, so drifting should be reasonably fast.

We can do smaller upwind tests to Scrub Island, Flat Island, and St Barts. 

Wednesday, August 19, 2015

Island Boys of Island Harbor

My boy's Grandpa Smitty gave them some land next to the beach at Island Harbor.  Thanks Grandpa!   This is a wonderful development environment for boys and boats.

We are going to make an old Laser sailboat hull into a solar robot boat big enough to ride on or pull Kayaks.  This is 12.5 feet at the waterline.  We ordered 2 trolling motors.  We will use the same phone software we wrote for the small solar robot boat.   We also ordered some solid state relays big enough for the trolling motors.  We already had a bluetooth motor controller that we will use to control the solid state relays.   Our phone software uses internal GPS and compass to decide what commands to send to the motor controller over bluetooth.  Since the phone and motor controller are already working we should be able to make a big robot without too much more work.  More about our plans after the pictures below.







We had too many times where the 4 foot boat would have trouble with the wind.  On the days were there was not wind there was usually clouds, so the solar did not work and the small battery could not last long.  Then there was an amazing amount of seaweed in the Caribbean these last 9 months and the little boat propellers get tangled up easily in even a small amount.  I am hoping the trolling motors have a prop design that does not get tangled so easy.  Being bigger, more powerful, and deeper in the water should mean small bits of seaweed don't bother it.    Making computer vision software to let the robot avoid big patches of seaweed seems possible but avoiding tiny pieces probably would not have been.   Spinning backward or alternating back and forth may be a way to get seaweed off if it does tangle.  With the acceleration sensors and GPS we may be able to tell when we run into a thick bunch of seaweed and backup.    If this seaweed keeps coming we will have plenty to experiment on.

The next size Quadmaran will use 4 of these same trolling motors, so working out how to control them is a step toward that goal.  The computer vision will work for that as well.

We should be able to make the trolling motors go forward and backward using 4 relays for each motor to make an H-bridge but to do that we probably have to open up the trolling motor.   We might start with forward only.

If we can make the motors go forward and back then even when one fails we can still control which way the boat is pointing.  With a daggerboard and control of direction we can get the boat to drift back to home port if it is upwind when there is a failure (there is almost always a strong trade wind around here).   So our testing will be done upwind from home base.  From Island Harbor we can send the boat along the coast and be able to drift back.   This would also work if we are sending it across the Atlantic to Africa as that is an upwind trip from Anguilla.  Fault tolerance is something we want in future designs as well.




Saturday, May 23, 2015

Motor Controller


Up till now we just used a BlueTooth relay controller to turn things on and off, including the motors.  We now have a real motor controller.  This can do forward and backward and variable speeds.   It is from the same company and is controlled similarly from bluetooth.
It can also run off of 12 volts, so we just have to give it power from our 12 volt battery.  So this does not need USB power.

Here is the link for TinySine/MotorAir bluetooth dual motor controller.





The documentation incorrectly says the commands are:

On my board the 'd' and 'e' are the two forward commands for a and b, and then 'f' and 'g' are the two backward commands for a and b.  I have sent them an email on this.  I think this is a brand new product as I could not find anything like it 2 months ago.

Saturday, May 16, 2015

Phone Under Solar Panel


A last run in the ocean did not get posted because the phone overheated and shut down our app.   We can now monitor the phone temperature over the Internet.  I wanted to see if we put the phone under the solar panel if the Compass, GPS, and Internet connection would all work ok.

We I put the Quadmaran-5 on a wheelbarrow so I could go up and down the street.  This picture shows the phone in front of the solar panel for the control tests, it was later put under the solar panel.   As I turned it turned motors on and off the right way just as quick, so the compass seems fine under the solar.  



The Internet status report still came in every 20 seconds, and the phone signal strength seems good.  So Internet is ok with phone under solar.

The GPS track seems fine also:


So it seems ok to put the phone under the solar panel..


Friday, May 8, 2015

Hacking Robosapien Toy into a real robot

We got a toy called Robosapien.  It walks around, movies its arms, and makes noises.   It has a little battery powered thing they a call "the dongle" that plugs into the audio jack on your cell phone and makes IR signals.  Then you run an app and you can control the robot from your phone.

So we recorded the audio signal for each of the commands and then made our own app to generate these.   Our thinking was we could use the cell phone compass, acceleration sensors, gyros, camera, etc.   With vision we could do fun things like go toward a red ball, then hit it, then go find it again, etc.

Today was our first test.  The dongle has two red LEDs that light up when you do commands.   We could test our app and it did play the recorded sounds when we pushed our buttons, but the LEDs on the dongle did not light up and the robot did not move.  

We used Audacity to amplify the audio so it was as loud as it could be without distortion.  Still did not get anything.   Not sure yet why this does not work.

It turns out that there are audio files you can download to control WowWee toys.  This worked for us.  Both from App Inventor and from Java we can get our own software to control the toy!

Next to play with computer vision!


Wednesday, April 29, 2015

Crowdfunding Cast Episode 138 “Quadmaran”


Crowdfunding Cast interviewd me (Vince) for their podcast.   I like how the interview came out.   You can hear it here.

Crocus Bay Apr 29, 2015

We took the boat out today to see if it would finally go longer than 30 minutes autonomously. However, it was 4:30 pm when we got to the beach.   The course would be just going back and forth between two points along the East side of the bay.

 After we carried everything to the beach and sent the boat off we then focused on getting smoothies before the beach restaurant closed at 5 pm, as last time we wanted to get them but missed out. After we started to drink we looked up and the boat was on the rocks to the East. Took the kayak out to rescue it and it seemed ok, so let it go on but followed it. Out from the beach there was a strong breeze from the South. The boat has more trouble turning left and with the wind blowing on the back of the boat it did not make the turn to the North.

 Again at about 30 minutes we had trouble. This time the motors had less and less power, and then the side LEDs did not even go on when the motors were turning. These side LEDs (with red and green filters on them) are on the same relay as the motor on their side. So the only thing that made any sense was that the voltage was too low for them to go on. When we got home we checked the main battery voltage and it was a bit under 10 volts. So this late in the day with some clouds the solar was not charging the battery nearly as fast as we were using the power.

There is no school Friday so we hope to be able to launch then closer to mid day.

EPS Foam can take on water


We took off 2 lbs when we took of the water break.   But the boat did not really seem to ride any higher.  We wondered if the foam might be taking on some water.

The floats are EPS foam.   I had read that it was closed cell but checking further it turns out there is more to it.   It is really a bunch of closed cells stuck together with open air gaps between them.   So it seems we did not really use the ideal foam for the floats.  There have been cracks between the wood and the foam, between the driveshaft and the foam, and so water could get into the foam.

We did a test last night to see how bad this is.  We cut out a big piece of EPS foam, put it in a 5 gallon bucket with a sledge hammer to hold it down and filled it with water.  Then left it overnight (like 10 pm to 7 am).


We put a piece of Saran Wrap over our digital scale so water would not get to it.

After cut and dust off:  53 grams
Put under water and then shake off:  65 grams
After soaking all night:  170 grams.

So it does take on water.  Around 105 grams overnight. 

This is not the ideal foam for crossing the Atlantic.   We are probably ok going to St Marten and back though.


Testing All Night


We changed the Bluetooth code, connected a 12 volt battery charger to our main battery and ran all night.   It was just turning the light on and off (note glow at one corner of solar panel).  But to do this our code has to keep running and the bluetooth has to keep working.    It did, so we hope that next time it goes in the water it will not have trouble at the 30 minute mark.

Monday, April 27, 2015

Crocus Bay Run Apr 27, 2015




 Note you can click the red dots above to get the status info at that time clock.

We took off the water break and programmed the boat to turn sideways to the wind instead when it is supposed to minimize drift, like during the night.   It is really turning 90 degrees to a line going to a point where it started this ParkBoat command.  We tested this today and it kind of worked.  It was doing this at the bottom left between clocks about 5000 and 7000 (300 seconds or 5 minutes).  But the wind drag on the back of the boat is much more than the front so it still has to use a lot of battery to stay sideways. The second boat, the orange one, will not have so much unbalanced drag.

It also did the ParkBoat between the first and second loop near the beach.   This was only for 1 minute or 3 of the 20 second status reports.  These would have been reports where motors were not on the full 200 clock ticks, so seem to be 13433, 13533.  This is out from the beach a ways after one loop.

The hope is that a more balanced boat will not need to use the motors too often to stay sideways to the wind and so be able to get through the night using minimal battery and still not drift too much.  Getting rid of the water break saves about 2 lbs, so it will be nice if we can get this to work reasonably well.

This time the phone was charging from the main battery and we set the developer option for the phone not to sleep as long as it was charging.  So it did not go off after 30 minutes like last time.  However, the bluetooth connection failed after 30 minutes, so instead of making the 90 degree corner like the first pass it drifted up and to the left.  Then we paddled out and towed it in and that is the line in the top right.

The boat has a measure of its own health.   It can tell if it is turning the way it wants to or going forward when it wants to.  As it drifted off course the health measure went negative.  We will probably change the software to reconnect to the bluetooth when its measure of health is negative.

Wednesday, April 15, 2015

Java App Features

There are several things that we really want to do that just can't be done in App Inventor.   We will make a Java app that we can call from App Inventor to do these.   The list of functions is below.  If someone has some function they would like to use from App Inventor,  please let me know!   We want to make our Java app useful when making all kinds of bluetooth toys into robots using an Android phone and App Inventor.

  1. Get battery charge level and temperature
  2. Turn on and off the LED on the phone
  3. Use camera without any operator help (both front and back, and different resolutions, save to file)
  4. OCR (will just specify color range for letters, return text)
  5. Computer vision (where is the Red blob, which way to yellow ball, return X,Y and number of pixels)
  6. Get distance camera autofocus reports

This app we will probably sell on Play Store for $10.  It could be nice for anyone using App Inventor. 

Possible Additions


Some other things that we might want to add to this Java app:
  1. Access/control GoPro camera.  There is a GoProJavaApi.
  2. Measure sonar distance using phone speaker and microphone 

Demo of App Inventor with Vision


We will do a project or two where we use an Android phone, App Inventor, our Java app, and some toy to do something fund with robot vision.
  1.  Lots of bluetooth toys
  2. More bluetooth toys
  3.  Deskpets - like $28 for a cute little toy with tank treds - also shooting tank
  4.    Sphero - ball rolls around based on commands - with vision could be fun LED glow should make it easy for vision to identify ball
  5.    Robot arm
  6.    A toy car
  7.    Toy Truck



Tuesday, April 7, 2015

Computer Vision

We would like to be able to use computer vision to do the following:

  1. Obstacle avoidance - recognize seaweed or other things and not hit them
  2. Autonomously link together with another boat out in the ocean
  3. See when a fish was making the fishing pole bend
  4. Have the boat come right up to a dock so it was easy to retrieve
  5. See where the coast is or where waves are breaking over a reef 
  6. See a which way a bit of yarn was blowing to know wind direction
  7. See if there are whitecaps so can turn into them to not to tip over 
  8. read main battery voltage from sensor LED lights(OCR)

These are enough reasons to figure out how to use computer vision software and we will probably come up with more over time.  The phone has a 2 cameras, so there is no extra cost.  The one aiming backward can look at a fishing pole.  The one forward can see where the boat should go.

The phone also has a light, so computer vision could work even at night.


OpenCV software for Computer Vision

openCV - Open Source Computer Vision - Seems to be the most popular and runs on Android, Windows, and Ubuntu.   Documentation online.   We have started playing with this.  We can compile sample vision apps with Android Studio and load onto our phone.  Modifying them to do what we want does not seem too hard.

     Using a $50 robot arm and OpenCV
       An example of using OpenCV and phone for a robot.
 
 Some videos for learning about CV in general and openCV 
  1. Tutorial: Real-Time Object Tracking Using OpenCV 
  2. Finger drawing - with OpenCV
  3. Brush drawing - with OpenCV
  4. OpenCV Tutorial: Multiple Object Tracking in Real Time (1/3)
  5. Lecture 01 Introduction to Computer Vision
  6. Real Time Object Recognition using SURF and OpenCV EEL6562
    Some books on CV
    Tesseract OCR - open source
    1. Open source and sponsored/hosted at Google.
    2. Sample Java/Android code
    3. More complete example for Android
    4. Also OCR apps on play store - may be able to just call one but...

    Thoughts on Boat Linkup



    With GPS one boat can get near the other boat but for the last 50 feet of the approach we probably want to use the camera.  

    We are planning to use powerful magnets on a flexible thing so that docking has a little margin for error.    But this is only like an inch in each direction.

    If we get near the waves will make for some up and down motion, so this should match up given a bit of time.


    The boats both have compasses.  They could talk to each other with bluetooth, wifi, SMS, or G3 Internet.   So one can point into the wind and tell the other what GPS coordinates it is at and what heading and speed (slow or stop) it will be at.  

    Could have just the CV in Java and the rest of the code still in App Inventor.  There is no need to pass images back and forth so communication is not a problem.

    Ordered Parts for Second Robot Quadmaran-5 / Similitude of boat models

    Ordered parts for second Quadmaran-5


    We raised enough money already from our Indigogo crowdfunding campaign to order the parts to make the second Quadmaran-5 robot so I did so today.  They will come by boat so 2 to 4 weeks probably.

    I can't wait to be able to have two of these motoring around in train formation.

    Models and Similitude


    People should know that boat models show you what a larger boat would do in waves.   All you have to do is shoot a video and then slow it down by the square root of the scaling factor.  Our Quadmaran-5 is 1:16 scale model for a Quadmaran-80.   So if we slow the video of the Quadmaran-5 down by a factor of 4 we can see what a Quadmaran-80 would look like in waves 16 times larger than in the test.    This is called Similitude.   Most people use expensive wave tanks to test out engineering models of boats.   We are using real waves.  

    Our approach is much cheaper.  However, we don't get to turn a dial on a machine to pick the wave heights we want.   In Anguilla getting an interesting size wave is not too much trouble because we have many different harbors with different size waves on different days.   The biggest trouble with our approach is that the winds are usually far too strong for the scale we are at.   Inside a building with a wave tank they don't have any wind issue.

    Sunday, April 5, 2015

    Ease of App Inventor Coding






    Using App Inventor 2 to write apps for a phone is so easy an 11 year old or 13 year old can do it (see video above).   You do not need to install and setup some big development environment.   It is mostly done on a web page.  The steps are:
    1. On your phone or tablet go to Play Store and download "App Inventor 2 Companion".  This app will download and install your app when you point the camera at a 2D bar code later.
    2. On your desktop computer go to http://ai2.appinventor.mit.edu   
    3. You first make a user interface by grabbing things like buttons and dropping them on the image of a phone.
    4. Then you click on "blocks" (top right) and you write the code.  For each user interface thing there are things you can get, like if the Button is called "Forward" you can get a "Forward.click" that will run when the button is clicked.  Then you put whatever code you want in there.   To write your code you drag and drop things that then snap together.    So you click on "control" and drag an "if then else", then click on procedures and get a "Call Forward", etc.   Unlike most computer languages, it really helps prevent you from making lots of kinds of mistakes.  It is really fun to use.
    5. When you want to test the code you click "Build" near the top.  Then run app inventor companion on your phone/tablet and click "scan QR code" and point it at the 2D barcode that will show up on the screen.  It will then download the code and ask if you want to install it, then open it.   It will also be a regular app on your phone that you can run later.






    In the image above you can see the block for HornOff.Click which is what is called when you touch the "Horn Off" button in the Manual Mode in our app.  This then calls the function "HornOff" which sends a "q" by bluetooth to the relay controller.  This is the code for turning off the relay that the horn is using.

    The Forward code sends "ef" to the relay controller, which turns on the two relays for the two motors.



    Above is the code that does the Morse code.  First it divides down the regular clock, only doing something every MorseCodeClockDivider ticks of the regular clock.  Then it reads out from a string if it is supposed to be on or off at this time.  Then it turns the horn or light on or off.






     Above is the code that decides if the boat should turn left, turn right, go forward, or stop.  Do a "right click" and then "view image" to make it a bit larger so you can read everything.  There are 3 main types of boat movement this has to handle.
    1. GoTo - where the boat is trying to get to some GPS coordinate. 
    2. ParkBoat - where the boat wants to stay near some GPS coordinate
    3. AimBoat - where the boat is trying to point at some location (for horn or light to reach someone)
    This is the most complicated part of the code and it did require some walking around with the phone to test and debug before it all worked right.

    I think that if one person on your project has computer programming experience then using App Inventor will be fine for everyone.   It was my 2 older boys first experience programming computers and I think it is a great way to start.   If you use our code you will be able to do all kinds of things without changing any code.  We will document our "Robot command language" in a future post.

    Early on any of our computers were fine for App Inventor.   As our code got larger it got slower to move around the screen on our older computers.  Eventually it got too painful on most of our computers.   Now we only work on our main app using our fastest computer.  This is the lowest end Dell gaming computer (Alienware) as of January 2015.  On this computer editing is still very fast.  This computer also has a 32 inch screen, which really helps for this graphical programming method.   These huge screens are down to like $150.  They are so nice I think all computers should have them.