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
This requires a solid design to set a precedent for other CAN classes or devices
Using the CANController, OrionController and OrionModel, update the current state of charge of the battery pack based on the message received from the BMS
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.
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.
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.
will need to having polling function and talk with unitek & orion
This transition will occur once the precharge done signal is received from Unitek
Been getting various errors with it
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
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
See if one of these work:
In case we need to implement them manually:
So yeah this needs to be finished but I don't know if it'll be done in time for the benchtop.
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.
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
Maybe something like:
This will be extremely helpful for performing automatic builds of our project against unit tests.
Some links for later reference:
Find the correct structure of unit testing that will work for EVOS in preparation for our sprints
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.
Involves working on the PedalController to use the GasPedal Model to grab the analog value and store it in the model
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
Hardware exists to make it possible to drive the car in reverse.
This issue is low priority - Reverse is not required.
Currently they go {registerName}Reg_0xFF when they should go 0xFF_{registerName}
Add some basic document titled PULL_REQUEST_TEMPLATE.md
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.
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
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
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.
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.
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.
Teensy must read value from a GPIO pin and react, ex toggling an LED on another GPIO pin.
In order to transition from standby to precharge stages, there has to be a press of the precharge button on the Dash.
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.
@JoeMaier add to this
@ShawnPierpont add to this
as discussed move the function analogReadResolution(13);
further up in the main function
This will allow for more events and some basic scheduling techniques
With the circuit schematic finally nearing completion, this constants file will need to be updated
Hello Smitty
We need to request and receive the battery level from Orion in order to store the 90% level in unitek as described in #29
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.
Very good progress happening, need to connect rpi with travis CI with the right configurations in .travis.yml
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.
Model classes need local data storage for the hardware associated with them
bool
vs uint16_t
vs float
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
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)
In order to operate the vehicle in a basic sense, we need to go through all the stages at least once
Bootup
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.