基于teensy4.1 的网口RGB 控制
该项目使用了teensy4.1,实现了网口 RGB控制的设计,它的主要功能为:网口控制WS2812 CAN显示RGB 三原色。
标签
嵌入式系统
Funpack活动
开发板
ROBOT_ZHI
更新2025-01-13
9

一、核心性能

Teensy 4.1搭载了恩智浦的i.MX RT1062处理器,该处理器基于ARM Cortex-M7内核,运行频率高达600MHz。它提供了高CPU性能和最佳实时响应,适用于工业和物联网应用。此外,Teensy 4.1还配备了1MB的片上RAM7936K的闪存,以及4KEEPROM(仿真),为开发提供了充足的资源。

二、丰富的I/O接口

Teensy 4.1提供了丰富的输入输出接口,包括55个数字输入/输出引脚、35PWM输出引脚和18个模拟输入引脚。此外,它还配备了8个串行端口、3SPI端口、3I2C端口、2I2S/TDM1S/PDIF数字音频端口。这些接口为开发者提供了广泛的连接选项,可以满足各种应用场景的需求。

三、网络通信与存储

Teensy 4.1内置了以太网控制器和以太网PHY芯片(DP83825),支持10/100Mbit的速度,方便开发者进行网络通信开发。

安装teensyduino 后arduino 可以显示teensy4.1

e51f19dd7714247244db9b05e9870d7.jpg

4.电气设计框图

5c4103b1a1eb86e4413ac06d69cd17f.png

这里使用是串口转网口的模块,配置串口转模块成服务器,IP地址是192.168.1.100 通讯速率是460800 端口8080

b411e2e541d1f24577c716afff6e70d.png

e3a73a249c5217972edad0fe5d219eb.png


编写arduino 使用 网口调整 WS2812 的颜色

a8d098f9c8347241bc2cfd3cc60e1b4.png

变红

0d64547c0f622f98c552288227567b5.jpg

变蓝

2693e732e802b2f97e2d2d315e09b11.jpg

变粉

0a033cb78a11e02da4187c5522291ad.jpg


显示WS2812的颜色配置

1151b015695aa152f35eaaf362d7c75.png


调试代码

#include <Adafruit_NeoPixel.h>
#include <SoftwareSerial.h>
#include <FlexCAN_T4.h>

FlexCAN_T4<CAN1, RX_SIZE_256, TX_SIZE_16> Can0;
// LED环参数 - 调整以匹配你所使用的设置
#define PIN 6 // 连接到WS2812的数据引脚
#define NUMPIXELS 30 // 如果你有多个LED,更改此数值

SoftwareSerial MySerial1(0, 1);

// 创建一个NeoPixel对象
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void canSniff(const CAN_message_t &msg)
{
MySerial1.print("MB "); MySerial1.print(msg.mb);
MySerial1.print(" OVERRUN: "); MySerial1.print(msg.flags.overrun);
MySerial1.print(" LEN: "); MySerial1.print(msg.len);
MySerial1.print(" EXT: "); MySerial1.print(msg.flags.extended);
MySerial1.print(" TS: "); MySerial1.print(msg.timestamp);
MySerial1.print(" ID: "); MySerial1.print(msg.id, HEX);
MySerial1.print(" Buffer: ");
for ( uint8_t i = 0; i < msg.len; i++ )
{
MySerial1.print(msg.buf[i], HEX); MySerial1.print(" ");
} MySerial1.println();
}


void setup() {
pixels.begin(); // 初始化Neopixel
MySerial1.begin(460800); // 初始化串行通信
Can0.begin();
Can0.setBaudRate(1000000);
Can0.setMaxMB(16);
Can0.enableFIFO();
Can0.enableFIFOInterrupt();
Can0.onReceive(canSniff);
Can0.mailboxStatus();
}

void loop() {
if (MySerial1.available() > 0)
{ // 检查是否有可用的数据
String colorCommand = MySerial1.readStringUntil('\n'); // 读取一行数据
setColor(colorCommand); // 设置颜色
}

}

void setColor(String command)
{
CAN_message_t msg;

Can0.events();


command.toLowerCase();
if (command == "蓝色")
{
msg.id = 1 ;
msg.buf[0] = 255 ;
msg.buf[1] = 0 ;
msg.buf[2] = 0 ;
setPixelColor(255, 0, 0); // 红色
MySerial1.print(" 蓝色: ");
Can0.write(msg);
}
else if (command == "粉色")
{
msg.id = 2 ;
msg.buf[0] = 255 ;
msg.buf[1] = 165 ;
msg.buf[2] = 0 ;
setPixelColor(255, 165, 0); // 黄色
MySerial1.print(" 粉色: ");
Can0.write(msg);
}
else if (command == "红色")
{
msg.id = 3 ;
msg.buf[0] = 0 ;
msg.buf[1] = 255 ;
msg.buf[2] = 0 ;
setPixelColor(0, 255, 0); // 绿色
MySerial1.print(" 红色: ");
Can0.write(msg);
}
}

void setPixelColor(byte red, byte green, byte blue)
{
for(int i=0; i<NUMPIXELS; i++)
{
pixels.setPixelColor(i, pixels.Color(red, green, blue)); // 设置像素颜色
}
pixels.show(); // 更新显示
}
附件下载
col.ino
团队介绍
robot_zhi
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号