Editor Version ×
Standard

1.Easy to use and quick to get started

2.The process supports design scales of 300 devices or 1000 pads

3.Supports simple circuit simulation

4.For students, teachers, creators

Profession

1.Brand new interactions and interfaces

2.Smooth support for design sizes of over 5,000 devices or 10,000 pads

3.More rigorous design constraints, more standardized processes

4.For enterprises, more professional users

Completed

PRO MakerLab Formula College racing steering wheel. Can be used in real vehicles and simulators.

Formula College racing steering wheel. Can be used in real vehicles and simulators.

Project tags

License

GPL 3.0

License: GPL 3.0

Mode:

Mode

Editors' pick

Editors' pick

  • 30
  • 0
  • 0
Update time: 2024-10-14 09:35:17
Creation time: 2024-10-14 02:38:58
Description

Description

# About this item Written at the top: After graduation, I have been busy with various things, the landlord has participated in the work, and the work is usually saturated, so I don't have the energy to continue to improve the content of this project for the time being. Taking advantage of the National Day holiday, the content of his graduation thesis was open-sourced to github (due to the excessive content of the paper, it is difficult to sort it out, and it has not been updated to the JLC open source platform synchronously, please review and bear ~~), for more information, you can move to the github repository: [https://github.com/Nolimy/steeringWheel_MeterBox_STM32_FreeRTOS](https://github.com/Nolimy/steeringWheel_MeterBox_STM32_FreeRTOS) In addition, if you are interested in this project, you can add the Q group: 811038451, welcome to communicate! - - - My undergraduate graduation project, a STM32F407-based Formula Student racing wheel. The idea came to mind in September 2022, and the project has now completed the development of the basic functions. Because I participated in the Formula Student event during my undergraduate years, I have a certain understanding of the electronic control system of the Formula Student car, in the instrument system and data acquisition scheme of the racing car, the solution of most domestic teams is to choose to buy and use Motec's CDL3 or C125 instruments, these instruments are generally high in price, and most of the functions of the instruments designed by DIY are not perfect, so I came up with the idea of making a low-cost data acquisition and instrument system integrated in the steering wheel. The specific implementation functions are as follows: 1. Collect vehicle running data (real car mode) and simulator data (simulator data) and display them on the instrument in real time. 2. Through the 4G network, the running data of the real vehicle is uploaded in real time to realize the wireless data transmission function. 3. It can collect and save the running data of the real car, which is convenient for technicians to review and analyze the running data. 4. Implement controller functions to control simulation racing games such as Assetto Corsa, Assetto Corsa Competizione, F1 series, etc. 5. In order to ensure the usability of the real car, it is necessary to have a screen with high brightness to ensure the visual effect of the instrument in sunlight. 6. It has programmable buttons to adjust the vehicle status in real time. This project is for Formula Student (👈 click on me), so the shape of the steering wheel is designed according to the rules of Formula Student racing. Functionally, the development of the real car mode is based on the Lingyun Racing Team of Hebei University of Engineering (👈 click me to understand) Lingyun IX Formula E car. The emulator function is tested based on the Divine Power Pusha (👈 poke me to understand). - - - This project is open source: you can redistribute and/or modify it under the GNU General Public License issued by the Free Software Foundation, either under the version 3 license, or (at your discretion) any later version. The project was released in the hope that it would be useful, but there was no guarantee; There is not even a guarantee of merchantability and fitness for a particular purpose. See the GNU General Public License for more information. You should obtain a copy of the GNU General Public License with the program. If not, take a look. ![gplv3-with-text-136x68.png](//image.lceda.cn/pullimage/OrsZJibtoynD1VSqsoGtDDsfEpGPIVBjKca3q3tB.png) - - - # About Structural Design The shape and structure of the steering wheel are designed in accordance with the rules of Formula Student racing: ![steeringWheel_2023_Release_v2_back_up.png](//image.lceda.cn/pullimage/6UU1noZ62i6hFoX4FEW6rP2NC6p36UxQuMkaBDZs.png) ![KRLUKJrP8LTwQU8oxdZm26F5HwmR0EsTjgGguXTC.png](//image.easyeda.com/pullimage/oiIxZa0NOKazPJT5T6Yz9NhCIhNxcYOgbDZP7nhz.png) ![20230214153308.png](//image.lceda.cn/pullimage/8P7I6ZNs57CXSxtybFbyDNAVDuzZJOIG7RxRTOA5.png) ![steeringWheel_2023_Release_front.png](//image.lceda.cn/pullimage/JNwi7bqKJ8Dt6SrJHWYHF0GMpJMiYuG73Xf51YKk.png) - - - The width of the steering wheel body is 250 mm, and the height is 170 mm. The screen size is 3.5 inches. There are 8 programmable controller buttons on the front of the disk. Two paddle shifters are mounted on the back. The upper and lower housing of the steering wheel are CNC machined using carbon fiber plates, while the rest of the parts such as the grip, screen mounting cover, steering wheel edge housing, paddle shift linkage and paddle shift housing are 3D printed with black resin. In addition, a steering wheel adapter compatible with the base of the Logitech G27 was designed, so two 3D models appeared in my github repository, one using a quick release device (4 balls) of a real car, and the other using a 3D printed steering wheel adapter connected to the G27. BOM ingredient list, please poke [me](https://github.com/Nolimy/steeringWheel_MeterBox_STM32_FreeRTOS/blob/main/Steering_Wheel_BOM.xlsx) For the complete assembly model, please poke 👉[me](https://github.com/Nolimy/steeringWheel_MeterBox_STM32_FreeRTOS/blob/main/Model/steeringWheel_2023_Release%20v13.step)(real car). (Simulator): 👉 [Me](https://github.com/Nolimy/steeringWheel_MeterBox_STM32_FreeRTOS/blob/main/Model/steeringWheel_2023_Simulator_For_G27%20v3.step) 3D printing service recommends JLC's 3D Monkey: [https://www.sanweihou.com/](https://www.sanweihou.com/), 3D Monkey provides online quotation, CNC machining, 3D printing and other one-stop services. - - - # How to use: The steering wheel is divided into three modes: standby mode, real car mode, and simulator mode. When the steering wheel is powered on, it defaults to standby mode. When the steering wheel receives a CAN message, it is in real car mode; When the steering wheel receives a serial message, it is in simulator mode. In standby mode, the computer can recognize the steering wheel as a USB device, but the handle buttons are not responding, at this time, you need to use Simhub's custom serial device function to send serial port messages to the steering wheel to enter the simulator mode, and the handle buttons in the simulator mode are responsive. Therefore, using the emulator mode requires the use of Simhub's custom serial device functionality at the same time. In standby mode, all 12 LEDs in SLM (Shift LED Module) are blue. ## Formula Student is used in real cars The steering wheel uses the baud rate of 125kbps by default, and the baud rate can be configured and modified by using CubeMX, and the code in the BSP/CAN can be modified according to the actual situation of the team for the specific CAN protocol. ## Simulator use ### Steering wheel connection The simulator needs to be used in conjunction with [Simhub](https://www.simhubdash.com/). After connecting the steering wheel to the computer using the USB port, the computer will recognize a virtual serial port device and a controller device: ![有道截屏翻译结果_1728874261057.png](//image.easyeda.com/pullimage/gmyLom0kRQAxpSOYaQQZ1wlOdpqv5UDJqbqrfQHg.png) In Settings, you can see the LY_Wheel_Controller peripherals of the steering wheel in Bluetooth & other devices. ![20241014-105308.jpg](//image.easyeda.com/pullimage/93IwBy8GKEgIlAZ5Y6GNwIvNLW1q5UQqlcGyMhEC.jpeg) In the Device Manager, you can view the virtual serial port device and its port number of the steering wheel. For the calibration of the steering wheel controller, click on "Devices and printers" on the right side of "Bluetooth and other devices": ![有道截屏翻译结果_1728875718523.png](//image.easyeda.com/pullimage/Pf5jyn0IMSjCQquiP3MjLftJimAi21gFDJ6uCTYN.png) Find "LY_Wheel_Controller", right-click, click on "Game Controller Settings", and then click on "Properties". ![有道截屏翻译结果_1728874521661.png](//image.easyeda.com/pullimage/Nto0PpPzMYIWxiA0Eqv7s1f34L1UVPwwcojey4gY.png) On the test page, you can test the buttons on the steering wheel. (Pressing the steering wheel button in default standby mode does not have any reaction) ![有道截屏翻译结果_1728874583265.png](//image.easyeda.com/pullimage/rWXQIeBbOVYTXYpanRuE1jyXXqtacogcSeYW3aVM.png) ### Simhub Configuration The display function of the steering wheel requires Simhub to be used together, and the Simhub software can be accessed [https://www.simhubdash.com/](https://www.simhubdash.com/) downloaded. This is a very powerful software that supports data collection for a variety of simulator games, including car meters, arduino, G-force seats, and other peripherals. After installing Simhub, open the settings screen: ![simhub1.png](//image.lceda.cn/pullimage/oNCv4x5DUQqj5Vrckvvs4hKYo6spO9JYA98iwoVY.png) Click on the plugin function: ![simhub2.png](//image.lceda.cn/pullimage/Ktkah4XNisNX8TOTY3OmFdqlFBmkL8UWsUdRkygL.png) Open the "Custom serial devices" plug-in: ![simhub3.png](//image.lceda.cn/pullimage/jIK7ugK2f3him0wZvnxnYnjwhZKO7lOMILEajdwV.png) Once the simhub is reopened, the "Custom Serial Devices" button will appear in the left menu: ![simhub4.png](//image.lceda.cn/pullimage/usJqqjim0Osxi1TXQj3SmXxGTHhF4XgibreFuX2A.png) ![simhub5.png](//image.lceda.cn/pullimage/uGypxj3aM7Vl4F4DhlVJcgSheeGEyXrH6lq9wcrA.png) According to the serial port of the steering wheel shown in the device manager, select the serial port, I am using COM15 here. ![simhub6.png](//image.lceda.cn/pullimage/u9zV2JDRtdYeuEqKTIlj99R8atIR6swHiBiFz9SP.png) Add the game data packaging json script, paste the following javaScript code into the "Uptate messages": ```jsx function getCurrentLapTime(){ var lapTime = $prop('CurrentLapTime'); lapTime = lapTime.toString(); if(lapTime == "00:00:00") { return lapTime; } else lapTime = lapTime.toString().slice(3,11); return lapTime; } function getRPM(){ var rpm = $prop('DataCorePlugin.GameData.NewData.Rpms'); rpm = format(rpm,"0"); return rpm; } function getSpeed(){ var speed = $prop('SpeedKmh'); speed = format(speed, '0'); return speed; } function getGear(){ var gear = $prop('Gear'); return gear; } function getBestLapTime(){ var bestLapTime = $prop('BestLapTime'); bestLapTime = bestLapTime.toString(); if(bestLapTime == "00:00:00") { return bestLapTime; } else bestLapTime = bestLapTime.toString().slice(3,11); return bestLapTime; } function getFuel(){ var fuel = $prop('FuelPercent'); fuel = format(fuel, '0'); return fuel; } function getRedLine(){ var redLine = $prop('CarSettings_CurrentGearRedLineRPM'); return redLine; } function getBrake(){ var brake = $prop('Brake'); brake = format(brake, '0'); return brake; } function getThrottle(){ var throttle = $prop('Throttle'); throttle = format(throttle, '0'); return throttle; } function getLap() { lap = $prop('CurrentLap'); return lap; } var speed = getSpeed(); var carData = "{\"speed\":" + getSpeed() + ",\"rpm\":" + getRPM() + ",\"cLapTime\":" +"\"" + getCurrentLapTime() + "\"," +"\"gear\":" + "\"" +getGear() + "\"" + ",\"bLapTime\":" +"\"" + getBestLapTime() + "\""+ ",\"fuel\":"+ getFuel() + ",\"redLineRPM\":"+ getRedLine() + ",\"brake\":" + getBrake() + ",\"throttle\":"+ getThrottle() + ",\"lap\":"+ getLap() +"}"; return carData; ``` >Click "Edit": ![simhub7.png](//image.lceda.cn/pullimage/lPtjrkPn6Pv39xB1zgFyDlOLWybl5CJ1SAcRlen8.png) >Click "Computed value": ![simhub8.png](//image.lceda.cn/pullimage/9LlgDQzztzw7LxiwxO6G8HHTBLJfQKhw6Dh50OOA.png) >Tick "Use JavaScript": ![simhub9.png](//image.lceda.cn/pullimage/y2FdP7mdGgvxs2InRYQsu3Usq1m5zhhPGVYPB8Iw.png) >Paste the above javascript code into the text box: ![simhub10.png](//image.lceda.cn/pullimage/JRZDAmSIEu58P3tmtjQtqrVwdBxxYYVawL0fhK5J.png) >Under normal circumstances, the full json string can be generated in the raw result. Finally, click the connect button and wait for a while, you can see all the blue lights of the SLM on the steering wheel go out, and you will enter simulator mode. At this time, the handle button test can be seen to be detected normally. ![steeringWheel.jpg](//image.lceda.cn/pullimage/qExzTShkZIFMw7HhplLgnd4Ljl5hdDyJPvpioiKJ.jpeg) ### In-game configuration >Take "Assetto Corsa" as an example, launch the game with the simhub running in the background. Go to the control settings and change the simulator key to the recognized controller key key, as shown in the following figure: ![asseto_Corsa1.png](//image.lceda.cn/pullimage/X9NEsQKkip2GdzfEJJfT6CqOR1zY79MsV1ZbZ3k9.png) >Next, you can launch the game and you can have the same experience as the steering wheel of a real car. ![R2-20230304_173839869.jpg](//image.lceda.cn/pullimage/VueYo9EhCg1LLoib0HUHyJYYxFWjAm3TKM2saesw.jpeg) --- # System Framework ![QQ截图20230304213039.png](//image.lceda.cn/pullimage/ZCwfbes0MQVU65qEpfw4HWFwBu42s24I1W7n0WKw.png) # About Circuit Design The main control uses STM32F407ZET6 (crotch burn can also use a larger STM32F407ZGT6 ROM), in view of the high price of STM32 series chips, you can also choose other domestic chips such as GD32 to replace (I haven't tested it yet). ![STM32F407.png](//image.lceda.cn/pullimage/FdFrx5O938Kh5vAkSPt9uTuQig2wIIrdX6Tth4RY.png) In terms of wireless data transmission function, the 4G module is used, Quectel BC260Y is used, and the serial port is used to communicate with the STM32 main controller, and the data collected by the main controller is sent to the server through MQTT. ![BC260Y.png](//image.lceda.cn/pullimage/FKXU4Meg7BKJEYwjvZf6ORAIB5fCRnPYS4940F6t.png) The screen uses Kodak's KD035HVFMD145-01 ([datasheet](https://github.com/Nolimy/steeringWheel_MeterBox_STM32_FreeRTOS/blob/main/Hardware/Datasheet/LCD/1707022343KD035HVFMD145-01%20SPEC%20V1.0.pdf)), the screen uses the ST7796s controller, and the MCU controls the screen through 8080 timing. The screen has a brightness of up to 950 nits, which basically meets the needs of sunlight viewing. ![LCD.png](//image.lceda.cn/pullimage/U6z2H2MtRGxEl6kpp29Im1wTZcaRPUMgVZ8jTfzb.png) The shift indicator light bar uses WS2812B LEDs, which are controlled by the STM32's TIM timer, DMA. ![WS2812B.png](//image.lceda.cn/pullimage/GFULrhkeDkBrjZHqfH0xg5covbjGYun98c9axi34.png) NXP's TJA1050 transceiver is used to collect CAN data on actual vehicle runs. ![CAN原理图.png](//image.lceda.cn/pullimage/FkFATsDyNG1GuLoX3YXqL2s92m8AQos6XsBwLAYe.png) The steering wheel is a USB composite device, and the running data of the simulator is collected through the USB virtual serial port. This feature relies on Simhub software. At the same time, it also includes a joystick controller function, which can control the vehicle in the game, such as gear shifting, DRS and other functions. # Physical Display ![R2-20230224_172748182.jpg](//image.lceda.cn/pullimage/X0Qe3AcA3TrxPoIxCWJZUmURgxQLdCHqQ0WzldNb.jpeg) ![R2-20230224_173118793.jpg](//image.lceda.cn/pullimage/kjl9Tx0Y7v58MxMa7WdxUV4qzlSCmBbzN9VifDwp.jpeg) ![R2-20230224_172813488.jpg](//image.lceda.cn/pullimage/aHcwrs5aebJMDPXBOjuqxJheK28NwHWG63EWdV9r.jpeg) ![R2-20230224_173240145.jpg](//image.lceda.cn/pullimage/RThptxWZYceroEVbghlNzw1XSqCVx4NjbrFdZBzj.jpeg) ![R2-20230214_223244177.jpg](//image.lceda.cn/pullimage/JTo6dyiCPJVuVHSrW1nRmwbMOsdNp9HDIsKJ0eaR.jpeg) # Video Presentation For video demonstration, please refer to [\[graduation project\] to make a super handsome steering wheel! Compatible with real vehicles and simulators.](https://www.bilibili.com/video/BV1q24y1T7iM/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=7398d178fb2550fd69abea7185ad3c5f) # Upload other attachments For more information, please visit the GitHub repository: [https://github.com/Nolimy/steeringWheel_MeterBox_STM32_FreeRTOS](https://github.com/Nolimy/steeringWheel_MeterBox_STM32_FreeRTOS)

Designed by nolimy (from OSHWHub)

Link:https://oshwhub.com/nolimy/steeringWheel_project

Design Drawing

Design Drawing

schematic diagram
1 /
PCB
1 /
The preview image was not generated, please save it again in the editor.
Empty
Project Attachments

Project Attachments

Empty
Project Members

Project Members

Target complaint
Related Projects
Change a batch
Loading...

Comment

Add to album ×

Loading...

reminder ×

Do you need to add this project to the album?

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn