smit-happens / ycp_evos Goto Github PK
View Code? Open in Web Editor NEWDevelopment for the 2018 YCP Formula Electric Vehicle
License: MIT License
Development for the 2018 YCP Formula Electric Vehicle
License: MIT License
@ShawnPierpont add to this
We need to transition from Driving to Shutdown after running the car.
This stage needs to get executed whenever really according to the flowchart, but that can be done at a later date.
With the circuit schematic finally nearing completion, this constants file will need to be updated
@JoeMaier add to this
as discussed move the function analogReadResolution(13);
further up in the main function
Very good progress happening, need to connect rpi with travis CI with the right configurations in .travis.yml
Implement basic SD card logging for the Teensy.
SD logs must be in CSV format, and include time stamps relative to when the GLV system is powered up.
Filenames must be dynamic and include the absolute start time of the GLV system.
will need to having polling function and talk with unitek & orion
in order to transition from Energized
stage to Driving
Stage we need to have confirmation that the Unitek is done precharging, and the user has pressed the precharge button on the Dash.
This will allow for more events and some basic scheduling techniques
In the most basic sense, the CanController needs to have sendUnitekWrite(...) working.
CAN RX is still important but we need to have TX working in order to run the motor at all.
Combine the pedal classes into one model due to @PatHock findings in the hybrid rules manual where the gaspedal only needs one potentiometer
The 2018 hybrid rules manual
PedalController.cpp/hpp
BrakePedal.cpp/hpp
GasPedal.cpp/hpp
Hardware exists to make it possible to drive the car in reverse.
This issue is low priority - Reverse is not required.
Teensy must read value from a GPIO pin and react, ex toggling an LED on another GPIO pin.
This will require some sort of implementation involving either Multiple Stages in one super loop or multiple super loops with the switch statement staging currently sketched out
The Teensy's Kinetis microprocessor has built-in hardware to reset the Teensy during undervoltage conditions. These conditions prevent the Teensy in the Main Brain circuit from powering up reliably - we know that this is an issue.
Also, the Low Voltage Detect functionality can trigger the Teensy to enter the shutdown stage in the event that the Teensy loses power. This will become more useful later when implementing SD card Logging.
We need to request and receive the battery level from Orion in order to store the 90% level in unitek as described in #29
use the SdioEx library, will handle all the I/O operations and none of the logging (Logging will be a controller class due to the logic needed for formatting and labelling)
With the crazy amount of issues we'll be making, a common template to reference will help us make more standardized issues for ease of reviewing.
Make it titled ISSUE_TEMPLATE.md
We need a method to ask the Unitek to send back register data, this is somewhat implemented in
void CanController::sendUnitekRead(uint8_t regId, uint8_t pollTime = 0) {...}
There needs to be some support for using the CAN model to send the data out on the wire
This will be extremely helpful for performing automatic builds of our project against unit tests.
Some links for later reference:
Using the CANController, OrionController and OrionModel, update the current state of charge of the battery pack based on the message received from the BMS
From 2018 FSAE Formula Hybrid Rules:
EV 9.2.1: The car must make a characteristic sound, for a minimum of 1 second and a maximum of 3
seconds, when it is ready to drive.
The code below shows how it is currently:
//Timer event flags
const uint32_t EF_GLCD = 0b1; //Glcd EF mask
const uint32_t EF_PEDAL = 0b10; //Pedal EF mask
const uint32_t EF_SDCARD = 0b100; //SdCard EF mask
An example implementation of this change is shown below:
//Timer event flags
const uint32_t EF_T_GLCD = 0b1; //Glcd EF mask
const uint32_t EF_T_PEDAL = 0b10; //Pedal EF mask
const uint32_t EF_T_SDCARD = 0b100; //SdCard EF mask
Add code to the OrionController and the OrionModel to read store the values of the battery voltages received from the BMS into the model using the controller. CANController will most likely need to be added to for functionality for communicating with the BMS.
Consider moving the hardware initialization such as the analog bit resolution into another hardware initialization file. This will only be necessary if the amount of hardware initialization grows to a point where it is clogging up main.
Create software to control MC logic board inputs and CAN messages to MC.
End goal: eliminate/lessen the need for laptops to be used for MC testing.
Hello Smitty
This requires a solid design to set a precedent for other CAN classes or devices
Add some basic document titled PULL_REQUEST_TEMPLATE.md
Currently they go {registerName}Reg_0xFF when they should go 0xFF_{registerName}
This transition will occur once the precharge done signal is received from Unitek
Been getting various errors with it
See if one of these work:
In case we need to implement them manually:
In order to transition from standby to precharge stages, there has to be a press of the precharge button on the Dash.
So yeah this needs to be finished but I don't know if it'll be done in time for the benchtop.
In order to operate the vehicle in a basic sense, we need to go through all the stages at least once
Bootup
Involves working on the UnitekController class to grab the pedal percentage from the PedalController (using the gasPedal model) and passing that percentage to the canController (along with the register to set in Unitek Model) to be sent off the wire and store the value locally in the Unitek model.
Find the correct structure of unit testing that will work for EVOS in preparation for our sprints
Due to the lack of SMD pads on the current Teensy, the port file needs to be modified for the time being when we have to get buttons working for the basic operation of the car until new SMD headers come in.
FIXME:
comment on the same line so they show up when viewing the filefix port file
Implement very basic traction/launch control.
A "launch" is a limit on rear wheel RPMs to minimize slipping. This could be a crude hard-limit at first, but it would be better to have sensors on the front wheels to limit the rear wheel RPMs.
This will be useful for the autonomous car project. Not required for our end-of-semester goals.
Maybe something like:
Model classes need local data storage for the hardware associated with them
bool
vs uint16_t
vs float
There's a lot of registers in Unitek.hpp
that are missing a get/set for them, one of them being the speed value register
Involves working on the PedalController to use the GasPedal Model to grab the analog value and store it in the model
This can be achieved by reading the RCM's SRS0[LVD] bit, which is changed when the Teensy is reset by the LVD or POR.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.