智能控制系统

本文介绍了树莓派的不同版本、GPIO接口及其在超级计算机、智能机器人等领域的应用。详细讲述了树莓派的操作系统烧录、远程连接(VNC、SSH)以及无线网络配置。同时,也提到了Arduino的编程基础和模拟输入输出,包括电位器控制LED亮度。此外,还提及了ESP32-S模块和JetsonNano在物联网及人工智能项目中的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

树莓派

1.1树莓派的介绍、版本、结构、操作系统

2012年第一款树莓派、已经过去11年,迭代4次

第一代成员:raspberry pi model b

GPIO接头:连接传感器

二代

三代:四核处理器+蓝牙+无线模块

四代:内存大小可选择

a版本、zero版本

官方推荐:

官方没推荐:Ubuntu

烧录:

每天十分钟带你学会树莓派--入门篇-03系统烧录_哔哩哔哩_bilibili

1.2树莓派的应用

超级计算机(64台树莓派)

智能机器人、无人机……

win10网络发现已关闭计算机和设备不可见怎么办-百度经验 (baidu.com)

WLAN或者NET连接

有wlan就用waln共享、没有就用net8共享

在window上查看到了树莓派的ip

(我的电脑拓展坞只有第一个插口能识别)

cmd:输入arp -a

找到137网段

全部外设

4B、显示屏……

首次开机:

每天十分钟带你学会树莓派--基础篇-04 首次开机、外设连接_哔哩哔哩_bilibili

关机:1.终端sudo shutdown -h(关机,-r:重启) now /sudo poweroff、2.桌面

ssh连接前提:sd卡中增加ssh文件

putty:pi、raspberry

无线热点连接方式

远程桌面(window自带)

先下载: sudo apt-get install xrdp

VNC连接and配置静态ip

每天十分钟带你学会树莓派 基础篇07 VN从连接,配置静态IP地址_哔哩哔哩_bilibili

文件传输VNC

什么是VNC
部署步骤

sudo raspi-config

Yes->确认

window VNC 查看器下载: www.realvnc.com

树莓派:$vncserver以启动VNC server

将最后的ip端口复制进VNC Viewer

树莓派自动开启vnc:
$sudo nano /etc/init.d/vncserver
#!/bin/sh
export USER='pi'
eval cd ~$USER
case "$1" in
start)
# 启动命令行。此处自定义分辨率、控制台号码或其它参数。
su $USER -c '/usr/bin/vncserver -depth 24 -geometry 1920x1080 :1'
echo "Starting VNCServer for $USER"
;;
stop)
su $USER -c '/usr/bin/vncserver -kill :1'
echo "VNCServer stopped"
;;
*)
echo "Usage: /etc/init.d/vncserver {start/stop}"
exit 1
;;
esac
exit 0
^s保存 ^x退出
设置文件权限
$sudo chmod 755 /etc/init.d/vncserver
设置开机自启
$sudo update-rc.d vncserver defaults
重启
$sudo reboot
文件传输

电脑传输给树莓派:

文件传输给window:

FTP协议传输文件

常用的终端窗口

nano文件编辑器

vi

vi键盘的命令:

备份和还原

删除系统:

备份

GPIO:(通用输入/输出)引脚

什么是GPIO

老版本26针脚、新版本都是40针脚

引脚的三种编码方式:板载编码、BCM编码、WirinPi编码
板载编码$pinout

按照树莓派主板上的引脚编号:使用的程序并不是很多

查看所有编码$gpio readall

(147条消息) 树莓派4B 使用gpio readall无法查询到管脚信息的问题及解决办法_SmartTiger_CSL的博客-CSDN博客_gpio readall

BCM编码方式:python程序中常见的编码方式
WiringPi编码方式:C语言控制时的引脚编号
控制LED小灯

每天十分钟带你学会树莓派--基础篇-11gpio管脚点亮LED灯_哔哩哔哩_bilibili

step1:查看7号引脚的BCM编码

每天十分钟带你学会树莓派--基础篇-12-串口通讯点亮led灯_哔哩哔哩_bilibili

串口通信

ARDUINO

arduino入门教程-系列篇一:初识arduino - 知乎 (zhihu.com)

