Difference between revisions of "Sail-by-wire"
(→conceptual layer) |
(→ADC) |
||
(13 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
* https://pypilot.org/schematics/ | * https://pypilot.org/schematics/ | ||
* https://github.com/pypilot/pypilot/tree/master/arduino/motor | * https://github.com/pypilot/pypilot/tree/master/arduino/motor | ||
+ | * https://hackaday.io/project/168592-opencpn-chart-plotter-w-autopilot-and-waypoints | ||
=== hardware === | === hardware === | ||
* ESP32 fully featured Microcontroller (< EUR 10,-) | * ESP32 fully featured Microcontroller (< EUR 10,-) | ||
Line 62: | Line 63: | ||
=== protocol layer === | === protocol layer === | ||
− | [...] = | + | [...] = proposed feature |
==== signalK ==== | ==== signalK ==== | ||
* rudder | * rudder | ||
Line 69: | Line 70: | ||
** feedback | ** feedback | ||
*** /vessels/<RegExp>/steering/rudderAngle | *** /vessels/<RegExp>/steering/rudderAngle | ||
− | *** /vessels/<RegExp>/steering/ | + | * 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] | **** [overTemp] | ||
**** [overCurrent] | **** [overCurrent] | ||
**** [underVoltage] | **** [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 | ||
+ | *** ... | ||
* gear | * gear | ||
** control | ** control | ||
Line 124: | Line 137: | ||
** pwm_style_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 == | == discussion == | ||
Line 129: | Line 180: | ||
* https://signalk-dev.slack.com/archives/C02EU366Y/p1586759016008500 (english) | * https://signalk-dev.slack.com/archives/C02EU366Y/p1586759016008500 (english) | ||
* https://www.facebook.com/groups/1666364153609573/permalink/2634203136825665/ (english) | * https://www.facebook.com/groups/1666364153609573/permalink/2634203136825665/ (english) | ||
− | + | * http://forum.openmarine.net/showthread.php?tid=2508 (english) | |
== see also == | == see also == | ||
Line 144: | Line 195: | ||
* https://esp32.com/viewtopic.php?f=2&t=4354 | * https://esp32.com/viewtopic.php?f=2&t=4354 | ||
* https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/adc.html | * https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/adc.html | ||
+ | * https://bitbucket.org/Blackneron/esp32_adc/src/master/ | ||
+ | |||
+ | === protocol === | ||
+ | * http://forum.openmarine.net/showthread.php?tid=2265&pid=12945 | ||
+ | * https://signalk.org/specification/1.5.0/doc/request_response.html | ||
+ | * http://signalk.org/specification/1.5.0/doc/put.html | ||
+ | * https://signalk.org/specification/1.5.0/doc/vesselsBranch.html | ||
+ | * https://signalk.org/2020/12/18/sensesp-1.html | ||
[[category:Projekte]] | [[category:Projekte]] |
Latest revision as of 09:28, 3 January 2021
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
- https://bitbucket.org/Blackneron/esp32_adc/src/master/