树莓派遥控视频小车(附代码)

本文介绍了如何利用树莓派3B+、PS2手柄、摄像头和电机驱动,实现视频小车的遥控行驶,以及通过舵机调整摄像头视角。详细讲解了PS2手柄驱动和运动控制程序的编写,以及扩展的深度学习巡线应用示例。

跟随虾哥项目实践,硬件选小智就对了

xiaozhi 开源方案官方适配,二次开发文档齐全

实现功能

基于树莓派3B+的视频车:可遥控,显示小车两自由度舵机支架上的摄像头视频。

  1. 启动小车程序
  2. 小车控制线程和摄像头线程运行
  3. 使用遥控器可遥控小车行走,并控制两自由度的摄像头舵机支架调整摄像头视野
  4. 树莓派的初次使用、opencv安装及远程连接等可以参考另一篇文章:
    链接: 树莓派的使用网线及无线连接方法及手机连接树莓派_opencv镜像.
    在这里插入图片描述

硬件材料

  1. 树莓派3B+
  2. 32G及以上TF卡
  3. PS2手柄
  4. 12V(或其他)电池
  5. L298N电机驱动模块
  6. 稳压模块(12V/或其他 转 5V)用于树莓派供电及舵机供电
  7. 小车底盘(带舵机、电机的方便些)
  8. 树莓派CSI摄像头
  9. 其他(舵机支架、开关等)

控制程序

PS2手柄驱动程序

PS2手柄实现功能如图:
在这里插入图片描述

import RPi.GPIO as GPIO
import time
import spidev#linux环境下用于spi通讯
import io
import cv2
import os
os.environ['SDL_VIDEODRIVE'] = 'x11'
from time import ctime,sleep,time

#手柄按键定义
PSB_SELECT = 1
PSB_L3 =  2
PSB_R3 =  3
PSB_START = 4
PSB_PAD_UP = 5
PSB_PAD_RIGHT = 6
PSB_PAD_DOWN  = 7
PSB_PAD_LEFT  = 8
PSB_L2 = 9
PSB_R2 = 10
PSB_L1 = 11
PSB_R1 = 12
PSB_TRIANGLE = 13
PSB_CIRCLE = 14
PSB_CROSS  = 15
PSB_SQUARE = 16

#摇杆的数据
PSS_RX = 5    #右边摇杆X轴数据
PSS_RY = 6    #右边摇杆Y轴数据
PSS_LX = 7    #左边摇杆X轴数据
PSS_LY = 8    #右边摇杆Y轴数据

#PS2引脚设置,接树莓派引脚
PS2_DAT_PIN = 10 #接DAT
PS2_CMD_PIN = 9  #接CMD
PS2_SEL_PIN = 25 #接CS  
PS2_CLK_PIN = 11 #接CLK

global Handkey
scan=[0x01,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
Data=[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]
MASK = [PSB_SELECT,PSB_L3,PSB_R3,PSB_START,PSB_PAD_UP,PSB_PAD_RIGHT,PSB_PAD_DOWN,PSB_PAD_LEFT,PSB_L2,PSB_R2,PSB_L1,PSB_R1,PSB_TRIANGLE,PSB_CIRCLE,PSB_CROSS,PSB_SQUARE]

#设置GPIO口为BCM编码方式
GPIO.setmode(GPIO.BCM)
#忽略警告信息
GPIO.setwarnings(False)

#spi初始化 
def spi_init():
    spi = spidev.SpiDev()
    spi.open(0,0)
    GPIO.setup(PS2_CMD_PIN,GPIO.OUT,initial=GPIO.HIGH)
    GPIO.setup(PS2_CLK_PIN,GPIO.OUT,initial=GPIO.HIGH)
    GPIO.setup(PS2_DAT_PIN, GPIO.IN)
    GPIO.setup(PS2_SEL_PIN,GPIO.OUT,initial=GPIO.HIGH)
    
#读取PS2摇杆的模拟值
def PS2_AnologaData(button):
    return Data[button

跟随虾哥项目实践,硬件选小智就对了

xiaozhi 开源方案官方适配,二次开发文档齐全

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RambOoO_l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值