1-30 模拟输入3 - 电位器控制LED亮度_哔哩哔哩_bilibili

下载arduino ide

设置开发板\端口连接

文件保存:_sketch

结构

//int a = 0;
//LOW
//HIGH
//int b;  // 默认给0

// 当你给开发板通电或者按下复位按钮后,setup函数执行一次
void setup() {
  // 执行一次:准备put your setup code here, to run once:
  // 初始化LED_BUIL
  pinMode(LED_BUILTIN, OUTPUT);
  
}
// 反复运行
void loop() {
  // 反复执行:营业 put your main code here, to run repeatedly:
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
} 
//int a = 0;
//LOW
//HIGH
//int b;  // 默认给0


int Delay_ = 100;   // 注意作用域:全局和局部
// 当你给开发板通电或者按下复位按钮后,setup函数执行一次
void setup() {
  // 执行一次:准备put your setup code here, to run once:
  // 初始化LED_BUIL
  pinMode(LED_BUILTIN, OUTPUT);  //LED_BUILTIN:13
  pinMode(5, OUTPUT); //5号引脚
  Delay_ = 100; 
}

 // 反复运行
void loop() {
  // 反复执行:营业 put your main code here, to run repeatedly:
  Delay_ = Delay_ + 100;

  digitalWrite(LED_BUILTIN, HIGH);  //设置为output状态 LED_BUILTIN:13  设置为高电平
  delay(Delay_);
  digitalWrite(LED_BUILTIN, LOW);
  delay(Delay_);
//  printf("%d",Delay_);
} 

视频教程:1-9 Arduino程序 - 程序函数2_哔哩哔哩_bilibili

太极创客:零基础入门学用 Arduino 教程 – 基础知识篇 – 太极创客 (taichi-maker.com)

函数学习:开发->编程Arduino编程语句参考 – 太极创客 (taichi-maker.com)

面包板

全局替换:编辑查找

小开关:同侧不相连

还有下拉电阻

监视串口:

int pushButtom = 2 ;

void setup() {
  //串口通讯初始化,每秒9600位
  Serial.begin(9600);  
  pinMode(pushButtom, INPUT);  //输入
}

void loop() {
  int buttonState = digitalRead(pushButtom);  //引脚状态返回给变量:HIGH LOW
  Serial.println(buttonState);
  delay(2);
}

串口悬空会出现随机的数:拍一下显示1,不拍显示0

以下的实例可以证明:将串口2与LED关联

int pushButtom = 2 ;
void setup() {
  //串口通讯初始化,每秒9600位
  Serial.begin(9600);  
  pinMode(pushButtom, INPUT);  //输入
  pinMode(13, OUTPUT);
}

void loop() {
  int buttonState = digitalRead(pushButtom);  //引脚状态返回给变量:HIGH LOW
  Serial.println(buttonState);
  delay(2);
  if(buttonState == HIGH){
    digitalWrite(13, HIGH);
  }else{
    digitalWrite(13, LOW);
  }
}

函数整理

pinMode(pushButtom, INPUT/OUTPUT/INPUT_PULLUP); //输入、输出、输入上拉模式
var = digitalRead(2); //读取串口状态
digitalWrite(13, HIGH); //改变串口状态
analogWrite(ledPin, brightness); //将模拟参数写入Arduino引脚,可以改变led的亮度,每执行一次都会给该引脚一个固定频率的PWM信号,约490Hz,只支持~3,~5,~6,~9,~10,~11,调用前,无需使用pinMode函数设置该引脚
analogRead(A0); //读取模拟输入
delay(2); //延时

Serial.begin(9600); //串口通讯初始化,每秒9600位
Serial.println(buttonState);
Serial.print(buttonState);

随机数
randomSeed(analogRead(A0));
getRandomNumber(0,10); //产生随机0-9数字
初始化
Serial.begin(speed)
其中参数speed指串口通信波特率,如300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200。
发送信息
Serial.print (val); 其中参数val是要输出的数据。
Serial.println (val); 在输出完指定数据后,再输出一组回车换行符。
接收信息
Serial.available();函数检测是否有信息
Serial.read(); 函数读取信息
Serial.readBytes(); 函数以字节形式读取信息
Serial.write()用于发送字节数组
unsigned char testcode[6]={0x7E,0x42,0xC1,0x00,0x00,0x7E};
Serial.write(testcode,6);

