littlebot
Published on 2025-04-03 / 1 Visits
0

【源码】基于C语言和FreeRTOS的弹珠机控制器系统

项目简介

本项目名为Fan - Tas - Tic - Controller,是基于TM4C123G LaunchPad™评估套件的弹珠机控制器。它与Mission Pinball API兼容,采用模块化设计,使用廉价且易获取的组件,旨在打造一个开源的弹珠机控制系统。

项目的主要特性和功能

硬件特性

  • 8x8开关矩阵输入。
  • 12个板载螺线管驱动器,4个可进行硬件PWM(> 100 kHz)。
  • 4个I2C通道用于扩展板,可连接多种驱动器。
  • 3个SPI通道可运行WS2811 / WS2812 LED串,每个通道最多支持1024个LED。
  • 可使用PCF8574 I2C GPIO扩展器增加输入/输出。
  • 与主机PC有超快速的USB虚拟串口连接,有KiCad PCB文件。

软件特性

  • 可处理多达320个通道,可作为输入或输出。
  • 所有输入/输出通道由16位唯一ID标识,无需配置。
  • 所有输出支持3位PWM(> 125 Hz),使用I2C上的二进制代码调制。
  • 所有输入每秒读取1000次,可选去抖功能,开关状态保持4 ms后触发切换。
  • 通过硬件SPI模块和DMA传输确保WS2811 LED的时序符合规格。
  • 固件基于FreeRTOS,且通过硬件平台驱动与Mission Pinball API兼容。

数字输入/输出特性

  • 4个I2C通道,每个通道最多可处理8个PCF8574,芯片地址需配置为0x20 - 0x27。
  • 使用PCF8574作为输入时,需向其写入0xFF,通过HI命令实现。
  • 输入去抖功能由task_pcf_io()以1000 Hz运行实现。
  • 用16位的hwIndex唯一标识每个输入/输出引脚,不同类型的输入/输出有对应的hwIndex计算方式。

串行命令API功能

提供多种命令用于配置和控制硬件,如显示命令列表、ID和版本信息、I2C状态、开关事件报告、去抖设置、开关状态查询、螺线管电源控制、输出设置、规则设置、LED控制等。

安装使用步骤

假设用户已经下载了本项目的源码文件,以下是在Ubuntu 18上的安装使用步骤: 1. 安装gcc for arm bash $ sudo apt-get install gcc-arm-none-eabi openocd build-essential make $ pip install pyserial 2. 下载TivaWare Full ReleaseSW - TM4C - 2.1.4.178.exe下载,需要在ti.com注册。 bash $ echo "c74ef1da07246d4ad20a92521ba44a7d567f6bc62556cd1b76e7fd6a8a75bf8c SW - TM4C - 2.1.4.178.exe" | sha256sum -c - SW - TM4C - 2.1.4.178.exe: OK $ unzip SW - TM4C - 2.1.4.178.exe $ cd SW - TM4C - 2.1.4.178 $ make 若构建示例时出现错误,可忽略,不影响后续操作。 3. 构建并烧录项目 编辑Makefile,将ROOT =路径改为上述TivaWare文件夹的路径。 插入调试连接器,然后执行以下命令: bash $ make $ make flash $ miniterm.py /dev/ttyACM0 1152000

完成以上步骤后,即可通过串行命令API对弹珠机控制器进行配置和控制。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】