机器人学与Python编程

机器人的关键组件

一个构建良好的机器人将具备自主学习、导航和做决策的能力,并且能够在其直接环境中出现不可预见的变化时,有效且高效地做出合理和逻辑的决策。使机器人成为其周围环境的物理部分的元素是位于板上的组件,特别是传感器。传感器在机器人系统中至关重要,因为它们减少了交互的需求,从而提高了系统的自主水平。市场上可用的传感器列表如下(这些并不是唯一的):

  • 光传感器
  • 温度传感器
  • 压力传感器
  • 位置传感器
  • 霍尔传感器
  • 弯曲传感器
  • 声音传感器
  • 超声波传感器
  • 触摸传感器
  • 被动红外传感器
  • 倾斜传感器
  • 气体传感器

这些传感器可以检测即时或远处环境中的特定刺激。如果将这些组件集成到一个系统中,它们将允许任何物体像人类一样对任何刺激做出反应。传感器模块将检测来自源的输入,并以一定的输出做出响应。总体而言,传感器将任何非电物理或化学量转换为电信号。为了保持一致的输出,需要维持传感器的输入——例如,如果没有物体在运动传感器附近移动,运动传感器就不会输出红灯。将讨论三种特定的传感器:光、声音和超声波。

这种传感器将光频率转换为电信号,即这些传感器信号的输出。信号告诉被检测到的光的强度。它通过测量存在于所有(红外、可见光、紫外)光频率中的电磁波来工作。

这种传感器检测并将声波转换为电信号。麦克风的振膜必须处于工作状态。这是因为空气中传播的声波撞击振膜,使其振动并改变电容器读数。电容器读数被转换为数字信号,这些信号可用于处理目的。

这种传感器将反射的声波转换为电信号。超声波传感器能够测量物体之间的距离。超声波传感器内置有发射器和接收器。发射器将以压电信号的形式发出声波,接收器将在反射过程发生后读取声波。

电机

在实验机器人学Python时,常用的电机是直流电机。直流电机需要电流量的输入,并提供机械能或运动的输出。直流电机的组件包括线圈绕组、磁铁、转子、刷子、定子和源电流。

import RPi.GPIO as GPIO # 配置系统暂时忽略所有警告 GPIO.setwarnings(False) # 设置系统使用物理引脚编号 GPIO.setmode(GPIO.BOARD) # 配置GPIO引脚编号10为输入引脚,并设置初始状态为下拉"PUD_DOWN",即按钮处于"OFF"状态 GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # 设置一个无限循环,不断检查按钮开关的状态 while True: # 检查GPIO引脚编号10是否被按下 if GPIO.input(10) == GPIO.HIGH: print("按钮被按下!")

直流电机的工作原理是,当线圈通电时,即电流通过它时,会在其周围产生磁场,使线圈与磁铁相互作用,从而触发线圈旋转,最终输出机械能。

电源开关

机器人需要一个电源开关来开启和关闭电源。电源开关作为机器人的电源断路器,允许电流停止在电路中流动,允许组件冷却下来。当开关打开时电流流动,关闭时电流流动暂停。

按钮开关

这是一个简单的设备,可以允许或阻止控制特定的机器或过程。按钮开关由允许电流通过的电路组成。篡改这种电流流动是触发电路中事件发生的原因。按钮开关可用于常开或常闭电路。在常开电路中,电路中目前有电流流动,按下按钮时电流流动被中断。在常闭电路中,直到按下按钮之前,没有连接或电流流动。

晶体管

晶体管是一种半导体,具有两种功能。它可以作为开关,也可以作为电流的放大器。晶体管本质上有两个引脚(或腿——电线连接的小金属棒)。作为开关,晶体管会减少一个引脚上的电流,并增加另一个引脚上的电流。作为放大器,晶体管会接受一个引脚的电流,并以更高的电流从另一个引脚输出。

电阻器

这是最受欢迎和常用的电子组件之一。它有两个端子(引脚/腿),将其集成到电路中将实现电路中的电阻。电阻器可以用来减少电流流动,分配电压,以及调整电信号水平。

控制按钮开关。首先导入必要的包,然后配置系统以忽略所有警告,设置系统使用物理引脚编号,并配置GPIO引脚编号10为输入引脚,并设置初始状态为下拉"PUD_DOWN",即按钮处于"OFF"状态。设置一个无限循环,不断检查按钮开关的状态。如果按钮被按下,将打印一些文字到控制台。

import time from easygopigo3 import EasyGoPiGo3 # 创建使用的机器人实例 gpg = EasyGoPiGo3() # 配置电机向前移动两秒 gpg.forward() time.sleep(2) # 停止所有电机运动一秒 gpg.stop() time.sleep(1) # 驱动所有电机向前移动50厘米 gpg.drive_cm(50, True) time.sleep(1) # 将电机转向左 gpg.left() time.sleep(1) # 将电机转向右 gpg.right() time.sleep(1) # 停止所有机器人活动 gpg.stop() # 打印最终消息,告诉脚本是否成功 print("运动成功!")

控制直流电机。首先导入必要的包,然后创建使用的机器人实例。配置电机向前移动两秒,停止所有电机运动一秒,驱动所有电机向前移动50厘米,将电机转向左,将电机转向右,最后停止所有机器人活动,并打印最终消息告诉脚本是否成功。

可能想知道超声波传感器如何用于机器人。现在,超声波传感器实际上用于创建基于LIDAR的机器人当前所在区域的地图。超声波传感器与伺服电机(电机)结合使用,允许超声波传感器旋转,从而使机器人能够“看到”更多环境。不会提供整个代码,因为它很长,需要理解——将提供一个位于PC上的代码的截断图。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485