1. 让 PiCar-X 动起来

这是第一个项目,让我们测试一下 PiCar-X 的基本移动功能。

运行代码

cd ~/picar-x/example
sudo python3 1.move.py

运行代码后,PiCar-X 将向前移动,按照 S 形转向,停止并摇动“头部”。

代码

备注

您可以 修改/重置/复制/运行/停止 以下代码。但在此之前,需进入源码路径,例如 picar-x/example。修改代码后,您可以直接运行以查看效果。

from picarx import Picarx
import time


if __name__ == "__main__":
    try:
        px = Picarx()
        px.forward(30)
        time.sleep(0.5)
        for angle in range(0,35):
            px.set_dir_servo_angle(angle)
            time.sleep(0.01)
        for angle in range(35,-35,-1):
            px.set_dir_servo_angle(angle)
            time.sleep(0.01)
        for angle in range(-35,0):
            px.set_dir_servo_angle(angle)
            time.sleep(0.01)
        px.forward(0)
        time.sleep(1)

        for angle in range(0,35):
            px.set_camera_servo1_angle(angle)
            time.sleep(0.01)
        for angle in range(35,-35,-1):
            px.set_camera_servo1_angle(angle)
            time.sleep(0.01)
        for angle in range(-35,0):
            px.set_camera_servo1_angle(angle)
            time.sleep(0.01)
        for angle in range(0,35):
            px.set_camera_servo2_angle(angle)
            time.sleep(0.01)
        for angle in range(35,-35,-1):
            px.set_camera_servo2_angle(angle)
            time.sleep(0.01)
        for angle in range(-35,0):
            px.set_camera_servo2_angle(angle)
            time.sleep(0.01)

    finally:
        px.forward(0)

工作原理

PiCar-X 的基本功能由 picarx 模块提供, 可用于控制方向舵机和车轮, 实现 PiCar-X 前进、S 形转向或摇头等动作。

以下代码引入了支持 PiCar-X 基本功能的库。 这些行代码会出现在涉及 PiCar-X 移动的所有示例中。

from picarx import Picarx
import time

接下来的代码使用 for 循环,使 PiCar-X 向前移动、改变方向,并操控摄像头的云台角度。

px.forward(speed)
px.set_dir_servo_angle(angle)
px.set_camera_servo1_angle(angle)
px.set_camera_servo2_angle(angle)
  • forward() : 以指定的 speed 让 PiCar-X 前进。

  • set_dir_servo_angle : 将方向舵机转至指定的 angle

  • set_cam_pan_angle : 将云台的水平舵机转至指定的 angle

  • set_cam_tilt_angle : 将云台的垂直舵机转至指定的 angle

../_images/pan_tilt_servo.png