A data acquisition system (DAQ for short) created by first years, wherein we take data from various sensors and display them on dashboard screen as well as the pit screen.
We use the following sensors from which the data needs to be extracted:
- Motor Controller: DTI HV 500 LC (https://drivetraininnovation.com/webshop/inverters/dti-hv-500-liquid-cooled)
- Battery Management System(BMS): BMS Orion 2 (https://www.orionbms.com/products/orion-bms-standard)
- Mass Flow rate Sensor (MFR)
- CANBUS wiring(twisted) with two 120 ohm resistors at both ends: to communicate with Motor Controller and BMS
- MCP2515 module: to communicate between CANBUS and Arduino
- Arduino Mega 2560: to process the data received by all the sensors and convert it into useable form
- Raspberry Pi 4: to receive the data from Arduino and display it on the dashboard screen with appropriate UI
- HC12 module: for telemetry, i.e, send the real time data from sensors to the pit station where teams can review it and also perform data logging
- Buck Converter: to convert the 12V DC (from LV battery) into a constant 5V DC supply to power the Arduino and Raspberry pi
We fetch the following data:
- From Motor Controller: Motor Temperature, Motor Controller Temperature, ERPM, Throttle
- From BMS: Accumulator current, Accumulator Voltage, State of charge, Highest temperature of a cell in the battery, lowest temperature of a cell in the battery
- From MFR: Speed of the fluid in the cooling system tubes (unit: L/minute)
- Connect the CAN2.0 High and CAN2.0 Low wires of Motor Controller and BMS to the CANBUS wiring. Make sure these nodes are connected in parallel.
- Also connect the MCP2515 module in parallel to the nodes.
-
Power the arduino using Type A to Type B connector from the raspberry pi
-
Raspberry pi should get it's power from the general GPIO pins which are connected to the LV battery via a buck converter. The buck converter's potentiometer should be adjusted such that it converts the 12V input into 5V output
-
Raspberry pi should further be connected to the monitor present in the dashboard
- Establish the connections as mentioned above. Initially connect the arduino to your personal laptop instead of the raspberry to upload a code.
- On your personal laptop (having the arduino IDE), install the libraries:
- In the arduino IDE, go to Sketch -> Include Library -> Add .ZIP Library and add the .zip files for both the libararies you just downloaded.
- Upload the merged-arduino-code.ino onto the Arduino Mega 2560 using the IDE.
- Open Serial Monitor with Ctrl+Shift+M to ensure data is coming in properly and the output is appropriate
- Close the arduino IDE. Disconnect the arduino from your personal laptop and connect it back to the raspberry pi.
- Power up the raspberry pi and copy the entire folder of UI onto it.
- Run the file gui_returns.py by first navigating to the path where you copied the UI folder in the terminal. Then typing: python3 'folder-name' gui_returns.py
- Harsh Srivastava (https://github.com/harshsrivastava0): Taking in the raw canbus data of the motor controller and converting it into readable form, merging all codes to prepare a final DAQ.
- Satwik Jain (https://github.com/satwikjain23): Handling the gigantic task of receiving data from BMS, and converting it from raw CANBUS data into useable form.
- Ayan Mahajan (https://github.com/ayanhmm): Handling the entire UI aspect ranging from displaying data on screen after receiving it from arduino, managing the pit screen and performing data logging as well.
- Raman Saini (https://github.com/Raman-Saini9): Handling the wiring and making sure each component receives appropriate power. Also extracting data from MFR.
- Monis (https://github.com/Monis6113): Helping in figuring out Data logging and telemetry.
- Ayush Jain (https://github.com/ayushjain143): Managing the telemetry aspect of the DAQ.