Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Buttons to change state

    • Drive, Reverse, and Neutral

    • Regen Braking button

    • Hazard Button

  • three 7-segment displays with the below quantities

    • Speedometer (speed in km/h)

      • When we BPS fault it will display the error code instead

    • Current Readings (Amps)

    • Aux Battery Voltage (Volts)

  • Indicator LEDs

    • One for each of the above buttons (D/N/R/Haz/Reg)

    • Left turn signal

    • Right Turn Signal

    • Cruise control enabled indicator

    • BPS Fault Light

    • AFE Loss of Communications

  • Buzzer to highlight events

    • Button Clicks

    • BPS fault

  • Pedal Position

    • Maps ADC reading from 0-1 for the Motor Controller

    • Stores pedal calibration data in flash non-volatile memory

  • Steering Stalk

    • Toggles Left/Right lights

    • Toggles Cruise Control

...

  • Power Button, hazard, regen: send notifications to main task

  • R, N, D → Send notifications to Drive FSM

Module: update_dashboard:

Static variables:

  • cruise_control_state

  • target_velocity

  • regen_braking_state

  • power_state_to_transmit

...

  • dashboard_init()

  • update_indicators()

    • Gets notification value from button presses, updates indicator lights and output can_messages

      • Hazard enabled:

        • when pressed, toggle static hazard state

        • update indicator and cc_power_control.hazard_enabled message based on stored value

      • Regen Brake:

        • when pressed, toggle static regen brake state

        • update indicator and drive_output.regen_brake_enabled message based on stored value

      • Lights left/right

        • update left/right indicator based on steering stalk position

      • Cruise Control Enabled:

        • update static cc state + indicator based on steering stalk ISR (Button click)

        • update drive_output based on cc_state + target_velocity

  • update_displays() [SEPERATE TASK]

    • Reads values from CAN messages, uses values for 7-seg:

      • Calculated speed using RPM to MPH → speed display (Top)

      • Current reading in Amps → current display (Middle)

      • Aux Battery Voltage → aux batt display (Bottom)

  • cruise_control_monitor()

    • Checks for cruise control inputs from steering stalk

    • Updates Cruise control target speed

Module: pedal

Module: steering

Drive FSM

The Drive FSM handles the control of drive state of the car. It receives the drive buttons (Neutral (N), Drive (D), Reverse(R)) and runs the preparations and checks needed to change the drive state of the car, and communicates this value with the motor controllers.

...