站内搜索
发作品签到
专业版

触摸星空

工程标签

2.3k
0
0
3

简介

使用TTP233实现触摸输入方案,此方案可实现触摸星空桌面,触摸河流桌效果,另外使用ESP32改进支持RGB,可以实现比一般方案更多的效果。比如单独显示不通过触摸。另外使用RGB可以实现彩色显示。

简介:使用TTP233实现触摸输入方案,此方案可实现触摸星空桌面,触摸河流桌效果,另外使用ESP32改进支持RGB,可以实现比一般方案更多的效果。比如单独显示不通过触摸。另外使用RGB可以实现彩色显示。
星火计划2024

开源协议

CC BY-NC-SA 3.0

(未经作者授权,禁止转载)
创建时间:2024-02-01 18:25:19更新时间:2024-05-13 11:35:05

描述

项目说明

使用TTP233实现触摸输入方案,此方案可实现触摸星空桌面,触摸河流桌效果,另外使用ESP8266改进支持RGB,可以实现比一般方案更多的效果。比如单独显示不通过触摸。另外使用RGB可以实现彩色显示。

 

开源协议

使用MIT协议

 

项目相关功能

项目一共三个模块,它们都可以分别使用。

触摸模块

RGB控制模块

RGB连接模块

 

项目属性

本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。

 

项目进度

目前硬件电路测试基本无大问题。

设计原理

本项目使用ESP32S3做为主控芯片,它主要是接收TTP223的信号,来点亮相应的RGB。相比直接使用TTP223可以实现更加丰富的功能和体验。

软件说明

软件使用Adafruit_MCP23X17和Adafruit_NeoPixel库,Adafruit_MCP23X17用于支持23017的I2C支持,Adafruit_NeoPixel用于RGB显示。

void setupmcp()
{
    // SCL SDA配置
    static TwoWire mcpconfig(0);
    if (!mcpconfig.begin(SDAPIN, SCLPIN))
    {
        Serial.println("initPins Error.");
    }
    size_t i = 0;
    for (auto &ite : mcp)
    {
        if (ite.begin_I2C(mcpaddress[i], &mcpconfig))
        {
            /*for (uint8_t i = 0; i < 16; i++)
            {
                ite.pinMode(i, OUTPUT);
            }*/
            Serial.print("init mcp successed!address:");
            Serial.println(mcpaddress[i]);
        }
        else
        {
            Serial.print("Error init mcp!address:");
            Serial.println(mcpaddress[i]);
        }
        ++i;
    }
}
然后在loop里检查是否有输入变化,更新RGB效果
static std::array<std::bitset<16>, 4> gpiovalue = {0, 0, 0, 0};
    int idx = 0;
    for (auto &ite : mcp)
    {
        std::bitset<16> gpio = ite.readGPIOAB();
        if (gpiovalue[idx] != gpio)
        {
            gpiovalue[idx] = gpio;
            Serial.println(gpio.to_string().c_str());
            for (uint16_t i = 0; i < gpio.size(); i++)
            {
                if (gpio[i] == HIGH)
                {
                    rgb.setRGB(i + offset, distribRGB(engine), distribRGB(engine), distribRGB(engine));
                }
                else
                {
                    rgb.setRGB(i + offset);
                }
            }
        }
        ++idx;
        offset += 16;
    }
 

实物展示

提示:作品的实物图片,图片可以加上说明。

设计注意事项

原理图里的MCP23017址用的0欧电阻,需要根据实际需要连接。不连接为全高电平,则此模块地址为0b0100111,即0x27,几个模块的地址不能相同。

触摸模块电路这全电路,实际使用时可以去掉部分功能,比如我这里不需要驱动LED,那驱动LED部分是可以不要

其他

演示视频:演示视频上传附件即可,附件最大只能长传50M的文件,大于50M的文件可放置在其他网盘或视频网站上,只需把地址链接放入这里即可

工程附件:参加活动的作品必须把工程相关的程序附件上传至开源平台或个人的代码存储云端,附件最大支持50M上传(请勿在立创工作区上传,有限制)

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
video_20240321_190522.mp4
4
2
video_20240429_210903.mp4
3
3
f17aece10914d3d598242c4d30422c42.mp4
3
4
touch-dream.zip
8
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航