项目简介
本项目名为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 Release
从SW - 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】