I share my experience building robotic boats. I start using a Windows 7 8" tablet onboard Birdy II. Because of the weight and size of the tablet, the model boat has to be sufficiently large. I could plug in a USB compass, USB GPS, and a USB Servo Controller. All was ok until I tried to receive signals from a Radio Control receiver. Because RC receivers communicate using PWM, I discovered the Arduino Uno.
It wasn't long before I upgraded to the Arduino Mega, which became my workhorse for a while. I soon discovered that the Mega could run all the boat logic and thus a tablet was not required. This meant, rather than build a model yacht, I could convert existing models.
As I now getting smaller model boats, I discovered the Teensy 3.6. More powerful than the Arduino Mega and the GUI (Graphical User Interface) was the same. I switched work horse to the Teensy.
Some code is available here https://github.com/pwesson/roboticboat
The Arduino boards communicate using different protocols to different components like a compass, GPS and LCD. Those that I have documented include PWM, Serial, I2C and SPI.