模拟输出输入

~9:可以调节

小灯的亮度可以无极调节

Analog Output模拟输出

analogWrite(ledPin, brightness);

将模拟参数写入Arduino引脚,可以改变led的亮度,每执行一次都会给该引脚一个固定频率的PWM信号,约490Hz,只支持~3,~5,~6,~9,~10,~11,调用前,无需使用pinMode函数设置该引脚

PWM

快速开关是看不到闪烁的

191=75%

电位器:

1-3之间恒定为1000Ω

应用

一、分压

0~1023(10位 ) <-> 0~5V

analogRead() :需要消耗100微秒的时间

注意:在模拟输入引脚没有任何连接的情况下,用analogread()指令读取该引脚,这时获得的返回值为不固定的数值。这个数值可能受到多种因素影响,如手靠近

randomSeed():

电位器控制LED的亮度

arduino的模拟输入是电压,模拟输出是PWM


arduino进阶:

【太极创客】零基础入门学用Arduino 第二部分 meArm机械臂 合辑_哔哩哔哩_bilibili

MeArm

MiniArm

python控制

史上最详细的Arduino 入门教程第17课-Arduino+Python实现物体运动检测并发送邮件 - 知乎 (zhihu.com)

Jetson Nano

Nano最大的特色就是包含了一块128核Maxwell架构的GPU

B01版本

机器狗 小米铁蛋

16GB eMMC闪存/TF卡

ARM架构

ESP32-S

1 在线安装(见指南)

首选项\设置

2 解压esp压缩包至arduino的硬件目录

ModeESP

CP2102驱动(WIn10自带)USB驱动

实例

wifclient

TCP调试助手

管理员运行

光敏芯片TSL2561

1 接口介绍

(155条消息) 串口通信————UART、I2C、SPI详解(总结篇)_spi i2c uart_小光学嵌入式的博客-CSDN博客

2 python环境搭建

树莓派安装python环境 - 知乎 (zhihu.com)

(155条消息) 树莓派如何安装 Python 环境_树莓派安装python_疯魔coding君的博客-CSDN博客

3 连接方式

jetson nano

opencv

cap = cv2.VideoCapture(0) #打开默认摄像头采集图像

width = 640  #定义摄像头获取图像宽度
height = 480   #定义摄像头获取图像长度

cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)  #设置宽度
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)  #设置长度

wifi模组ESP32-S

ESP32 Wi-Fi & 蓝牙模组 | 乐鑫科技 (espressif.com.cn)

(166条消息) Arduino core for ESP8266 WiFi chip ESP8266 WiFi中文文档_arduino esp8266wifi中文手册_下东西不要币多好的博客-CSDN博客

作为路由器

#include <WiFi.h>
IPAddress local_IP(192,168,4,22);
IPAddress gateway(192,168,4,22);
IPAddress subnet(255,255,255,0);

const char *ssid = "别连劳资!";
const char *password = "12345678";
void setup()
{
  Serial.begin(115200);
  Serial.println();
  WiFi.mode(WIFI_AP); //设置工作在AP模式
  WiFi.softAPConfig(local_IP, gateway, subnet); //设置AP地址
  while(!WiFi.softAP(ssid, password)){}; //启动AP
  Serial.println("AP启动成功");
  
  Serial.print("IP address: ");
  Serial.println(WiFi.softAPIP()); // 打印IP地址 IP address: 192.168.4.22
  WiFi.softAPsetHostname("myHostName"); //设置主机名 
  Serial.print("HostName: ");
  Serial.println(WiFi.softAPgetHostname()); //打印主机名  HostName: myHostName
  Serial.print("mac Address: ");
  Serial.println(WiFi.softAPmacAddress()); //打印mac地址   mac Address: 8C:CE:4E:A7:EE:09
}

void loop()
{
  delay(1000);
  Serial.println(WiFi.softAPgetStationNum()); //打印客户端连接数
}

技术

树莓派、siri实现倒计时灯带:

玩树莓派到底在玩什么?一个案例揭示真相_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值