机器人编程趣味实践01-简要介绍
2023-03-31 10:31:15 时间
历经6年打磨,5轮测试,机器人编程趣味实践将逐步更新。涵盖windows、linux双系统,涉及硬件平台有手表、手机、电脑和机器人等。
- 彩蛋---是虚拟现实或增强现实设备,有时间才会更新哦
从简单命令行交互开启:
融合手表、手机和电脑,有终端到图形化界面:
网络涵盖无线wifi、串口serial等示例:
网络端多平台多终端互联互通:
所有案例都可靠运行。案例涉及的代码或算法会详细讲解,配图之下都会给出相应知识点和脉络的具体链接,供有兴趣的朋友查阅。
部分内容会制作视频,嵌入到博客中。
上面图中涉及代码细节如:
- 动态甜甜圈:https://blog.csdn.net/ZhangRelay/article/details/109863427
- 小乌龟画线:https://blog.csdn.net/ZhangRelay/article/details/98754130
全部课程内容测试修正后,会发布镜像方便直接使用,关于镜像往事如下:
- 机器人实践:https://blog.csdn.net/ZhangRelay/article/details/103868465
- 控制理论案例:https://zhangrelay.blog.csdn.net/article/details/114101789
知识脉络点起源:
此文中手表的arduino代码如下(选用ESP32核心):
国产芯片,并且是青少年机器人等级考试官方指定教材所用核心 相关内容详细介绍:https://blog.csdn.net/ZhangRelay/article/details/115909178 主要软硬件平台为arduino+ESP32!
可见一段C++程序必然包含,头文件、注释、变量、初始化和主函数等,详细细节下一节具体介绍。
头文件.h
// => Hardware select
// #define LILYGO_WATCH_2019_WITH_TOUCH // To use T-Watch2019 with touchscreen, please uncomment this line
// #define LILYGO_WATCH_2019_NO_TOUCH // To use T-Watch2019 Not touchscreen , please uncomment this line
#define LILYGO_WATCH_2020_V1 //To use T-Watch2020, please uncomment this line
// #define LILYGO_WATCH_2020_V2 //To use T-Watch2020 V2, please uncomment this line
// #define LILYGO_WATCH_2020_V3 //To use T-Watch2020 V3, please uncomment this line
// NOT SUPPORT ...
#define LILYGO_WATCH_BLOCK
// NOT SUPPORT ...
// => Function select
#define LILYGO_WATCH_LVGL //To use LVGL, you need to enable the macro LVGL
#include <LilyGoWatch.h>
主代码.c
#include "config.h"
TTGOClass *ttgo;
static void event_handler(lv_obj_t *obj, lv_event_t event)
{
if (event == LV_EVENT_CLICKED) {
Serial.printf("Hi Robot
");
} else if (event == LV_EVENT_VALUE_CHANGED) {
Serial.printf("Have Fun
");
}
}
void setup()
{
Serial.begin(19200);
ttgo = TTGOClass::getWatch();
ttgo->begin();
ttgo->openBL();
ttgo->lvgl_begin();
lv_obj_t *label;
lv_obj_t *btn1 = lv_btn_create(lv_scr_act(), NULL);
lv_obj_set_event_cb(btn1, event_handler);
lv_obj_align(btn1, NULL, LV_ALIGN_CENTER, 0, -40);
label = lv_label_create(btn1, NULL);
lv_label_set_text(label, "Robot");
lv_obj_t *btn2 = lv_btn_create(lv_scr_act(), NULL);
lv_obj_set_event_cb(btn2, event_handler);
lv_obj_align(btn2, NULL, LV_ALIGN_CENTER, 0, 40);
lv_btn_set_checkable(btn2, true);
lv_btn_toggle(btn2);
lv_btn_set_fit2(btn2, LV_FIT_NONE, LV_FIT_TIGHT);
label = lv_label_create(btn2, NULL);
lv_label_set_text(label, "Fun");
}
void loop()
{
lv_task_handler();
delay(1);
}
相关文章
- Linux 性能监测:CPU
- 徐葳:生物医学影像处理、分布式系统与数据共享平台
- 2015年中国在线医疗行业研究报告(多图)
- 【云栖风向标】VOL.1:勒索病毒频发!445端口守护指南
- 阿里云高可用-容灾解决方案
- 跨地域的VPC私网互通【高速通道案例】
- 人类基因编辑国际峰会周琪院士谈基因编辑的未来
- 从视觉检测窥探人类大脑和数字大脑的差别
- 壮大的Hadoop生态系统:十大炫酷项目简介
- 如何在Linux上配置基于Web的网络流量监控系统
- 戴文的Linux内核专题:09 配置内核(5)
- 如何在Linux的桌面上创建快捷方式或启动器
- 戴文的Linux内核专题:10 配置内核(6)
- 如何在Linux下监控系统温度
- 九个uname命令获取Linux系统详情的实例
- Uber全揭露:技术团队、反欺诈算法、数据分布
- 11个Linux基础面试问题
- 那些算法在哪里?
- Recoll:Unix和Linux桌面的文本搜索工具
- 大数据助力制造业传承:像经营企业那样去经营数据