eps32和ros2之稳稳点亮一个LED灯(IO4)

2023-11-04 00:50
文章标签 led ros2 点亮 稳稳 eps32 io4

本文主要是介绍eps32和ros2之稳稳点亮一个LED灯(IO4),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • esp32与ros2的开关灯

源码:

#include <ros2arduino.h>#include <WiFi.h>
#include <WiFiUdp.h>
#include <WiFiClient.h>
//#include <WebServer.h>
//#include <ESPmDNS.h>#define SSID       "***"
#define SSID_PW    "***"
#define AGENT_IP   "***"
#define AGENT_PORT *** //AGENT port number#define LED 4
#define PUBLISH_FREQUENCY 1 //hzchar ledflag=2;void publishString(std_msgs::String* msg, void* arg)
{(void)(arg);static int cnt = 0;if(ledflag==2){sprintf(msg->data, "欢乐的esp32和ros2 %d", cnt++);}else if(ledflag==0){sprintf(msg->data, "欢乐的esp32灯灭了 %d", cnt++);}else if(ledflag==1){sprintf(msg->data, "欢乐的esp32灯亮了 %d", cnt++);}
}class StringPub : public ros2::Node
{
public:StringPub(): Node("esp32_pub_node"){ros2::Publisher<std_msgs::String>* publisher_ = this->createPublisher<std_msgs::String>("esp32_chatter");this->createWallFreq(PUBLISH_FREQUENCY, (ros2::CallbackFunc)publishString, nullptr, publisher_);}
};WiFiUDP udp;WiFiServer server(80);void setup() 
{pinMode(LED, OUTPUT);WiFi.begin(SSID, SSID_PW);while(WiFi.status() != WL_CONNECTED);server.begin();ros2::init(&udp, AGENT_IP, AGENT_PORT);}void loop() 
{static StringPub StringNode;ros2::spin(&StringNode);WiFiClient client = server.available();   // listen for incoming clientsif (client) {                             // if you get a client,String currentLine = "";                // make a String to hold incoming data from the clientwhile (client.connected()) {            // loop while the client's connectedif (client.available()) {             // if there's bytes to read from the client,char c = client.read();             // read a byte, thenif (c == '\n') {                    // if the byte is a newline character// if the current line is blank, you got two newline characters in a row.// that's the end of the client HTTP request, so send a response:if (currentLine.length() == 0) {// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)// and a content-type so the client knows what's coming, then a blank line:client.println("HTTP/1.1 200 OK");client.println("Content-type:text/html");client.println();// the content of the HTTP response follows the header:client.print("Click <a href=\"/H\">here</a> to turn the LED on pin 4 on. cslg<br>");client.print("Click <a href=\"/L\">here</a> to turn the LED on pin 4 off. cslg<br>");//client.print("Click <a href=\"/Blink\">here</a> to turn the LED on pin 2 off. cslg<br>");// The HTTP response ends with another blank line:client.println();// break out of the while loop:break;} else {    // if you got a newline, then clear currentLine:currentLine = "";}} else if (c != '\r') {  // if you got anything else but a carriage return character,currentLine += c;      // add it to the end of the currentLine}// Check to see if the client request was "GET /H" or "GET /L":if (currentLine.endsWith("GET /H")) {digitalWrite(LED, LOW);               // GET /H turns the LED on//  sprintf(msg->data, "灯亮了");ledflag=1;}if (currentLine.endsWith("GET /L")) {digitalWrite(LED, HIGH);                // GET /L turns the LED off//  sprintf(msg->data, "灯灭了");ledflag=0;}}}// close the connection:client.stop();}
}

***需要自己依据网络情况配置。 


默认灯亮,显示欢乐esp32和ros2。

点击off,效果如下:

点击on 

显示1s一次,有滞后,再关闭。

多次测试后:

稳定工作10分钟,问题不大。最多测试1小时。


 -后续,esp32做成ros2机器人遥控器-


 

 

 

 

 

这篇关于eps32和ros2之稳稳点亮一个LED灯(IO4)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/342060

相关文章

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯

MENU 硬件电路设计软件程序设计正常流水LED灯反复流水LED灯移动流水LED灯 硬件电路设计 材料名称数量直插式LED1kΩ电阻杜邦线(跳线)若干面包板1 每一个LED的正极与开发板一个GPIO引脚相连,并串联一个电阻,负极接GND。 当然也可以选择只使用一个电阻。 软件程序设计 正常流水LED灯 因为要用到多个GPIO引脚,所以最好把所有的GPI

