树莓派

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




怎么看树莓派上的python版本 树莓派怎么看几代_开发语言


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

第一代成员:raspberry pi model b


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_02


GPIO接头:连接传感器

二代


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_03


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


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_04


四代:内存大小可选择


怎么看树莓派上的python版本 树莓派怎么看几代_引脚_05


a版本、zero版本


怎么看树莓派上的python版本 树莓派怎么看几代_引脚_06


官方推荐:


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_07


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_08


官方没推荐:Ubuntu

1.2树莓派的应用

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

智能机器人、无人机……

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

WLAN或者NET连接


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_09


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


怎么看树莓派上的python版本 树莓派怎么看几代_引脚_10


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

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

cmd:输入arp -a

找到137网段

全部外设

4B、显示屏……


怎么看树莓派上的python版本 树莓派怎么看几代_引脚_11


首次开机:

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

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

putty:pi、raspberry

无线热点连接方式

远程桌面(window自带)

先下载: sudo apt-get install xrdp


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_12


VNC连接and配置静态ip

文件传输VNC


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_13


什么是VNC


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_14


部署步骤


怎么看树莓派上的python版本 树莓派怎么看几代_引脚_15


sudo raspi-config


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_16


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_17


Yes->确认


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_18


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

树莓派:$vncserver以启动VNC server

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


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_19


树莓派自动开启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

文件传输

电脑传输给树莓派:


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_20


文件传输给window:


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_21


FTP协议传输文件


常用的终端窗口


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_22


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_23


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_24



怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_25


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_26


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_27


nano文件编辑器


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_28


vi


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_29


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_30


vi键盘的命令:

备份和还原

删除系统:


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_31


备份


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_32


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_33


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

什么是GPIO


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_34


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_35


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

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


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_36


板载编码$pinout

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


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_37


查看所有编码$gpio readall

怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_38


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_38


怎么看树莓派上的python版本 树莓派怎么看几代_引脚_40


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

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


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_41

串口通信

ARDUINO

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


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_42


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_43


下载arduino ide

设置开发板\端口连接


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_44


文件保存:_sketch

结构


怎么看树莓派上的python版本 树莓派怎么看几代_引脚_45


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_46


//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_);
}

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

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

面包板


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_47


全局替换:编辑查找

小开关:同侧不相连


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_48


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_49


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_50


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_51


还有下拉电阻

监视串口:

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);
}


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_52


怎么看树莓派上的python版本 树莓派怎么看几代_引脚_53


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_54


串口悬空会出现随机的数:拍一下显示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%


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_55


电位器:


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_56


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_57


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_58


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_59


1-3之间恒定为1000Ω

应用

一、分压


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_60


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_61


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_62


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_63


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

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

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

randomSeed():


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_64


电位器控制LED的亮度


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_65


怎么看树莓派上的python版本 树莓派怎么看几代_引脚_66


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_67


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


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_68


怎么看树莓派上的python版本 树莓派怎么看几代_树莓派_69



MeArm

MiniArm

python控制

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

Jetson Nano

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

B01版本

机器狗 小米铁蛋

16GB eMMC闪存/TF卡

ARM架构

ESP32-S

1 在线安装(见指南)


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_70


首选项\设置

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

ModeESP

CP2102驱动(WIn10自带)USB驱动


怎么看树莓派上的python版本 树莓派怎么看几代_引脚_71


实例

wifclient

TCP调试助手

管理员运行

光敏芯片TSL2561

1 接口介绍


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_72


2 python环境搭建

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

3 连接方式


怎么看树莓派上的python版本 树莓派怎么看几代_怎么看树莓派上的python版本_73


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)


怎么看树莓派上的python版本 树莓派怎么看几代_开发语言_74


怎么看树莓派上的python版本 树莓派怎么看几代_引脚_75


作为路由器

#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()); //打印客户端连接数
}