领券中心备货找料立推专区爆款推荐合作库存PLUS会员BOM配单PCB/FPC/SMT工业品面板定制

我花100多,做了个方向盘!

2026-04-30 19:56:02阅读量:9

工程名称:FOC力反馈方向盘手柄,带挡杆
工程作者:realTiX

 

前言

小编今天逛开源平台,看到了一个很有趣的力反馈方向盘

控制赛车非常丝滑 

赛车

这这这,这是主打一个,在家也能实现“赛车”自由?

但这不是最重要的!最重要的是:

 

作者只用

1颗主控+1个10X7cm的主板PCB

就实现了

FOC+力反馈+USB HID全流程

这是什么水平?

 

01
项目功能&亮点
  • 它能在赛车计划、漂移赛车等游戏中,通过震动等反馈,体验到“真在开车”的快感。比如:撞路肩时,实体方向盘会同步游戏摆动,并有整体震动,实现力反馈效果

  • 兼容《欧洲卡车模拟 2》《神力科莎》等主流赛车/模拟驾驶游戏

  • 有mini方向盘,用于控制赛车方向

  • 有mini排档,实现游戏换挡操作,可切换1-12,R1,R2,N档

  • 集成肩键、扳机等功能按键

  • 内置 3.7V 锂电池供电,非常便携,可以躺在沙发上玩

  • 可自定义方向盘旋转圈数:0.1~255 圈

  • 带有彩灯状态指示

  • 支持开机一键校准方向盘中点/限位,也支持串口/USB 上位机后续修改

  • 通过 USB HID 协议与电脑通信,自动获取游戏下发的力反馈数据

换挡演示▼
换挡演示

接下来咱们瞅瞅,它是如何实现这些功能的?

 

02
硬件设计方案

作者用嘉立创EDA,设计了3块板子——含主控板、挡杆小板、编码器小板。

主板

负责 FOC 算法、USB HID 通信、力反馈计算、按键与 LED 控制

原理图

原理图

pcb

PCB图

挡杆小板

实现原创微型排挡的档位检测与信号转换

原理图

原理图

PCB图

PCB图

 

磁编码器小板

精确检测无刷电机转角与转速,为 FOC 算法提供位置反馈

这里,作者设计了i2c和spi两个版本,相对灵活,可用于适配不同成本 / 性能需求的编码器

①磁编码器小板-i2c

磁编码器小板-i2c

②磁编码器小板-spi

磁编码器

 

硬件参数

  • 主控:PY32F403,带FPU,适配FOC高速运算

  • 电机驱动:MS8313 支持有感/无感控制

  • 无刷电机:一颗2804运行FOC作为力反馈方向盘

  • 电源管理:锂电池供电、5V/3.3V 稳压、防反接与过流保护

  • 通信接口:USB-C,HID协议连接PC,获取游戏力反馈数据、SWD调试口

  • 人机交互:彩灯(状态指示)、功能按键(校准 / 配置)

  • 扩展接口:连接挡杆小板、编码器小板的排针 / 排母

小编OS:

要知道,想实现上述功能,很多商用设备都要靠 “多颗芯片 + 更大的电路板” 才能实现,而作者只通过「1 颗主控 + 巴掌大的主板+2个小板」就全部搞定了

这算不算是把单片机的 Flash、RAM、运算能力压榨到极限?

 

03
软件设计方案

项目的软件部分已全开源了。

软件部分

作者也提供了固件!

如果你只是想尝试复刻,练习技术,直接烧录固件即可!

以下是一些注意事项说明:

  • 本项目使用了自研的裸机调度器 LTX V3,提供更高效的响应与更好的开发体验;

  • 关于烧录:使用 daplink/jlink/... 等等swd调试器进行固件烧录,可使用keil编译源码烧录;

  • 如果您需要对本项目进行二次开发或拓展,那么应该需要一些调试手段。

关于调试:

本项目最初使用 RTT 进行调试信息输入输出,现改为串口,串口速度为 4M。如果需要,那么可以在宏定义切换回 RTT,以下是 RTT 相关的用法:

  •  
  •  
  •  
segger RTT 会将输入输出信息保存在一块 ram 中当调试器链接后电脑用通过 openOCD 来对内存进行写入读出以实现输入输出无需外设收发并且还能保存一定的历史输出

如果您有 jlink,那么可以直接用 segger 提供的 rttviewer 进行调试,这里仅提供使用 dap-link 的调试方法:

 

  •  
  •  
在普冉官网下载官方提供的 openocd 版本,将其加入环境变量链接调试器和设备,打开任意 shell,输入 openocd -f rtt2tcp.cfg  注:如果没有加入环境变量,那么上述命令需要输入 openocd.exe 的完整路径打开任意支持 tcp 的串口调试工具,这里以 vofa+ 为例,填入如下图的配置信息链接成功后,即可查看输入输出信息

 

 

本章的最后:

  • 通过自定义命令,可控制单片机的运行状态,比如使用 /ltx_app 命令暂停某些 app 等等,也可依赖发布订阅机制实现数据更新后的自动打印,在 ltx_cmd.c 中提供的 /print 命令有一个 heart_beat 样例,用来每秒打印心跳,您可参考该样例来设置自己的订阅数据打印;

  • 如果您需要经常修改一些变量,如尝试某些不同的 pid 参数,那么也无需重新烧录,在 ltx_cmd.c 中提供了一个 /param 命令,该命令可对 ltx_param.c 中指向的自定义数据进行读写;

  • 所有的自定义命令可在 ltx_cmd.c 中查看,也可开机后给单片机发送 /help 命令来列出所有命令,您也可以参考这些命令创建一些方便调试自定义命令,部分现有命令可能会影响系统的正常运行。

 

04
结语

这个作品的DIY成本在200元以内。

PS:出于好奇,小编悄悄去某宝,搜了一下【力反馈方向盘】关键词,想看看这类方案的市场:

虽然咱的方向盘很mini,但要是复刻成功,好像,也挺值的吼……

 

方向盘

PPS:最后,本项目还有一篇三万字的配套博客,主要讲解 FOC 相关内容,感兴趣可前往作者开源主页了解更多!可别错过啦~

 

05
开源网址

你喜欢这个作品吗?如果是你,你会怎么设计它?欢迎评论区唠唠丫!

目前,项目已全开源

——想复刻想给作者点赞下面会附上开源网址↓,欢迎大家在遵循作者开源协议的情况下,友好复刻学习~~

开源网址:https://oshwhub.com/realtix/project_pyptyrni

标签图标
方向盘
上一篇:我用STM32,做了个雷达……下一篇:没有了
广告图片