如何控制Raspberry Pi
![【到底玩什么03】“派”到底玩个啥?——树莓派4B入门点灯教程。](https://i.ytimg.com/vi/8_GsEBgcOO8/hqdefault.jpg)
内容
- 阶段
- 第1部分安装操作系统
- 第2部分下载NOOBS
- 第3部分格式化SD卡
- 第4部分将NOOBS复制到SD卡
- 第5部分控制Raspberry Pi
- 第6部分配置网络
- 配置有线网络
- 设置无线网络(SSH / wifi)
- 第7部分安装Geany IDE
- 第8部分:使用Python驱动直流电动机(接线部分)
- 第9部分完成连接
- 第10部分:使用Python驱动DC引擎(编程部分)
- 第11部分第一个挑战
- 使用HC-SR04超声波传感器(接线)
- 使用HC-SR04超声波传感器(编程部分)
- 第12部分第二个挑战
Raspberry Pi是一台只有信用卡大小的计算机。它是由Raspberry Foundation设计和制造的,Raspberry Foundation是一个致力于使计算机和程序尽可能易于访问的非营利组织。 Raspberry项目的最初任务是设计一种具有良好编程功能的尽可能便宜的计算机。因此,将其交到学生手中。本指南旨在为Raspberry Pi的使用打下基础,从而促进其处理。
警告。本文适用于具有良好计算机背景的人.
阶段
第1部分安装操作系统
- 了解什么是NOOBS(全新的现成的Stoftware)。 它是Raspberry Pi可以使用的各种操作系统的安装管理器,其目的是简化我们选择的操作系统(OS)的安装。这是我们与微型计算机软件部分的第一次联系。 NOOBS中包含以下操作系统:
- Raspbian
- Pidora
- OpenELELC
- RaspBMC
- RISC操作系统
- 拱莱纳斯
- 本教程所需的设备是:
- 电脑
- 至少8 GB的Class 4 SD卡
- 包含Raspberry Pi的原始包装盒已经包含一个预装的带有NOOBS的SD存储卡。因此,以下步骤仅在新SD卡上安装时有用。
第2部分下载NOOBS
-
您可以在以下地址下载“ NOOBS”: 菜鸟
第3部分格式化SD卡
- 必须有至少4 GB的SD卡。 但是,建议大小为8 GB。
第4部分将NOOBS复制到SD卡
- 解压缩文件。 从第一步中下载的名为NOOBS的zip文件中提取文档。将提取的文件复制到新格式化的SD卡。但是请注意,在某些情况下,提取的文件可以转到新文件夹,在这种情况下,最好复制文件本身而不是复制文件夹。
- 首次启动时,将显示可用的操作系统列表。
第5部分控制Raspberry Pi
- 要使用Raspberry Pi,请按照以下步骤操作。
- 将SD卡插入Raspberry,直到听到“喀哒”声为止。
- 连接HDMI电缆并将其连接到屏幕。切记插入电源并开启
- 屏幕。使用Micro USB充电器为Raspberry供电
- 将键盘和鼠标插入任何USB端口。
- 完成这些步骤后,您将在监视器上看到正在加载NOOBS软件。加载后,将显示可安装的操作系统列表。建议安装Raspbian OS。选择Raspbian,然后单击窗口顶部的“安装”按钮。
-
安装大约需要20分钟。 安装完成后,将出现黑色命令屏幕。然后,在程序要求时,有必要输入用户名:“ pi”和密码:“ raspberry”。然后,在命令行中键入以下内容,然后按“ Enter”键:运行startx
- 恭喜你! 您已经成功安装了使用Raspberry pi所需的环境:)!现在,我们将进行网络配置。
第6部分配置网络
连接到互联网。一旦Raspberry Pi正常运行,接下来要做的就是为Raspberry Pi建立到Internet的连接。一旦完成,您就可以像浏览Internet一样一台完全不同的计算机。有两种建立连接的方法,有线(使用以太网电缆)或通过Wi-Fi无线连接,请按照以下步骤设置网络。
配置有线网络
- 必要的设备是:
- 功能齐全的Raspberry Pi(请参阅Raspberry Pi入门)
- 以太网电缆
- 只需将一根以太网电缆头连接到Raspberry Pi上提供的端口,另一根电缆连接到调制解调器或Internet访问路由器。 因此,Raspberry Pi将自动连接到互联网。
设置无线网络(SSH / wifi)
- 必要的设备是:
- 功能齐全的Raspberry Pi(请参阅Raspberry Pi 3入门)
- wifi USB钥匙
- 将USB wifi棒插入Raspberry Pi的可用端口之一。
-
点击菜单中的图标,打开wifi设置服务。- 打开服务后,您将看到以下界面。
- 打开服务后,您将看到以下界面。
-
点击扫描按钮。 将会出现一个新窗口。因此,它将使我们想要使用的网络倍增。 -
输入密码。 如下所示,在“预共享密钥(PSK)”字段中输入网络访问密码。- 现在,单击“保存”并添加网络。完成此操作后,您将连接到互联网。
- 现在,单击“保存”并添加网络。完成此操作后,您将连接到互联网。
第7部分安装Geany IDE
- Geany是使用GTK +和Scintilla的轻量级电子出版商,并且包含集成开发环境的基本功能。 设计具有很少的依赖关系并快速启动,它支持C / C ++,Java,JavaScript,PHP,HTML,CSS,Python,Perl,Ruby,Pascal和Haskell语言。
-
在菜单中打开命令提示符。 - 在Raspberry的根文件夹中输入命令行“ sudo root”。 然后输入用户名“ pi”和密码“ raspberry”。
- 输入以下命令行。
apt-get install python geany xterm
- 安装需要几秒钟。
- 在菜单中打开Geany IDE。
- 现在,您可以通过在“文件”选项卡中创建第一个文件来编写第一个程序。
- 编写代码后,您所需要做的就是注册并编译代码。
第8部分:使用Python驱动直流电动机(接线部分)
在这一部分中,我们将向您展示如何将直流电动机连接到Raspberry Pi,以及如何使用python创建一个小程序来改变直流电动机的旋转速度和方向。
-
这个小教程可能会在以后帮助您实现机器人项目。 - 了解原理。 首先,你必须知道 直流电机未直接连接到Raspberry Pi的GPIO引脚。确实,用于我们的小型Raspberry Pi的用于旋转发动机的电流将非常高,并且可能会损坏。
- 这就是为什么我们要使用设计用来控制最多两个直流电动机的芯片的原因。 L293D芯片。
- Raspberry Pi的一个重要功能是在板子角落的一排GPIO引脚。可以在编程中将任何GPIO引脚指定为输入或输出引脚。
- 这就是为什么我们要使用设计用来控制最多两个直流电动机的芯片的原因。 L293D芯片。
- 接线L293D。
- 如图所示,L293D的引脚4、5、12和13必须连接到GND。 L293D的引脚16允许为其供电。我们将以5V供电。该电压不会传输到电动机,而只会传输到L293D芯片。
- 要为电动机供电,请使用连接到电池或电池的L293D(正极)的引脚8。负极端子必须接地。注意不要超过电动机的电压极限。
- 如图所示,L293D的引脚4、5、12和13必须连接到GND。 L293D的引脚16允许为其供电。我们将以5V供电。该电压不会传输到电动机,而只会传输到L293D芯片。
-
连接电动机。 要连接第一个电动机,只需将其连接到L293D芯片的引脚3和6(输出1A和1B)。
第9部分完成连接
- L293D芯片的引脚1是第一个电动机的“启用”引脚。 当此引脚逻辑上为“高”时,电动机将以其最大速度运行;当此引脚逻辑上为“低”时,电动机将处于停止状态。为了允许降低发动机的速度,通过非常快速地交替改变这两种状态就足够了。这称为“ PWM”(脉冲宽度调制)。我们将L293D芯片的引脚1连接到Raspberry Pi的引脚22,以控制速度。
- 要控制电机的旋转方向,您必须使用L293D芯片的引脚2和7进行操作。当针脚2为“高”而针脚7为“低”时,电动机将沿一个方向旋转。如果这两个引脚之间的两个逻辑状态相反,则电动机将朝另一个方向旋转。我们将把l293D芯片2引脚连接到Raspberry引脚18,将l293D芯片7引脚连接到Raspberry 16引脚。
- 要控制电机的旋转方向,您必须使用L293D芯片的引脚2和7进行操作。当针脚2为“高”而针脚7为“低”时,电动机将沿一个方向旋转。如果这两个引脚之间的两个逻辑状态相反,则电动机将朝另一个方向旋转。我们将把l293D芯片2引脚连接到Raspberry引脚18,将l293D芯片7引脚连接到Raspberry 16引脚。
第10部分:使用Python驱动DC引擎(编程部分)
- 这个小代码可以控制发动机的旋转方向和速度。 它首先以一个方向高速旋转3秒钟。然后以降低的速度。然后,旋转方向反转,电动机以降低的速度运行,然后以较高的速度运行。现在,您可以浏览以下代码:
从时间导入GPIO.setmode(GPIO.BOARD)GPIO导入睡眠RPi.GPIO
- 现在,我们可以配置GPIO端口。
Motor1A = 16 ##第一个电动机的输出A,引脚16 Motor1B = 18 ##第一个电动机的输出B,引脚18 Motor1E = 22 ##第一个电动机的使能,引脚22 GPIO.setup(Motor1A,GPIO.OUT)##这3个引脚是输出(OUT)GPIO.setup(Engine1B,GPIO.OUT)GPIO.setup(Engine1E,GPIO.OUT)
- 在这里,我们配置PWM。
pwm = GPIO.PWM(Motor1E,50)## PWM中的引脚22的频率为50Hz pwm.start(100)##我们以100%的占空比进行提交
- GPIO端口的状态为活动。
“直接方向旋转,最大速度,占空比为100%” GPIO.output(Motor1A,GPIO.HIGH)GPIO.output(Motor1B,GPIO.LOW)GPIO.output(Motor1E,GPIO.HIGH)
- 现在,让引擎运转3秒钟。
睡眠(3)
- 占空比更改为20%以降低速度。
pwm.ChangeDutyCycle(20)
“正向旋转,占空比为20%”休眠(3)“反向旋转,占空比为20%” GPIO.output(Motor1A,GPIO.LOW)GPIO.output(Motor1B,GPIO.HIGH)睡眠(3)pwm.ChangeDutyCycle(100)“反向旋转,最大速度(占空比100%)”睡眠(3)“引擎停止” GPIO.output(Engine1E,GPIO.LOW)pwm.stop()##停止PWM GPIO.cleanup()
第11部分第一个挑战
这次用两个引擎编写一个小的代码。由您决定!
使用HC-SR04超声波传感器(接线)
- 此阶段所需的设备是:
- 超声波模块HC-SR04
- 1kΩ的电阻,
- 2kΩ的电阻,
- 连接电缆,
- 面包bor
- HC-SR04超声波传感器通过发送40 kHz的声音信号来测量2到400 cm的距离。根据将发射与超声信号的接收分开的时间的函数,通过计算找到距离。
- HC-SR04具有4个引脚:
- 引脚(Gnd),用于将模块接地(0 V),
- 一个输出引脚(回波),用于通知杜拉森火车的发射结束及其在障碍物上反射后的返回,
- 输入引脚(用于触发的Trig),用于触发dultrason火车的发射,
- 引脚(Vcc),用于以5 V电压为传感器供电。
- Echo引脚提供的输出电压为5V,但是Rapsberry Pi的输入引脚(GPIO)设计为最高3.3V。
- 因此,为了避免损坏树莓派,请使用由两个电阻组成的分压器桥,以降低传感器的输出电压。
- 就在这时,如您在上面看到的,插入:
- Raspberry Pi 5 V时的“ Vcc”松树(红色线程)
- Raspberry(黄色线程)的GPIO 23(引脚16)引脚上的“ Trig”引脚
- Raspberry(蓝线)的GPIO 24引脚(引脚18)上的“ Echo”引脚
- GND松树莓GND(黑线)
- 不要忘记您的两个小阻力!
- 传感器现在已经连接到Raspberry Pi,它不再适用于python编程!
使用HC-SR04超声波传感器(编程部分)
- 第一步,必须将不同的库导入到:
- GPIO端口管理。
- 时钟管理
将RPi.GPIO导入为GPIO导入时间GPIO.setmode(GPIO.BCM)
- 然后,我们必须确定将要使用的不同引脚。 在我们的例子中,输出引脚为“ GPIO 23”(TRIG:触发超声波传感器的信号),输入引脚为“ GPIO 24”(ECHO:获取回信号)。
触发= 23回波= 24
- 现在,我们可以配置GPIO端口。
GPIO.setup(TRIG,GPIO.OUT)GPIO.setup(ECHO,GPIO.IN)
- 为了确保“ Trig”引脚最初为低电平,我们将其设置为“ False”并给出等待时间,以便传感器可以复位。
GPIO.output(TRIG,False)“等待传感器稳定” time.sleep(2)
- 超声波传感器需要10 µs的脉冲才能激活其模块。 要创建触发器,必须将Trig引脚强制为高电平10 µs,然后复位为低电平:
GPIO输出(TRIG,True)时间睡眠(0.00001)GPIO。输出(TRIG,False)
- 为了给来自引脚状态改变的不同事件加时间戳,我们将使用while循环和time.time()函数。 检测信号状态变化。第一步是检测状态从低状态变为高状态之前的瞬间并为其加时间戳。该时刻(pulse_start)将是传感器发出的杜拉森火车结束的时刻。
而GPIO.input(ECHO)== 0时:pulse_start = time.time()
- 发射超声波列之后,回波针将保持高电平,直到障碍物反射的超声波返回为止。 然后,我们尝试再次检测回波信号到低电平的切换。时间戳(pulse_end)将是检测超声返回的时间戳。
而GPIO.input(ECHO)== 1:pulse_end = time.time()
- 通过计算两个脉冲之间的差,我们可以知道脉冲持续时间(pulse_duration):
脉冲持续时间=脉冲结束-脉冲开始
- 为了知道距离,我们应用公式:
距离=脉搏持续时间* 17150
- 我们将距离取整为两位小数:
距离=圆(距离2)
- 以“ cm”显示距离:
“距离:”,距离,“厘米”
- 为了重置GPIO引脚,我们添加:
GPIO.cleanup()
- 您现在要做的就是通过将代码命名为“ sensor_distance”来保存代码,然后在命令行中启动它:
须藤python remote_capteur.py
- 恭喜你! 您可以控制电机,并通过超声波传感器检测距离!
第12部分第二个挑战
- 如果您有这辆三轮车。 到目前为止,您已经掌握了所学的知识,您必须能够驾驶该车辆,以使其在行驶时形成“ E”形。如果他使用超声波传感器遇到障碍,他也将能够停止。
- 由您决定!