Difference between revisions of "Sail-by-wire"

From wiki.bastelbude.grade.de
Jump to: navigation, search
(signalK)
(ADC)
 
(3 intermediate revisions by the same user not shown)
Line 72: Line 72:
 
* autopilot
 
* autopilot
 
** control
 
** control
/vessels/<RegExp>/steering/autopilot/target/windAngleApparent
+
*** /vessels/<RegExp>/steering/autopilot/target/windAngleApparent
/vessels/<RegExp>/steering/autopilot/target/headingTrue
+
*** /vessels/<RegExp>/steering/autopilot/target/headingTrue
/vessels/<RegExp>/steering/autopilot/target/headingMagnetic
+
*** /vessels/<RegExp>/steering/autopilot/target/headingMagnetic
 
** 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 82: Line 86:
 
*** /vessels/<RegExp>/steering/autopilot/gain
 
*** /vessels/<RegExp>/steering/autopilot/gain
 
*** /vessels/<RegExp>/steering/autopilot/maxDriveCurrent
 
*** /vessels/<RegExp>/steering/autopilot/maxDriveCurrent
*** /vessels/<RegExp>/steering/[controllerState]
+
*** ...
**** [overTemp]
 
**** [overCurrent]
 
**** [underVoltage]
 
**** ....
 
 
* gear
 
* gear
 
** control
 
** control
Line 195: 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 ===
 
=== protocol ===
Line 201: Line 202:
 
* http://signalk.org/specification/1.5.0/doc/put.html
 
* http://signalk.org/specification/1.5.0/doc/put.html
 
* https://signalk.org/specification/1.5.0/doc/vesselsBranch.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

aim

retrofit propulsion (engine, gearbox) and steering (rudder) with controller based on Sean's work

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
  • 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

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
  • 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
      • ...
  • gear
    • control
      • /vessels/<RegExp>/propulsion/<RegExp>/transmission/gear[Target]
    • feedback
      • /vessels/<RegExp>/propulsion/<RegExp>/transmission/gear
      • /vessels/<RegExp>/propulsion/<RegExp>/transmission/[controllerState]
        • ...
  • 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]
        • ...

nmea2000

  • rudder
    • control
      • pgn 127237 Heading/Track Control
    • feedback
      • pgn 127245 Rudder
  • gear
    • control
      • NONE
    • feedback
      • pgn 127493 Transmission Parameters, Dynamic
  • engine
    • control
      • NONE
    • feedback
      • pgn 127488 Engine Parameters, Rapid Update
      • pgn 127489 Engine Parameters, Dynamic

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

see also

IBT-2

ADC

protocol