這部分主要是通過某些模組獲取控制資訊,輸入單獨寫乙個模組,以後想要調整成其他的裝置只需要單獨改一下這部分的**
哦……目前模仿我這個小車前提要求要有個手柄233
這部分主要是使用了pygame裡面的joystick模組
joystick的學習教程
使用joystick簡化只保留搖桿操作
最後貼上我新增的小車控制部分,使用了多執行緒(其實也不是很需要)
test_shoubing_noclass.py
import pygame
import threading
import time
#初始化
pygame.init()
pygame.joystick.init()
clock = pygame.time.clock()
#車輛各個引數設定
car_max_speed=10 #車輛最大移動速度
car_max_turn=3 #車輛最大轉向速度
camera_max_speed=10 #視角轉移速度
done=false
left_speed=0 #車輛左半邊輪子的速度
right_speed=0 #車輛右半邊輪子的速度
vis_v_par=0 #攝像頭舵機水平轉向速度
vis_v_hor=0 #攝像頭舵機垂直轉向速度
def shoubin_thread():
global left_speed
global right_speed
global vis_v_par
global vis_v_hor
#尋找電腦上的手柄數量,一般我只連了乙個手柄(因為只有乙個)
joystick_count = pygame.joystick.get_count()
for i in range(joystick_count):
#讀取對應裝置
joystick = pygame.joystick.joystick(i)
joystick.init()
while (not done ):
# 這句話很重要,這是保障實時讀取手柄搖桿資訊,反正不能去掉
pygame.event.get()
#獲取搖桿數量
axes = joystick.get_numaxes()
ls=0
rs=0
vps = 0
vhs = 0
for i in range(axes):
axis = joystick.get_axis(i)
if i==0:
# print("zhuanxiang ",axis*car_max_turn)
ls+=axis*car_max_turn
rs-=axis*car_max_turn
if i==1:
# print("zhixing ",-axis*car_max_speed)
ls-=axis*car_max_speed
rs -= axis * car_max_speed
if i==4:#上是負數
vps=axis*camera_max_speed
if i == 3: # 左是負數
vhs = -axis * camera_max_speed
# print(i,axis)
left_speed = ls
right_speed = rs
vis_v_par = vps
vis_v_hor = vhs
# print('左輪速度 = ', left_speed, " 右輪速度 = ", right_speed)
# print('相機水平移動速度 = ', vis_v_par, " 相機垂直移動速度 = ", vis_v_hor)
clock.tick(20)
def print_thread():
while (not done):
print('***************=')
print('左輪速度 = ',left_speed," 右輪速度 = ",right_speed)
print('相機水平移動速度 = ', vis_v_par, " 相機垂直移動速度 = ", vis_v_hor)
def get_shoubing_info():
return left_speed,right_speed,vis_v_par,vis_v_hor
t1 =threading.thread(target=shoubin_thread)
t1.start()
# t2 =threading.thread(target=print_thread)
# t2.start()
1.最簡單的,將最後面t2的注釋去掉就好了
2.亦或者通過呼叫的方法
import test_shoubing_noclass#這裡放上面的檔案的名字
while(1):
print(test_shoubing_noclass.get_shoubing_info())
因為樹莓派小車是四輪固定的,沒有轉向輪,所以轉向是通過兩邊輪胎的差速來達成轉向
所以我將兩邊輪胎的轉速分開控制
使用樹莓派製作智慧型小車
小車的控制最主要有兩方面的控制,乙個是小車的前後左右的運動控制,乙個是攝像頭的拍攝 上下左右轉運的控制。複製 coding utf 8 import rpi.gpio as gpio import time 小車電機引腳定義 leftin1 20 leftin2 21 leftspeed 16 ri...
樹莓派筆記15 手機控制樹莓派小車
小車 演示 購買現成的小車底座,包括電機馬達和車輪 使用l298n模組來控制小車底座上的電機,使樹莓派可以驅動小車運動 一塊12v的鋰電池,專門給l298n供電 樹莓派專用csi介面攝像頭,用來採集影象 由兩個sg90舵機構成的雲台,作為攝像頭的搭載平台 一塊oled顯示屏,簡要地顯示一些資訊 不用...
樹莓派wifi自動獲取ip
樹莓派的wifi顯示正常鏈結到了網路中,但是ping www.baidu.com時,顯示網路不可用。初步判斷是前一天設定了固定ip,今天換成鏈結移動無線路由器時,ip無法正常獲取。因此,在network preferences中,將所有的網路都設定成了自動獲取配置的方式。然後,重啟後,仍然無法pin...