【基于腾讯云的远程机械臂小车】
【基于腾讯云的远程机械臂小车】
- 1. 项目来源
- 1.1 项目概述
- 1.2 系统结构
- 1.3 设计原理
- 2. 硬件搭建
- 2.1 CH32V307开发板
- 2.2 Arduino mega2560
- 2.3 富斯I6遥控器
- 2.4 机械臂小车
- 2.5 ESP8266 MCU
- 2.5.1 ESP8266 MCU介绍
- 2.5.2 腾讯云固件烧录
- 3. 软件设计
- 3.1 两种控制方式
- 3.1.1 富斯I6遥控机械臂小车
- 3.1.2 腾讯云遥控机械臂小车
- 3.2 任务逻辑调度
- 4. 实验测试
- 5. 总结
1. 项目来源
项目源码地址:https://gitcode.net/VOR234/robot_arm_car/-/blob/master/TencentOS-tiny123.zip
https://gitee.com/vor2345/robot_arm_car
程序分别
视频演示:https://www.bilibili.com/video/BV15M4y1D7MD/?vd_source=530bf85167de80ff1628de3bdb9da898
基于腾讯云的远程机械臂小车
1.1 项目概述
随着科技的日益发达,人类社会正在向自动化,智能化的方向快速发展。机械臂履带车可以提高户外的生产效率,减少人力成本,提高工作效率,改善工作环境,提高安全性,减少事故发生率,有利于促进社会经济的发展,因此设计出机械臂来代替人的手臂也就显得很有必要。本文基于CH32V307开发板开发了智能移动履带机械臂小车,通过WIFI无线网络接入腾讯云物联网平台IoT Explorer,实现了在腾讯连连小程序上能够实时在线控制和在线监测运动数据。
1.2 系统结构
系统采用CH32V307作为核心控制单元,处理客户端发送的命令并将控制信号发送给Arduino。Arduino作为底层驱动控制机械臂和履带的运动。该智能机械臂履带车可以通过两种方式进行控制,第一种控制方式是用户通过微信小程序腾讯连连实现远程运动控制和运动数据监测;第二种控制方式是通过RC遥控器进行近程控制,系统结构如图所示:
1.3 设计原理
CH307开发板是基于腾讯物联网终端操作系统TencentOS tiny构建。设计两个线程,第一个线程是负责无线数据接入腾讯云IoT Explorer,设计设备联网控制与数据交互功能;第二个线程是与Arduino mega2560 双向通讯,设计对应的通讯数据协议以及两种控制模式的切换(腾讯云和富斯遥控器)。
2. 硬件搭建
此部分设计包含主要模块的功能介绍和连接组成,其中简明材料明细表如下
名称 | 功能介绍 |
---|---|
CH32V307开发板 | 系统信息交互中枢 |
Arduino Mega2560开发板 | 底层驱动与CH32V307通讯 |
富斯I6遥控器 | 2.4G近距离遥控 |
机械臂小车 | 控制对象 |
ESP8266 MCU开发板 | 发布和订阅腾讯云信息 |
2.1 CH32V307开发板
CH32V307是沁恒微电子基于32位RISC-V设计的高性能、低功耗互联型微控制器,产品特点:
MCU:CH32V307VCT6,主频 144MHz,FLASH和RAM可配置
LED:2个,用户 LEDs, LED1(blue),LED2(red)。
按键:3个,Reset, User 和 Download。
USB:2个,Tpye-C。
网口:1个,内置 10M PHY。
板载 WCH-Link 下载调试工具。
系统框图
本次项目采用沁恒微电子官方推出的开发板,如下图所示:
2.2 Arduino mega2560
Arduino Mega 2560是基于ATmega2560的主控开发板。Arduino Mega2560是采用USB接口的核心电路板。具有54路数字输入输出,适合需要大量IO接口的设计。
规格参数:
工作电压:5V
推荐输入电压范围:7-12V
输入电压范围:6-20V
数字输入输出口:54
模拟输入输出口:16
每个I/O口的输出电流:40mA
3.3V管脚的输出电流:50mA
内存空间:256KB
SRAM:8KB
EEPROM:4KB
时钟频率:16MHz
2.3 富斯I6遥控器
FS- i6是一款支持固定翼/滑翔机/直升机模式的入门级首选发射机。搭载AFHDS 2A协议,可升级至10通道,中英文固件,满足不同用户的需求。
规格参数:
产品型号:FS- i6
通道个数:6
支持模型:固定翼/滑翔机/直升机/船
无线频率 :2.4G
发射功率 :< 20 dBm
无线协议: AFHDS 2A
遥控距离:500~1500m(空中)
通道分辨率:4096
电池 :1.5AA*4
充电接口:无 低电压报警 :<4.2V
天线类型 :双天线
显示屏:STN半透正显,LCD128x64点阵,
语言:中英文
数据接口 :PS/2(PPM)
温度范围:-10℃—+60℃
湿度范围:20%-95%
在线更新:是
遥控器颜色:黑色
外形尺寸:174x89x190mm
机身重量 : 392g
认证 CE,RCM,PAHS,FCC ID:N4ZFLYSKYI6
2.4 机械臂小车
机械臂为3R结构,由3个A4988驱动3个42步进电机进行控制(这三个电机会在腾讯云界面显示,小车底盘驱动选择遥控器接收机的其他通道),详细的DH参数解算及仿真模拟如下:
DH参数解算板书
MATLAB仿真代码:
%% 机械臂建模
% 定义各个连杆以及关节类型,默认为转动关节
% theta d a alpha
L1=Link([ 0 0 6 pi/2 ], 'standard'); % [四个DH参数], options
L2=Link([ 0 0 14 0], 'standard');
L3=Link([ 0 0 17 0], 'standard');robot=SerialLink([L1,L2,L3]); % 将四个连杆组成机械臂
robot.name='505Arm';
robot.display();
view(2); % 解决robot.teach()和plot的索引超出报错
robot.teach();
robot.plot([0 0 0]);
界面显示
模拟控制视频
根据仿真和自身三个电机有机械限位,运动范围都是在0~90度之间,末端活动范围主要在小车的正前方。
2.5 ESP8266 MCU
2.5.1 ESP8266 MCU介绍
ESP8266-NodeMCU是一个开源硬件开发板,由于它支持WIFI功能,所以在物联网(IOT)领域,Arduino开发板最大的对手之一就是ESP8266-NodeMCU开发板。😀😀😀
ESP8266-NodeMCU尺寸与Nano类似,他并不是Arduino团队开发的,但是我们也可以使用Arduino IDE对他进行开发。而且他还有一颗地道的“中国芯”—ESP8266模块。😅😅😅
想深度学习的可以试试:ESP8266-NodeMCU物联网开发之Arduino环境搭建:https://blog.csdn.net/VOR234/article/details/121100577
2.5.2 腾讯云固件烧录
esp8266 nodemcu模块需要烧写腾讯云定制固件后,才能连接到腾讯云平台,实现与腾讯云平台的数据交互,能够实现WIFI账号密码配置、MQTT连接、订阅、发布等功能。
乐鑫官网提供esp8266腾讯云AT固件:
https://bbs.21ic.com/forum.php?mod=attachment&aid=MjA0MDkzOHwzY2RkODkyNHwxNjc2NDM1ODc3fDMzOTMwMDZ8MzI3MjQxNg%3D%3D
使用乐鑫提供的esptool工具烧录即可,具体怎么烧录如下:
3. 软件设计
此部分介绍两种控制方式和任务逻辑调度
3.1 两种控制方式
分别是 富斯I6和腾讯云遥控机械臂小车。第一种响应速度快,遥控距离有限;第二种相应速度慢,有网络连接腾讯云就可以无距离限制。
3.1.1 富斯I6遥控机械臂小车
接线图介绍
RC遥控方案选用的为富斯的I6遥控器和IA6B接收机,其中123通道分别负责3R机械臂的3个步进电机的运动,45通道分别负责两个带动履带的有刷电机。在履带控制方面需要开启混控才能实现转向,例如要实现履带的左转功能,需将主通道设为4,混控通道设置为5并设为-100%,当右摇杆向左打时,5号通道的信号为4号通道的负值,即可实现两侧电机的不同方向旋转。同时,由于接收机上每个通道都有正负极且电压都为5V,可以为单片机供电。
IA6B接收机
I6遥控器
下面给出富斯I6遥控器与Arduino mega2560控制三个电机的控制代码
控制代码:
#include <AccelStepper.h> //定义RC接收机引脚
int ch22 = 22;
int ch23 = 23;
int ch24 = 24;signed int pluse = 80;
signed int k1 = 0;
signed int k2 = 0;
signed int k3 = 0;
signed long setposition1 = 0;
signed long setposition2 = 0;
signed long setposition3 = 0;// 定义电机控制用常量
const int enablePin = 8; // 使能控制引脚// A4988连接Arduino引脚号
const int xdirPin = 5; // x方向控制引脚
const int xstepPin = 2; // x步进控制引脚
const int ydirPin = 6; // y方向控制引脚
const int ystepPin = 3; // y步进控制引脚
const int zdirPin = 7; // z方向控制引脚
const int zstepPin = 4; // z步进控制引脚AccelStepper stepper1(1, xstepPin, xdirPin);
AccelStepper stepper2(1, ystepPin, ydirPin);
AccelStepper stepper3(1, zstepPin, zdirPin);
//建立步进电机对象void setup()
{Serial.begin(9600);pinMode(xstepPin, OUTPUT); // Arduino控制A4988步进引脚为输出模式pinMode(xdirPin, OUTPUT); pinMode(ystepPin, OUTPUT); pinMode(ydirPin, OUTPUT);pinMode(zstepPin, OUTPUT);pinMode(zdirPin, OUTPUT);// Arduino控制A4988方向引脚为输出模式pinMode(enablePin, OUTPUT); // Arduino控制A4988使能引脚为输出模式digitalWrite(enablePin, LOW); // 将使能控制引脚设置为低电平从而让// 电机驱动板进入工作状态stepper1.setMaxSpeed(4000.0); // 设置电机最大速度300stepper1.setAcceleration(500.0); // 设置电机加速度20.0stepper2.setMaxSpeed(4000.0); // 设置电机最大速度300stepper2.setAcceleration(500.0); // 设置电机加速度20.0stepper3.setMaxSpeed(4000.0); // 设置电机最大速度300stepper3.setAcceleration(500.0); // 设置电机加速度20.0
}void loop(){if (pulseIn(ch22, HIGH) > 900 && pulseIn(ch22, HIGH) < 1200){k1 = k1 + 1;}else if (pulseIn(ch22, HIGH) > 1800 && pulseIn(ch22, HIGH) < 2100){k1 = k1 - 1;}else if (pulseIn(ch23, HIGH) > 900 && pulseIn(ch23, HIGH) < 1200){k2 = k2 + 1;}else if (pulseIn(ch23, HIGH) > 1800 && pulseIn(ch23, HIGH) < 2100){k2 = k2 - 1;}else if (pulseIn(ch24, HIGH) > 900 && pulseIn(ch24, HIGH) < 1200){k3 = k3 + 1;}else if (pulseIn(ch24, HIGH) > 1800 && pulseIn(ch24, HIGH) < 2100){k3 = k3 - 1;}setposition1 = k1 * pluse;setposition2 = k2 * pluse;setposition3 = k3 * pluse;Serial.print(pulseIn(ch22, HIGH));Serial.print(",");Serial.print(pulseIn(ch23, HIGH));Serial.print(",");Serial.print(pulseIn(ch24, HIGH));Serial.print(",");Serial.print(setposition1);Serial.print(",");Serial.print(setposition2);Serial.print(",");Serial.println(setposition3);stepper1.moveTo(setposition1);//stepper1.run(); // 1号电机运行stepper1.runToPosition();stepper2.moveTo(setposition2);//stepper2.run(); // 2号电机运行stepper2.runToPosition();stepper3.moveTo(setposition3);//stepper3.run(); // 3号电机运行stepper3.runToPosition();
}
3.1.2 腾讯云遥控机械臂小车
物联网云平台搭建,登录 物联网开发平台 https://console.cloud.tencent.com/iotexplorer ,选择公共实例
具体搭建可参考:基于CH32V307和TtencentOS Tiny的物联网心率监测:https://bbs.21ic.com/icview-3272416-1-1.html
最后效果,物理模型如下
小程序控制面板定义
三元素查看,此部分会在代码中定义连接腾讯云。
3.2 任务逻辑调度
可以使用MRS选择呢CH32V307建立一个带有TencentOS工程文件,也可以使用TencentOS自带的文件。gitee可以下载到 TencentOS-tiny的源代码:https://gitee.com/Tencent/TencentOS-tiny
本次CH307设计了两个线程,第一个线程是MQTT发布订阅,另外一个线程是与Arduino双向通讯,通过虚拟开关和实体开关开切换。
程序部分架构主要参考基于CH32V307&腾讯连连小程序的二氧化碳TVOC环境监测仪:https://bbs.21ic.com/icview-3273948-1-1.html,在此非常感谢🎉🎉🎉
4. 实验测试
按照硬件需求检查接线,然后开始测试,可以打开腾讯云实时查看上发数据
打开手机APP
需要通过虚拟开关和实体开关开切换控制模式,目前只支持先腾讯云后富斯遥控器顺序,因此开关闭合使得Arduino的13号(默认拉高)引脚输出低电平。
视频演示:https://www.bilibili.com/video/BV15M4y1D7MD/?vd_source=530bf85167de80ff1628de3bdb9da898
5. 总结
- 这是我第三次参加嵌入式相关的网上比赛活动,第一次是RT-Thread的【基于RT-Thread+RA6M4的智能鱼缸系统设计之鱼我所欲也】活动,作品是2022年暑假做的获得第六名,还是比较开心!第二次2023年寒假做的是基于MAX7800羽毛板语音控制ESP8266小车,成绩还没有出来,感觉还不错。
- 这次最大的收获是实现了两种远程控制方式进行通讯,腾讯云打通实在不可思议,幸亏朱宇飞克服遥控器控制,让我备受鼓舞!
- 这次最大的遗憾是腾讯云的小程序控制延时较大感觉有两秒左右,大家也可以尝试优化程序任务的空间复杂度,来减少影响。
- 非常感谢沁恒微电子官方组织的第二届“RISC-V MCU 创新应用大赛”,大家都为这个国内嵌入式生态出一份力,只要努力认真做了都会有所收获,期盼这些作品在将来某一天为构建美好未来贡献一份微博之力!
我后期会持续更新我测评的一系列国内开发板测评,🛹🛹🛹每天都一点点结合实际需求联动丰富生活,从而实现对外部世界进行充分的感知,尽最大努力认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣
🥳🥳🥳再次非常感谢硬禾官方支持和朱宇飞同学(遥控器玩的贼溜)等等🥳🥳🥳期待这一次的成绩哟!
参考文献:
- CH32V307使用GPIO模拟I2C驱动TVOC、CO2eq传感器SGP30:https://bbs.21ic.com/icview-3273394-1-1.html
- 基于CH32V307&腾讯连连小程序的二氧化碳TVOC环境监测仪:https://bbs.21ic.com/icview-3273948-1-1.html
- 基于CH32V307和TtencentOS Tiny的物联网心率监测:https://bbs.21ic.com/icview-3272416-1-1.html
- CH32V307数据手册:https://www.wch.cn/downloads/CH32V20x_30xDS0_PDF.html
- CH32V307参考手册:https://www.wch.cn/downloads/CH32FV2x_V3xRM_PDF.html
- 评估板说明及参考例程:https://www.wch.cn/downloads/CH32V307EVT_ZIP.html
- CH343SER.ZIP串口地址:https://www.wch.cn/downloads/CH343SER_ZIP.html
- MRS最新V1.51版本安装包:www.mounriver.com
- 环境搭建教程:https://blog.csdn.net/VOR234/article/details/128932474
- 【沁恒WCH CH32V307V-R1开发板两路ADC读取实验】:https://blog.csdn.net/VOR234/article/details/128941074
- 【沁恒WCH CH32V307V-R1开发板读取板载温度实验】:https://blog.csdn.net/VOR234/article/details/128941832
- 【沁恒WCH CH32V307V-R1开发板输出DAC实验】:https://blog.csdn.net/VOR234/article/details/128942550
- 【沁恒WCH CH32V307V-R1的单线半双工模式串口通讯】:
https://blog.csdn.net/VOR234/article/details/128943395 - 【沁恒WCH CH32V307V-R1与Arduino的串口通讯】:https://blog.csdn.net/VOR234/article/details/128993169
相关文章:
【基于腾讯云的远程机械臂小车】
【基于腾讯云的远程机械臂小车】1. 项目来源1.1 项目概述1.2 系统结构1.3 设计原理2. 硬件搭建2.1 CH32V307开发板2.2 Arduino mega25602.3 富斯I6遥控器2.4 机械臂小车2.5 ESP8266 MCU2.5.1 ESP8266 MCU介绍2.5.2 腾讯云固件烧录3. 软件设计3.1 两种控制方式3.1.1 富斯I6遥控机…...
兼职任务平台收集(一)分享给有需要的朋友们
互联网时代,给人们带来了很大的便利。信息交流、生活缴费、足不出户购物、便捷出行、线上医疗、线上教育等等很多。可以说,网络的时代会一直存在着。很多人也在互联网上赚到了第一桶金,这跟他们的努力和付出是息息相关的。所谓一份耕耘&#…...
MarkDown中公式的编辑
MarkDown中公式的编辑生成目录积分插入编号常见希腊字母大小写分式括号求和积分连乘根式三角函数运算符集合运算箭头逻辑运算符约等于向量绝对值申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计1077字&…...
解决jupyter以及windows系统中pycharm编译器画图的中文乱码问题大全
一、jupyter环境下中文乱码问题解决 我们在jupyter的notebook中使用matplotlib画图的时候,经常性的会遇见一些中文乱码显示□的情况,如下所示: 在此,网上给出的方法大多是以下的解决方法: import matplotlib.pyplot as pltplt.rcParams[fo…...
06 OpenCV 阈值处理、自适应处理与ostu方法
1 基本概念 CV2中使用阈值的作用是将灰度图像二值化,即将灰度图像的像素值根据一个设定的阈值分成黑白两部分。阈值处理可以用于图像分割、去除噪声、增强图像对比度等多个领域。例如,在物体检测和跟踪中,可以通过对图像进行阈值处理来提取目…...
RFC7519规范-JWT - json web token
简介 什么是JWT(JSON Web Token) 在介绍JWT之前,我们先来回顾一下利用token进行用户身份验证的流程: 客户端使用用户名和密码请求登录服务端收到请求,验证用户名和密码验证成功后,服务端会签发一个token,再把这个to…...
移动机器人设计与实践课程大纲
MiR移动机器人参考资料:图一 西北工业大学-课程平台图二 清华大学出版社-移动机器人目前,基本都是双一流大学开设此类课程,并且都是至少3-4学分,16学时/学分,48-64学时。(⊙﹏⊙),难办了。咱这只有…...
Lesson 7.2 Mini Batch K-Means与DBSCAN密度聚类
文章目录一、Mini Batch K-Means 算法原理与实现二、DBSCAN 密度聚类基本原理与实践1. K-Means 聚类算法的算法特性2. DBSCAN 密度聚类基本原理3. DBSCAN 密度聚类的 sklearn 实现除了 K-Means 快速聚类意外,还有两种常用的聚类算法。(1) 是能…...
11.Dockerfile最佳实践
Dockerfile 最佳实践 Docker官方关于Dockerfile最佳实践原文链接地址:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ Docker 可以通过从 Dockerfile 包含所有命令的文本文件中读取指令自动构建镜像,以便构建给定镜像。 …...
【企业云端全栈开发实践-1】项目介绍及环境准备、Spring Boot快速上手
本节目录一、 项目内容介绍二、Maven介绍2.1 Maven作用2.2 Maven依赖2.3 本地仓库配置三、Spring Boot快速上手3.1 Spring Boot特点3.2 遇到的Bug:spring-boot-maven-plugin3.3 遇到的Bug2:找不到Getmapping四、开发环境热部署一、 项目内容介绍 本课程…...
5-HT2A靶向药物|适应症|市场销售-上市药品前景分析
据世界卫生组织称,抑郁症是一种多因素疾病,影响全球约3.5 亿人。中枢神经系统最广泛的单胺 - 血清素 (5-HT) 被认为在这种情况的病理机制中起着至关重要的作用,并且神经递质的重要性被“血清素假说”提升,将抑郁症的存在联系起来 …...
HTTPS协议原理---详解
目录 一、HTTPS 1.加密与解密 2.我们为什么要加密? 3.常见加密方式 ①对称加密 ②非对称加密 4.数据摘要 5.数字签名 二、HTTPS的加密方案 1.只是用对称加密 2.只使用非对称加密 3.双方都使用非对称加密 4.非对称加密+对称加密 中间人攻…...
Pytest学习笔记
Pytest学习笔记 1、介绍 1.1、单元测试 单元测试是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试 1.2、单元测试框架 测试发现:从多个py文件里面去找到我们测试用例测试执行:按…...
Fuzz概述
文章目录AFL一些概念插桩与覆盖率边和块覆盖率afl自实现劫持汇编器clang内置覆盖率反馈与引导变异遗传算法fork server机制AFL调试准备AFL一些概念 插桩与覆盖率 边和块 首先,要明白边和块的定义 正方形的就是块,箭头表示边,边表示程序执行…...
区块链知识系列 - 系统学习EVM(四)-zkEVM
区块链知识系列 - 系统学习EVM(一) 区块链知识系列 - 系统学习EVM(二) 区块链知识系列 - 系统学习EVM(三) 今天我们来聊聊 zkEVM、EVM 兼容性 和 Rollup 是什么? 1. 什么是 Rollup rollup顾名思义,就是把一堆交易卷(rollup)起来…...
Leetcode.2341 数组能形成多少数对
题目链接 Leetcode.2341 数组能形成多少数对 Rating : 1185 题目描述 给你一个下标从 0 开始的整数数组 nums。在一步操作中,你可以执行以下步骤: 从 nums选出 两个 相等的 整数从 nums中移除这两个整数,形成一个 数对 请你在 nums上多次执…...
C++复习笔记10
1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。 3. list与for…...
leaflet 纯CSS的marker标记,不用图片来表示(072)
第072个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中使用纯CSS来打造marker的标记。这里用到的是L.divIcon来引用CSS来构造新icon,然后在marker的属性中引用。 这里必须要注意的是css需要是全局性质的,不能被scoped转义为其他随机的css。 直接复制下面的 v…...
Elasticsearch:使用 intervals query - 根据匹配项的顺序和接近度返回文档
Intervals query 根据匹配项的顺序和接近度返回文档。Intervals 查询使用匹配规则,由一小组定义构成。 然后将这些规则应用于指定字段中的术语。 这些定义产生跨越文本正文中的术语的最小间隔序列。 这些间隔可以通过父源进一步组合和过滤。 上述描述有点费解。我…...
无法决定博客主题的人必看!如何选择类型和推荐的 5 种选择
是否有人不能迈出第一步,因为博客的类型还没有决定?有些人在出发时应该行动,而不是思考,但让我们冷静下来,仔细想想。博客的难度因流派而异,这在很大程度上决定了随后的发展。因此,在选择博客流…...
数字化转型的成功模版,珠宝龙头曼卡龙做对了什么?
2月11日,曼卡龙(300945.SZ)发布2022年业绩快报,报告期内,公司实现营业收入16.11亿元,同比增长28.63%。来源:曼卡龙2022年度业绩快报曼卡龙能在2022年实现营收增长尤为不易。2022年受疫情影响&am…...
转换矩阵、平移矩阵、旋转矩阵关系以及python实现旋转矩阵、四元数、欧拉角之间转换
文章目录1. 转换矩阵、平移矩阵、旋转矩阵之间的关系2. 缩放变换、平移变换和旋转变换2. python实现旋转矩阵、四元数、欧拉角互相转化由于在平时总是或多或少的遇到平移旋转的问题,每次都是现查资料,然后查了忘,忘了继续查,这次弄…...
中国地图航线图(echarjs)
1、以上为效果图 需要jq、echarjs、china.json三个文件支持。以上 2、具体代码 DOM部分 <!-- 服务范围 GO--> <div class"m-maps"><div id"main" style"width:1400px;height: 800px; margin: 0 auto;"> </div> <!-…...
Python正则表达式中group与groups的用法详解
本文主要介绍了Python正则表达式中group与groups的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧目录在Python中,正则表达式的group和groups方…...
c++练习题7
1.下列运算符中优先级最高的是 A)> B) C) && D)! 2.以下关于运算符优先级的描述中,正确的是 。 A)!(逻辑非&#x…...
MySQL学习
目录1、数据库定义基本语句(1)数据库操作(2)数据表操作2.数据库操作SQL语句(1)插入数据(2)更新语句(3)删除数据3.数据库查询语句(1)基…...
C语言(强制类型转换)
一.类型转换原则 1.升级:当类型转换出现在表达式时,无论时unsigned还是signed的char和short都会被自动转换成int,如有必要会被转换成unsigned int(如果short与int的大小相同,unsigned short就比int大。这种情况下,uns…...
搭建hadoop高可用集群(二)
搭建hadoop高可用集群(一)配置hadoophadoop-env.shworkerscore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml/etc/profile拷贝集群首次启动1、先启动zk集群(自动化脚本)2、在hadoop151,hadoop152,hadoop153启动JournalNode…...
CentOS升级内核-- CentOS9 Stream/CentOS8 Stream/CentOS7
官方文档在此 升级原因 当我们安装一些软件(对,我说的就是Kubernetes),可能需要新内核的支持,而CentOS又比较保守,不太升级,所以需要我们手工升级. # 看下目前是什么版本内核 uname -a# 安装公钥 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org# 添加仓库,如果…...
【基础篇】一文掌握css的盒子模型(margin、padding)
1、CSS 盒子模型(Box Model) 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素…...
http文件转wordpress/百度极简网址
cl_cache的定位还未设定: cl_cache 这是一种机制,用于缓存应用程序以文本形式提供的 OpenCL 内核的二进制表示。通过存储二进制表示,只需要第一次编译,这提高了性能。 在工作目录中,手动创建 cl 缓存目录。驱动程序将使…...
wordpress数据库主机填什么/营销技巧和营销方法培训
修复表中的名字 # Write your MySQL query statement below select user_id, CONCAT(Upper(left(name, 1)), Lower(substring(name, 2))) name from Users order by user_id;使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NU…...
网站制作价格范围/学企业管理培训班
今天考试,然后碰到一个数据类型的问题,气死我了。 int --->4B unsigned int ->4B unsigned short ->2B long a->8B unsigned short a->2B short a->2B unsigned long a->8B long long a->4B转载于:https://www.cnblogs.com/epir…...
网站开发课程软件/百度搜索引擎广告
引言 React Native是现在移动开发新的可选方案,也带来了原属于Web领域的React的优秀开发特性。另一方面,React Native的技术栈一经掌握,可以用于iOS、Android及Windows(见此)多个平台,即所说的“learn once…...
cnnic网站/关键词优化排名的步骤
GP2.10 Review the activities,status,and results of XXX process with highter level management and resolve issues. 中文大意是:高级别的领导检查该过程的活动、状态和结果,并解决问题。 CMM中的要求是高层领导(hight management),而CMM…...
做家政网站公司名称/seo优化软件哪个好
Idea 的 task server 配置为 Gitlab 个人站点 http://ronnie.wang 找到配置窗口,Preferences -> Tools -> Tasks -> Servers 点击加号,添加 Gitlab 点击增加之后的条目,可以看到下面的配置项 在 Server URL 填 Gitlab 服务器的…...