Compare commits

...

7 Commits
Race ... main

Author SHA1 Message Date
10de77fbb0 add tests 2023-09-13 15:58:56 +02:00
a04b19b081 fix battery voltage 2023-09-13 13:14:58 +02:00
df63ece978 add full sequence 2023-09-13 13:01:21 +02:00
3777d8bd12 update for debug 2023-09-13 12:58:54 +02:00
c2c1104297 headlights always on because no screen 2023-09-13 12:58:46 +02:00
73b5594786 add boost and check battery 2023-09-13 12:58:27 +02:00
09fb1d10da move uml render 2023-09-13 12:57:23 +02:00
17 changed files with 88 additions and 133 deletions

View File

@ -228,7 +228,8 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, bool rtr, uint32_t data){
// TODO display say ALIVE
eKart.powerMode = incomeData.separate.byte0;
if (eKart.powerMode == 0) {
CM_HEADLIGHTS(&ALWAYSFALSE);
// CM_HEADLIGHTS(&ALWAYSFALSE);
CM_HEADLIGHTS(&ALWAYSTRUE);
} else {
CM_HEADLIGHTS(&ALWAYSTRUE);
}
@ -305,6 +306,10 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, bool rtr, uint32_t data){
* SUPPLY *
**********/
case 6:
if(idMsg == 0x1) {
eKart.batteryVoltage = incomeData.full;
}
if(idMsg == 0x4) {
DRIVE_startBehaviour(drive());
STEERING_startBehaviour(steering());

View File

@ -87,20 +87,8 @@ typedef struct {
bool button;
uint8_t speed; // 100m/h
bool brake;
uint8_t powerMode; // 0: eco - 1: normal - 2: race
/*
* 0 - ECO MODE
* Eco mod limit to 1/2 of the maximal current.
* Position is 1/2 of the maximal angle
*
* 1 - NORMAL MODE
* Standard ramp for normal mode
* Position is limited to 3/4 of the maximal
*
* 2 - RACE MODE
*
*
*/
uint8_t powerMode;
uint16_t batteryVoltage;
} KART_VAR_TYPE;
KART_VAR_TYPE eKart;

View File

@ -1,5 +1,5 @@
/**
* @author Rémi Heredero
* @author R<EFBFBD>mi Heredero
* @version. 0.0.0
* @date August 2023
* @file kartculator.c
@ -242,6 +242,11 @@ void calcTorque(uint8_t joy_pos) {
calcTorque *= 1150;
calcTorque /= 1000;
}
if(eKart.batteryVoltage <= 18750) {
calcTorque = 0;
}
eKart.torque = (int16_t) calcTorque;
}

View File

@ -124,8 +124,8 @@ void ECAN_Initialize(void)
// filter 1 is message for controller
convertCANid2Reg(0x010, dSTANDARD_CAN_MSG_ID_2_0B, &RXF1EIDH, &RXF1EIDL, &RXF1SIDH, &RXF1SIDL);
// filter 2 is message for recipient n°7, not yet defined
convertCANid2Reg(0x070, dSTANDARD_CAN_MSG_ID_2_0B, &RXF2EIDH, &RXF2EIDL, &RXF2SIDH, &RXF2SIDL);
// filter 2 is message for display (yes i want the message from the display)
convertCANid2Reg(0x060, dSTANDARD_CAN_MSG_ID_2_0B, &RXF2EIDH, &RXF2EIDL, &RXF2SIDH, &RXF2SIDL);
/*
* ENABLE FILTERS

View File

@ -454,7 +454,7 @@ endif
# Enable dependency checking
.dep.inc: .depcheck-impl
DEPFILES=$(wildcard ${POSSIBLE_DEPFILES})
DEPFILES=$(shell mplabwildcard ${POSSIBLE_DEPFILES})
ifneq (${DEPFILES},)
include ${DEPFILES}
endif

View File

@ -15,11 +15,11 @@
# $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...
#
SHELL=cmd.exe
PATH_TO_IDE_BIN=C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/
PATH_TO_IDE_BIN=C:/Program Files/Microchip/MPLABX/v6.05/mplab_platform/platform/../mplab_ide/modules/../../bin/
# Adding MPLAB X bin directory to path.
PATH:=C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
PATH:=C:/Program Files/Microchip/MPLABX/v6.05/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
# Path to java used to run MPLAB X when this makefile was created
MP_JAVA_PATH="C:\Program Files\Microchip\MPLABX\v6.15\sys\java\zulu8.64.0.19-ca-fx-jre8.0.345-win_x64/bin/"
MP_JAVA_PATH="C:\Program Files\Microchip\MPLABX\v6.05\sys\java\zulu8.64.0.19-ca-fx-jre8.0.345-win_x64/bin/"
OS_CURRENT="$(shell uname -s)"
MP_CC="C:\Program Files\Microchip\xc8\v2.41\bin\xc8-cc.exe"
# MP_CPPC is not defined
@ -27,11 +27,11 @@ MP_CC="C:\Program Files\Microchip\xc8\v2.41\bin\xc8-cc.exe"
MP_AS="C:\Program Files\Microchip\xc8\v2.41\bin\xc8-cc.exe"
MP_LD="C:\Program Files\Microchip\xc8\v2.41\bin\xc8-cc.exe"
MP_AR="C:\Program Files\Microchip\xc8\v2.41\bin\xc8-ar.exe"
DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files/Microchip/MPLABX/v6.05/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
MP_CC_DIR="C:\Program Files\Microchip\xc8\v2.41\bin"
# MP_CPPC_DIR is not defined
# MP_BC_DIR is not defined
MP_AS_DIR="C:\Program Files\Microchip\xc8\v2.41\bin"
MP_LD_DIR="C:\Program Files\Microchip\xc8\v2.41\bin"
MP_AR_DIR="C:\Program Files\Microchip\xc8\v2.41\bin"
DFP_DIR=C:/Program Files/Microchip/MPLABX/v6.15/packs/Microchip/PIC18F-K_DFP/1.11.281
DFP_DIR=C:/Users/remi/.mchp_packs/Microchip/PIC18F-K_DFP/1.11.281

25
UML/full_sequence.puml Normal file
View File

@ -0,0 +1,25 @@
@startuml
'https://plantuml.com/sequence-diagram
actor User as usr
participant can_message as can
control kartculator as kc
queue XF as xf
entity Drive as drive
entity Steering as steering
usr -\ xf : set message "move"
xf -> can : new value on joystick
== If X axis change value ==
can -> kc : calculate new position
kc -> can : build message
can -> steering : set new position
== If Y axis change value ==
can -> kc : calculate new torque
kc -> can : build message
can -> xf : set message "torque"
xf -> drive : set new torque
@enduml

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

BIN
UML/pdf-png/cas de test.pdf Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

BIN
UML/pdf-png/steering.pdf Normal file

Binary file not shown.

View File

@ -1,74 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="15.0.0">
<zoom_level>15</zoom_level>
<element>
<id>UMLSpecialState</id>
<coordinates>
<x>315</x>
<y>270</y>
<w>30</w>
<h>30</h>
</coordinates>
<panel_attributes>type=initial</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>315</x>
<y>285</y>
<w>120</w>
<h>105</h>
</coordinates>
<panel_attributes>lt=-&gt;
evWDinit</panel_attributes>
<additional_attributes>10.0;10.0;10.0;50.0</additional_attributes>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>255</x>
<y>360</y>
<w>150</w>
<h>60</h>
</coordinates>
<panel_attributes>STWD_ALIVE</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>180</x>
<y>375</y>
<w>270</w>
<h>135</h>
</coordinates>
<panel_attributes>lt=-&gt;
m1=evWDpoll</panel_attributes>
<additional_attributes>100.0;30.0;100.0;70.0;10.0;70.0;10.0;10.0;50.0;10.0</additional_attributes>
</element>
<element>
<id>UMLNote</id>
<coordinates>
<x>480</x>
<y>360</y>
<w>150</w>
<h>60</h>
</coordinates>
<panel_attributes>send alive
by CAN</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLNote</id>
<coordinates>
<x>375</x>
<y>225</y>
<w>150</w>
<h>60</h>
</coordinates>
<panel_attributes>read time on
EPROM</panel_attributes>
<additional_attributes/>
</element>
</diagram>

View File

@ -326,8 +326,8 @@
<CAN_Signal_Watch>
<Message>
<Id>529</Id>
<Signal>posX</Signal>
<Signal>posY</Signal>
<Signal>posX</Signal>
</Message>
<Message>
<Id>1040</Id>
@ -345,8 +345,14 @@
<Id>337</Id>
<Signal>SteeringPosition</Signal>
</Message>
<Message>
<Id>1585</Id>
<Signal>BatteryVoltage</Signal>
</Message>
<Message>
<Id>1311</Id>
<Signal>STAT_HOMING_ATTAINED</Signal>
<Signal>STAT_HOMING_ERROR</Signal>
</Message>
<Message>
<Id>1294</Id>
@ -360,18 +366,18 @@
<Signal>headlights</Signal>
</Message>
<Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<Visibility>SHOWMINIMIZED</Visibility>
<WindowPlacement>HIDE</WindowPlacement>
<Top>186</Top>
<Left>513</Left>
<Right>960</Right>
<Bottom>747</Bottom>
<Top>161</Top>
<Left>610</Left>
<Right>1057</Right>
<Bottom>722</Bottom>
</Window_Position>
<COLUMN_WIDTH>
<MESSAGE_COLUMN>86</MESSAGE_COLUMN>
<Raw_Val_Column>86</Raw_Val_Column>
<Physical_Val_Column>172</Physical_Val_Column>
<Signal_Column>86</Signal_Column>
<MESSAGE_COLUMN>0</MESSAGE_COLUMN>
<Raw_Val_Column>0</Raw_Val_Column>
<Physical_Val_Column>0</Physical_Val_Column>
<Signal_Column>0</Signal_Column>
</COLUMN_WIDTH>
</CAN_Signal_Watch>
<J1939_Signal_Watch>
@ -417,17 +423,17 @@
<Axis_Color>255</Axis_Color>
<X_Grid_Lines>10</X_Grid_Lines>
<Y_Grid_Lines>5</Y_Grid_Lines>
<Active_Axis>2</Active_Axis>
<Active_Axis>1</Active_Axis>
<Selected_Action>0</Selected_Action>
<Show_Grid>TRUE</Show_Grid>
<Display_Type>NORMAL</Display_Type>
</GRAPH_PARAMETERS>
<GRAPH_ELEMENT>
<Message_ID>1586</Message_ID>
<Message_Name>DISPLAY_CURRENT</Message_Name>
<Message_ID>1585</Message_ID>
<Message_Name>DISPLAY_VOLTAGE</Message_Name>
<Frame_Format/>
<Element_Name>BatteryCurrent</Element_Name>
<Value_Type>Physical</Value_Type>
<Element_Name>BatteryVoltage</Element_Name>
<Value_Type>Raw</Value_Type>
<Line_Type>SOLID</Line_Type>
<Line_Color>65280</Line_Color>
<Point_Type>2</Point_Type>
@ -439,10 +445,10 @@
<Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<Window_Position>HIDE</Window_Position>
<Top>39</Top>
<Left>74</Left>
<Bottom>586</Bottom>
<Right>1399</Right>
<Top>11</Top>
<Left>290</Left>
<Bottom>558</Bottom>
<Right>1615</Right>
</Window_Position>
<Splitter_Window_Col_0>
<CxIdeal>479</CxIdeal>
@ -569,10 +575,10 @@
<Interpretation_Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
<Top>181</Top>
<Left>12</Left>
<Bottom>459</Bottom>
<Right>361</Right>
<Top>179</Top>
<Left>10</Left>
<Bottom>457</Bottom>
<Right>359</Right>
</Interpretation_Window_Position>
</CAN_Message_Window>
<J1939_Message_Window>
@ -669,10 +675,10 @@
<Interpretation_Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
<Top>181</Top>
<Left>12</Left>
<Bottom>459</Bottom>
<Right>361</Right>
<Top>179</Top>
<Left>10</Left>
<Bottom>457</Bottom>
<Right>359</Right>
</Interpretation_Window_Position>
</J1939_Message_Window>
<LIN_Message_Window>
@ -754,20 +760,20 @@
<Interpretation_Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
<Top>181</Top>
<Left>12</Left>
<Bottom>459</Bottom>
<Right>361</Right>
<Top>179</Top>
<Left>10</Left>
<Bottom>457</Bottom>
<Right>359</Right>
</Interpretation_Window_Position>
</LIN_Message_Window>
<CAN_Tx_Window>
<Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>SETMINPOSITION</WindowPlacement>
<Top>4</Top>
<Left>648</Left>
<Bottom>659</Bottom>
<Right>1508</Right>
<Top>-1</Top>
<Left>1035</Left>
<Bottom>654</Bottom>
<Right>1895</Right>
</Window_Position>
<Message_List>
<Message>