Funpack第三季第5期-网口控制的LED
该项目使用了teensy4.1,实现了led控制的设计,它的主要功能为:基于以太网口通信,通过手机或电脑的网业访问,控制板载led的亮灭。
标签
Arduino
Funpack活动
Teensy
LISHIYANG
更新2025-01-13
11

项目介绍

本次活动我实现了基于以太网口通信的LED灯控制。

本次活动的板卡是Teensy 4.1,这是一款基于NXPi.MX RT1062高性能微控制器的开发板,主频可达600 MHz。拥有丰富的I/O接口,扩展出多达42个数字I/O引脚、18个模拟输入引脚和多种通信接口(如SPII2CUART等)。Teensy 4.1支持USB主机和设备模式,并配备了SD卡插槽和额外RAMROM扩展焊盘,适合于需要高处理速度和实时性能的项目,如音频处理、图像分析以及机器人控制等应用。其兼容Arduino开发环境,方便开发者快速上手。

 

设计思路

代码整体思路较为简单,但实现过程相对曲折。

开发板的网口转接板我直接购买了官方的Ethernet Kit for Teensy 4.1,这块转接板原理图其实很简单,就是网口引出加一颗电容。

参考官方教程,我首先尝试了NativeEthernet library,但我尝试很久后依然没有头绪,每次串口都反馈能连上网络并提供本机ip,但从电脑和手机端都无法访问到开发板,试着搜索相关问题后也没有找到解答。

之后我尝试了QNEthernet库,问题一下迎刃而解了,本次项目的项目代码基于ServerWithListeners例程修改而来,代码逻辑较为简单,整体逻辑如图:

任务关键代码如下:

开发板接入网络后创建一个网页

IPAddress ip = state.client.remoteIP();
  printf("Sending to client: %u.%u.%u.%u\r\n", ip[0], ip[1], ip[2], ip[3]);
  state.client.writeFully("HTTP/1.1 200 OK\r\n"
                          "Connection: close\r\n"
                          "Content-Type: text/plain\r\n"
                          "\r\n"
                          "Hello, Client!\r\n"
                          "Print on to turn on the light!\r\n"
                          "Print off to turn off the light!\r\n");
  state.client.flush();

然后通过改网页的子页面实现led的开关控制

if (!flag){
      if ((str[5] == 'o')&&(str[6] == 'n')){
        digitalWrite(LED_BUILTIN, HIGH);
        printf("LED ON!\n");
        flag=1;
      }
      else if ((str[5] == 'o')&&(str[6] == 'f')&&(str[7] == 'f')){
        digitalWrite(LED_BUILTIN, LOW);
        printf("LED OFF!\n");
        flag=1;
      }
    }

最终实现了LED的闪烁:

活动感想

感谢eetree和得捷电子举办这次活动,teensy开发板一直是我很想体验的系列开发板,teensy2版本由于其hid功能的支持,曾一度是diy键盘的大火开发板之一,teensy3和4版本因为主频高,常常能在油管的控制类项目中看到,这次能体验到teensy4.1还是非常有意思的体验。小小的遗憾是nativethernet库一直没有调通。之前在论坛有看到teensy5的讨论,官方的说法似乎是原本22年就会有teensy5,但因为疫情的芯片断缺一再延期,24年的重心也在软件维护上了,期待更强大的teensy5的发布!

 

附件下载
ServerWithListeners.rar
团队介绍
个人开发者
团队成员
LISHIYANG
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号