ft6x06_driver

A MicroPython I2C driver for FT6x06/FT6206/FT6306 capacitive touch controllers with IRQ support

1.0.0 leezisheng 更新时间: 2026-07-21
安装包
本地安装
mpremote mip install https://upypi.net/pkgs/ft6x06_driver/1.0.0
远程安装
mip.install("https://upypi.net/pkgs/ft6x06_driver/1.0.0")
版本选择
README

简介

MicroPython I2C 驱动,用于 FT6x06 系列(FT6206/FT6306 等)电容触摸控制器芯片。该驱动基于 antirez/micropython-ft6x06 原始代码适配,仅使用 machine.I2C 原生接口。支持多点触摸检测、坐标读取、手势识别和中断回调功能。

主要功能

  • 支持多点触摸检测(最多 2 点,取决于芯片型号)
  • 触摸事件类型识别(按下/抬起)
  • 触摸压力和面积信息读取
  • 可选中断引脚配置,支持触摸事件回调
  • ISR 安全设计,通过 micropython.schedule 推迟 I/O 到主循环上下文
  • 纯 I2C 通信,不依赖任何显示驱动或第三方兼容层
  • 内置 I2C 重试机制,增强通信可靠性
  • 调试日志开关,方便开发调试

硬件要求

  • 支持 MicroPython 的微控制器(ESP32、ESP32-S3、RP2040 等)
  • FT6x06 系列电容触摸控制器(FT6206、FT6306 等)
  • I2C 总线连接线
  • 中断引脚连接线(可选,用于事件驱动模式)

软件环境

  • MicroPython v1.23.0 或更高版本
  • 无额外固件依赖

文件结构

ft6x06_driver/
├── code/
   ├── ft6x06.py    # 驱动核心文件
   └── main.py      # 测试示例文件
├── README.md        # 本文件
├── package.json     # 包描述文件
└── LICENSE          # 许可证文件

文件说明

文件 说明
code/ft6x06.py FT6x06 系列触摸驱动核心类,提供触摸点检测、坐标读取和中断回调支持
code/main.py 测试示例代码,演示 I2C 扫描、设备初始化和触摸数据轮询

快速开始

I2C 接线表(轮询模式)

FT6x06 引脚 MCU 引脚 说明
VCC 3.3V 电源正极
GND GND 电源地
SCL GPIO 22 I2C 时钟线
SDA GPIO 21 I2C 数据线
INT 不接 触摸中断引脚(轮询模式时不需连接)

I2C 接线表(中断模式)

FT6x06 引脚 MCU 引脚 说明
VCC 3.3V 电源正极
GND GND 电源地
SCL GPIO 22 I2C 时钟线
SDA GPIO 21 I2C 数据线
INT GPIO 15 触摸中断引脚(下降沿触发)

代码示例(轮询模式)

from machine import I2C, Pin
from ft6x06 import FT6x06

# 初始化 I2C 总线
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)

# 创建 FT6x06 驱动实例
touch = FT6x06(i2c)

# 轮询触摸点数据
while True:
    points = touch.get_touch_coords()
    if points:
        print(points)
    time.sleep_ms(100)

代码示例(中断模式)

from machine import I2C, Pin
from ft6x06 import FT6x06
import time

# 定义触摸回调函数
def on_touch(data):
    print("Touch event:", data)

# 初始化 I2C 总线和中断引脚
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)
int_pin = Pin(15, Pin.IN)

# 创建 FT6x06 驱动实例(中断模式)
touch = FT6x06(i2c, interrupt_pin=int_pin, callback=on_touch)

# 主循环保持运行,触摸事件通过回调通知
while True:
    time.sleep_ms(100)

注意事项

  • 默认 I2C 地址为 0x38,请确认设备地址与硬件一致
  • 驱动支持轮询模式和中断模式两种使用方式
  • 中断模式使用 micropython.schedule 推迟 I/O 操作到主循环上下文,确保 ISR 安全
  • 本驱动为纯 I2C 触摸驱动,不包含显示功能,需配合独立的显示驱动使用
  • I2C 总线频率建议不超过 400 kHz
  • 不同 FT6x06 系列芯片的触摸点数上限可能不同(FT6206 通常支持 2 点)

版本记录

版本 日期 说明
1.0.0 2026-07-19 初始版本,基于 antirez/micropython-ft6x06 适配并规范化

联系方式

许可协议

MIT License

Copyright (C) 2024 Salvatore Sanfilippo -- All Rights Reserved

Modified and maintained by FreakStudio

详见 LICENSE 文件。

文件列表
Name Size Type
LICENSE 50B File
README.md 3.9KB Doc
ft6x06.py 16.1KB Python
main.py 3.9KB Main
package.json 514B Conf