首页
留言板
友链
统计
Search
1
树莓派换源最新教程及注意事项(更换为清华源)
1,616 阅读
2
Alist上传大文件报错Request failed with status code 413
715 阅读
3
google colab打包下载文件夹
656 阅读
4
Luat Air780E/Air700E使用MQTT协议接入巴法云物联网平台
386 阅读
5
Luat Air780E/Air700E获取设备经纬度后使用MQTT协议发送至巴法云
364 阅读
嵌入式笔记
stm32
esp8266
raspberry-pi
esp32
机器视觉笔记
opencv
yolo
typecho笔记
vps
typecho美化
悄悄话
登录
Search
标签搜索
esp8266
air700e
typecho
onenet
mediapipe
悄悄话
星星
累计撰写
34
篇文章
累计收到
31
条评论
首页
栏目
嵌入式笔记
stm32
esp8266
raspberry-pi
esp32
机器视觉笔记
opencv
yolo
typecho笔记
vps
typecho美化
悄悄话
页面
留言板
友链
统计
搜索到
21
篇与
的结果
2023-02-10
树莓派换源最新教程及注意事项(更换为清华源)
为啥要换源? :@(吐血倒地) 说白了就是为了加速。树莓派系统默认下载软件的服务器在国外,经常出现下载慢、无法更新的情况。(这个经常访问github的同志应该很清楚 :@(邪恶) )这就需要更换为国内的镜像站来加快速度。换源前的准备事项 树莓派系统是是基于debian改造出来的,随着debian的版本更替,不同版本的树莓派要换的源也不同,但树莓派系统的换源流程大致一样的。这里是树莓派清华源的换源介绍文档 :@(鼓掌) 树莓派清华源换源的步骤1、使用 lsb_release -a 命令查看树莓派的版本,使用 uname -m 查看树莓派的架构。 像我这里的版本是基于debian 11的bullseye版本,为aarch64架构,此时打开树莓派清华源的教程,找到对应的版本和换源教程。 2、有了清华源的教程,我们使用一下命令进入Raspbian源。sudo nano /etc/apt/sources.list 改为清华源提供的以下内容,再crtl+x保存退出。# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free3、使用以下命令进入树莓派基金会维护软件的源。sudo nano /etc/apt/sources.list.d/raspi.list 改为清华源提供的以下内容,再crtl+x保存退出。# 对于两个架构,编辑 `/etc/apt/sources.list.d/raspi.list` 文件,删除原文件所有内容,用以下内容取代: deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main{message type="warning" content="个人建议可以先把树莓派官方的给加#注释掉,以免改错还能原封不动改回来。"/}效果如下 {message type="success" content="其余版本的换源以上述步骤为参考即可完成"/} 最后使用以下两个命令更新一下数据,不出现报错恭喜换源成功。 :@(喜极而泣)sudo apt-get update sudo apt-get upgrade
2023年02月10日
1,616 阅读
3 评论
5 点赞
2023-02-10
树莓派初次使用启用root账户
初次使用树莓派系统时,一般默认用户是pi ,密码为raspberry。要想使用root帐号,或者说开启root用户,可使用pi用户登录,执行下面命令(此命令是给root账户设置密码的,当切换到root管理员后,此命令无效)sudo passwd root{message type="info" content="说明:sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等,执行此命令后系统会提示输入两遍的root密码。"/} 输入下面命令,用来解锁root账户sudo passwd --unlock root 用以下命令切换到root管理员su root 输入密码后即可切换到root用户
2023年02月10日
146 阅读
0 评论
0 点赞
2023-02-03
ESP8266延时函数与定时器对比及注意事项
delay()PKmillis()delay()函数 delay()函数的输入参数为int整型值。这个数字表示程序在进入下一行代码之前必须等待的时间,单位是毫秒。当调用 delay(1000) 时,程序在这一行停止1秒。{message type="warning" content=" 注意:delay()函数是一个阻塞函数。阻塞函数阻止程序运行其他函数,直到该任务完成。如果需要多个任务同时发生则不能使用delay()函数。对于大多数项目,应避免使用延迟函数,而使用定时器。"/}millis()函数 millis()函数可以返回自程序首次启动以来所经过的毫秒数,最长可记录接近50天左右的时间。如果超出记录时间上限,记录将从0重新开始。{message type="warning" content="注意:millis()函数的返回值为无符号长整型数据(unsigned long time), 如果将该数值与整型数据或其它数据类型进行运算,运行结果将产生错误。"/}millis()函数的优点 为什么这个函数是有用的?因为通过使用一些简单的数学运算就可以在不阻塞程序的情况下验证已经过去了多少时间。 :@(得意) 下方是使用millis()函数控制LED灯闪烁的示例程序。const int ledPin = 2; // 设置LED的引脚为GPIO2 int ledState = LOW; // 设置初始化LED状态 unsigned long previousMillis = 0; // 设置初始化时间,为无符号长整型数据 const long interval = 1000; // 设置闪烁间隔,为无符号长整型数据 void setup() { // 初始化LED引脚 pinMode(ledPin, OUTPUT); } void loop() { unsigned long currentMillis = millis();//获取当前时间,为无符号长整形数据 if (currentMillis - previousMillis >= interval) { //当与初始时间差大于设定值时就闪烁 // 复位初始时间为该时刻的时间 previousMillis = currentMillis; // LED翻转程序 if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite(ledPin, ledState); } }{music id="1896892542" color="#1989fa" /}
2023年02月03日
144 阅读
0 评论
0 点赞
2023-02-02
ESP8266连接HC-SR04 超声波传感器测距
ESP8266与HC-SR04超声波传感器接线图HC-SR04ESP8266VCC3.3VGNDGNDTrigGPIO12(D6)EchoGPIO14(D5)程序-使用ESP8266和HC-SR04超声波传感器获取距离const int trigPin = 12;//定义超声波模块trigPin引脚为GPIO12 const int echoPin = 14;//定义超声波模块echoPin引脚为GPIO14 //定义声音传播速度(单位:cm/uS) #define SOUND_VELOCITY 0.034 #define CM_TO_INCH 0.393701 long duration; float distanceCm; float distanceInch; void setup() { Serial.begin(115200); // 设置波特率115200 pinMode(trigPin, OUTPUT); // 设置 trigPin 输出 pinMode(echoPin, INPUT); // 设置 echoPin 输入 } void loop() { // Clears the trigPin digitalWrite(trigPin, LOW); delayMicroseconds(2); // 保持 trigPin 高电平 10 微秒 digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // 读取 echoPin, 返回声波传播时间(单位微秒) duration = pulseIn(echoPin, HIGH); // 计算距离 distanceCm = duration * SOUND_VELOCITY/2; // 距离转换为英寸 distanceInch = distanceCm * CM_TO_INCH; // 将测得距离打印在串口 Serial.print("Distance (cm): "); Serial.println(distanceCm); Serial.print("Distance (inch): "); Serial.println(distanceInch); delay(1000); }重点函数解析之pulseIn() 函数:函数语法: pulseIn(pin, value) 或pulseIn(pin, value, timeout)函数参数: pin 引脚编号 value 脉冲状态 timeout 超时时间(单位:微秒,默认为1s)函数返回: 脉冲持续时长。如果在超时时间内没有读到脉冲信号,将返回0。{message type="warning" content="注意:ESP8266可检测的脉冲间隔时间范围是10微秒到3分钟。请留意假如调用pulseIn()函数时读取低电平信号的引脚上已经为高电平,此时ESP8266将等待该引脚变为低电平以后再开始检测脉冲信号。"/}ESP8266和HC-SR04超声波实验结果示例
2023年02月02日
335 阅读
0 评论
1 点赞
2023-02-01
ESP8266 PWM输出原理及源码
PWM定义 PWM(pulse-width modulation)脉冲宽度调制,MCU(微控制器)通过对开关器件的通断进行控制,使输出端得到一系列幅值相等占空比不同的脉冲,进而控制呼吸灯或电机的转速等。效果如下图所示:{lamp/}ESP8266 PWM输出 ESP8266的数字引脚基本上都可以当作PWM复用引脚(❗注:由于GPIO0在启动时的电平可改变BOOT模式,因此最好不要用GPIO0作为PWM输出引脚),PWM输出程序源码如下所示:const int pwmOutPin = LED_BUILTIN; //led连接到pwm输出引脚 int outputValue = 0; //输出到pwm脚的值 void setup() { // 设置led脚输出pwm模式 pinMode(pwmOutPin, OUTPUT); Serial.begin(115200); } void loop() { //Low to High for(outputValue = 0; outputValue <= 500; outputValue++){ analogWrite(pwmOutPin, outputValue); Serial.println(outputValue); delay(1); } //High to Low for(outputValue = 500; outputValue >= 0; outputValue--){ analogWrite(pwmOutPin, outputValue); Serial.println(outputValue); delay(1); } }Arduino PWM控制函数解析函数:analogWrite(pin,val) 往指定引脚写入数据pin:要启用软件PWM的GPIO引脚val:数值,一般在0到PWMRANGE范围,默认PWMRANGE是1023返回值:无函数:analogWriteRange(new_range) 用于改变PWMRANGE数 值即改变引脚读写的数据范围返回值: 无❗注:可以理解为PWM精度范围。同样的PWM频率下,默认占空数值1023,如果改变PWMRANGE为2047,那么占空数值就变成0-2047。函数:analogWriteFreq(new_frequency) 该功能用于改变PWM频率 new_frequency:新PWM频率,默认是1kHZ 返回值: 无 ❗注:Arduino For ESP8266的PWM频率范围为100Hz-40KHz
2023年02月01日
174 阅读
0 评论
0 点赞
2023-01-28
ESP8266 ADC使用及源码
ESP8266 ADC分辨率 ESP8266的ADC引脚具有10位分辨率,可以读取0-1023范围中的值。ESP8266 ADC电压范围 裸芯片的ADC电压输入范围为0-1V。 ESP8266的开发板(例如NodeMCU)由于存在分压器,输入电压范围为0-3.3V。ESP8266 ADC引脚ESP8266只有一个ADC0引脚,程序中一般定义为A0。ESP8266 ADC测试程序{lamp/}const int analogInPin = A0; // 模拟输入引脚 const int pwmOutPin = LED_BUILTIN; //led连接到pwm输出引脚 int sensorValue = 0; // 从引脚读到的值 int outputValue = 0; //输出到pwm脚的值 void setup() { // 设置引脚为模拟输入模式 pinMode(analogInPin, INPUT); // 设置led脚输出pwm模式 pinMode(pwmOutPin, OUTPUT); Serial.begin(9600); } void loop() { //读取模拟输入数值 sensorValue = analogRead(analogInPin); // 使用map函数把输入的数值进行映射 outputValue = map(sensorValue, 0, 1024, 0, 330);//可以修改数值映射330 3.3V // 改变模拟输出数值 analogWrite(pwmOutPin, outputValue); Serial.println((float)outputValue/100.00); //保留两位小数 // 在串口打印显示输入输出的数值 Serial.print("sensor = "); Serial.print(sensorValue); Serial.print("\t output = "); Serial.println(outputValue); delay(200); }
2023年01月28日
194 阅读
0 评论
0 点赞
2023-01-25
STM32调试之JTAG和SWD模式
JTAG模式接口定义接口定义TMS模式选择TCK时钟输入TDI数据输入TDO数据输出SWD模式接口定义接口定义SWDIO串行数据线SWCLK串行时钟线JTAG和SWD接线方式SWD模式的好处{message type="success" content="SWD模式比JTAG在高速模式下更加可靠。SWD模式支持更少的引脚,一般4根引脚即可。一般支持JTAG调试模式的仿真器都支持SWD调试模式。"/}
2023年01月25日
212 阅读
0 评论
2 点赞
1
2
3