什么是LED智能会议一体机?COB超微小间距LED会议一体机大势所趋

LED智能会议一体机,作为现代会议室革新的核心装备,正逐步颠覆传统会议模式的界限。它不仅仅是一台集成了高清显示、触控互动、音视频处理及远程协作等功能于一体的智能设备,更是推动会议效率与体验双重飞跃的关键力量。随着技术的不断进步,特别是COB(Chip On Board)超微小间距LED技术的引入,LED智能会议一体机正迎来前所未有的发展机遇,成为大势所趋。 COB技术通过将LED芯片直接封装在基

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光 一,前言二,资源包内容三,免费获取资源包 一,前言 在创意的世界里,每一个细节都能决定一个项目的独特魅力。今天,要向大家介绍一款令人惊艳的粒子效果包 ——Super Confetti FX。 二,资源包内容 💥充满活力与动态,是 Super Confetti FX 最显著的标签。它宛如一位

全倒装COB超微小间距LED显示屏的工艺技术,相比SMD小间距有何优势

全倒装COB(Chip On Board)超微小间距LED显示屏,在工艺技术上的革新,相较于传统的SMD(Surface Mount Device)小间距LED显示屏,展现出了多方面的显著优势。 首先,全倒装技术极大地提升了LED芯片的散热性能。通过将芯片直接焊接在基板上,减少了热阻,使得热量能够更快速地传导至基板并散发出去,有效避免了因高温导致的光衰和色彩偏移问题,从而保证了显示屏的长期稳定性

没资料的屏幕怎么点亮?思路分享

这次尝试调通一个没资料的屏幕,型号是HYT13264,这个是淘宝上面的老王2.9元屏,成色很好但是长期库存没有资料和代码能点亮,仅仅只有一个引脚定义。这里我使用Arduino Nano作为控制器尝试点亮这个模块。 首先,已知别人找出来的线序如下 1 - CS2 - RST 3 - DC4 - SCK5 - SDA6 - VCC7 - GND8 - K59 - K410

RK3288 点亮LVDS屏

本文记录调试 LVDS接口屏的一些关键步骤,主要是dts文件中关于 频率、分辨率 、时序参数的设置  环境: RK3288 9tripod CV5  linux 4.4.189 LCD:JYT121XQ01 (追曦 DS1212)12.1电容触控屏   查看屏幕规格书    只要在rockchip dts 中 设置 T(HB)=Thb+Thf+Thsyn=320clock  T

STM32CubeMX 1 创建一个新工程 利用时钟点亮LED KEIL5 Jlink配置

直接上ST的官网下载STM32CubeMX安装 地址: 单片机:STM32F103C8T6 带外部8MHz晶振 目的:利用Timer和使LED按照1Hz的频率闪烁。 在此方面学霸级人物的指引下学习了,并写此文章记录,以防忘记。 新建工程 出现如下界面,中央就是这个封装的引脚图: 接下来开始配置 1. 设置外部晶振接口在PD0和PD1 单机想要配置的引脚,出现选择菜单。

LED显示屏维修技巧与常见问题

LED显示屏作为现代显示技术的重要组成部分,广泛应用于广告、信息发布、公共显示等多个领域。然而,随着使用时间的增长,LED显示屏难免会出现各种问题。本文将探讨LED显示屏维修的一些小技巧以及常见的问题,帮助用户更好地维护和延长显示屏的使用寿命。 LED显示屏维修小技巧 1. 快速定位问题 当LED显示屏出现问题时,首先需要快速定位故障部位。这通常涉及到对显示屏的初步检查,包括电源

基于 AC 驱动的电容结构 GaN LED 模型开发和应用

随着芯片尺寸减小,微小尺寸GaN 基 Micro LED 显示面临着显示与驱动高密度集成的难题,传统直流(DC)驱动技术会导致结温上升,降低器件寿命。南京大学团队创新提出交流(AC)驱动的单电极 LED(SC-LED)结构【见图1】,利用隧穿结(TJ)降低器件的交流工作电压。为了深入理解该器件的工作原理,我司技术团队开发了基于 AC 驱动的物理解析模型,揭示了隧穿结降低器件工作电压的