Difference between revisions of "Sail-by-wire"
(→protocol layer) |
(→protocol layer) |
||
Line 77: | Line 77: | ||
** feedback | ** feedback | ||
*** /vessels/<RegExp>/steering/autopilot/state | *** /vessels/<RegExp>/steering/autopilot/state | ||
+ | **** [overTemp] | ||
+ | **** [overCurrent] | ||
+ | **** [underVoltage] | ||
+ | **** .... | ||
*** /vessels/<RegExp>/steering/autopilot/mode | *** /vessels/<RegExp>/steering/autopilot/mode | ||
*** /vessels/<RegExp>/steering/autopilot/deadZone | *** /vessels/<RegExp>/steering/autopilot/deadZone | ||
Line 83: | Line 87: | ||
*** /vessels/<RegExp>/steering/autopilot/maxDriveCurrent | *** /vessels/<RegExp>/steering/autopilot/maxDriveCurrent | ||
*** ... | *** ... | ||
− | |||
− | |||
− | |||
− | |||
− | |||
* gear | * gear | ||
** control | ** control |
Revision as of 11:30, 31 December 2020
Contents
aim
retrofit propulsion (engine, gearbox) and steering (rudder) with controller based on Sean's work
- https://pypilot.org/schematics/
- https://github.com/pypilot/pypilot/tree/master/arduino/motor
- https://hackaday.io/project/168592-opencpn-chart-plotter-w-autopilot-and-waypoints
hardware
- ESP32 fully featured Microcontroller (< EUR 10,-)
- IBT-2 BTS7960 based Double-H-Bridge (< EUR 10,-)
- sensors:
- angular:
- 10k Ohm linear pot (as suggested by Sean)
- off-the-shelf rudder angle sensor 0-190 Ohm
- rotary encoder
- position switches:
- end stop
- forward/ neutral / reverse
- current sense:
- BTS7960 feature
- over temprature:
- BTS7960 feature
- voltage sense
- angular:
- power-drive:
- windshield wiper motor
- hydraulic pump
- linear drive
- ...
commercial products
- ZF Pod Drives
- DeviceNet ?
- Volvo† IPS und Volvo Aquamatic
- J1939 ?
- Teleflex Optimus 360 Systems
- DeviceNet ?
- Yanmar VC10 und JC10 (Joystick) Control Systeme)
- DebiceNet ?
toDo
- explore communication protocols
communication
channels
remote control via
- autopilot
- pyPilot
- Raymarine EV-2 https://www.raymarine.de/view/index-id=7686.html
- Garmin Steer-by-wire
- remote controller
- Android, iOS, Windows, Linux, ...
- buttons, joysticks, levers, ...
physical layer
- on-device via web-server
- wifi
- ethernet
- can-bus
- nmea2000
- ...
- serial
- Sean's pyPilot
- bluetooth
- infrared
- radio 10kHz
protocol layer
[...] = proposed feature
signalK
- rudder
- control
- /vessels/<RegExp>/steering/rudderAngleTarget
- feedback
- /vessels/<RegExp>/steering/rudderAngle
- control
- autopilot
- control
- /vessels/<RegExp>/steering/autopilot/target/windAngleApparent
- /vessels/<RegExp>/steering/autopilot/target/headingTrue
- /vessels/<RegExp>/steering/autopilot/target/headingMagnetic
- feedback
- /vessels/<RegExp>/steering/autopilot/state
- [overTemp]
- [overCurrent]
- [underVoltage]
- ....
- /vessels/<RegExp>/steering/autopilot/mode
- /vessels/<RegExp>/steering/autopilot/deadZone
- /vessels/<RegExp>/steering/autopilot/backlash
- /vessels/<RegExp>/steering/autopilot/gain
- /vessels/<RegExp>/steering/autopilot/maxDriveCurrent
- ...
- /vessels/<RegExp>/steering/autopilot/state
- control
- gear
- control
- /vessels/<RegExp>/propulsion/<RegExp>/transmission/gear[Target]
- feedback
- /vessels/<RegExp>/propulsion/<RegExp>/transmission/gear
- /vessels/<RegExp>/propulsion/<RegExp>/transmission/[controllerState]
- ...
- control
- engine
- control
- /vessels/<RegExp>/propulsion/<RegExp>/revolutions[Target]
- /vessels/<RegExp>/propulsion/<RegExp>/engineLoad[Target]
- feedback
- /vessels/<RegExp>/propulsion/<RegExp>/revolutions
- /vessels/<RegExp>/propulsion/<RegExp>/engineLoad
- /vessels/<RegExp>/propulsion/<RegExp>/[controllerState]
- ...
- control
nmea2000
- rudder
- control
- pgn 127237 Heading/Track Control
- feedback
- pgn 127245 Rudder
- control
- gear
- control
- NONE
- feedback
- pgn 127493 Transmission Parameters, Dynamic
- control
- engine
- control
- NONE
- feedback
- pgn 127488 Engine Parameters, Rapid Update
- pgn 127489 Engine Parameters, Dynamic
- control
Sean's serial
(just a quick shot, details pending ...)
- rudder
- rudder_angle_sense
- port_endstop_pin
- starboard_endstop_pin
- controller_temperature
- motor_temperature
- voltage_sense
- shunt_sense_pin
- low_current_pin
- clutch_pin
- led_pin
- pwm_style_pin
- ...
roadmap
angular measurement
- 3-wire 10k Ohm linear pot / 2-wire 190 Ohm stock rudder-angle-sensor
schematics
- ...
code
- ...
position switch readout
- endstops / forward / neutral / reverse
schematics
- ...
code
- ...
battery voltage measurement
- 12V/ 24V
schematics
- ...
code
- ...
BTS7960 fault reading
- ...
schematics
- ...
code
- ...
IBT-2 PWM control
- ...
schematics
- ...
code
- ...
ESP32 web-interface
- gauges
- control-buttons
code
- ...
discussion
- https://www.segeln-forum.de/board194-boot-technik/board35-elektrik-und-elektronik/board195-open-boat-projects-org/75477-sail-by-wire-esp32-und-ibt-2/ (german)
- https://signalk-dev.slack.com/archives/C02EU366Y/p1586759016008500 (english)
- https://www.facebook.com/groups/1666364153609573/permalink/2634203136825665/ (english)
- http://forum.openmarine.net/showthread.php?tid=2508 (english)
see also
IBT-2
- https://github.com/custom-build-robots/Motor-Driver-BTS7960B-H-Bridge (Raspi)
- https://electronics.stackexchange.com/questions/458722/how-to-get-right-voltage-output-with-bts7960b-h-bridge (esp32)
- http://wiki.ardumower.de/index.php?title=Ardumower_Gasoline (Arduino)
- http://www.hessmer.org/blog/2013/12/28/ibt-2-h-bridge-with-arduino/ (Arduino)
- https://forum.allaboutcircuits.com/threads/how-to-connect-h-bridge-for-its-protection-features.141724/ (current sense)
- https://www.mouser.de/ProductDetail/Infineon-Technologies/BTS7960B?qs=wK%252BoHS4yu57Y%2Fa%252Bbuozvew%3D%3D
ADC
- https://www.arduinoforum.de/arduino-Thread-Messen-der-eigenen-Betriebsspannung-mit-dem-Arduino
- https://esp32.com/viewtopic.php?f=2&t=4354
- https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/adc.html