日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

树莓派综合项目2:智能小车(三)无线电遥控

發(fā)布時(shí)間:2024/3/26 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树莓派综合项目2:智能小车(三)无线电遥控 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、介紹

??閱讀本篇文章前建議先參考前期文章:
??樹莓派基礎(chǔ)實(shí)驗(yàn)34:L298N模塊驅(qū)動(dòng)直流電機(jī)實(shí)驗(yàn)
??樹莓派綜合項(xiàng)目2:智能小車(一)四輪驅(qū)動(dòng)
??樹莓派綜合項(xiàng)目2:智能小車(二)tkinter圖形界面控制
??《智能小車(一)四輪驅(qū)動(dòng)》中,實(shí)現(xiàn)了代碼輸入對(duì)四個(gè)電機(jī)的簡(jiǎn)單控制。《智能小車(二)tkinter圖形界面控制》中,實(shí)現(xiàn)了本地圖形界面控制小車的前進(jìn)后退、轉(zhuǎn)向和原地轉(zhuǎn)圈。

??本實(shí)驗(yàn)中將使用無(wú)線電遙控設(shè)備控制小車的前進(jìn)后退、轉(zhuǎn)向和原地轉(zhuǎn)圈。使用傳統(tǒng)無(wú)線電通信設(shè)備通信仍然是非常重要的通信方式,比如無(wú)線電臺(tái)、對(duì)講機(jī),航模、車模、船模遙控等等。與手機(jī)移動(dòng)網(wǎng)絡(luò)、WIFI連接相比,無(wú)線電連接有它獨(dú)特的優(yōu)勢(shì),遙控距離遠(yuǎn),實(shí)時(shí)性好,操作靈活,不受網(wǎng)絡(luò)信號(hào)限制。

??其它基礎(chǔ)內(nèi)容可以參考文集:樹莓派基礎(chǔ)實(shí)驗(yàn)。

二、組件

★Raspberry Pi 3 B+全套*1

★睿思凱Frsky XM+ 迷你接收機(jī)*1

★電平反向器模塊*1

★睿思凱Frsky Taranis X9D PLUS SE2019遙控器*1

★L(fēng)298N擴(kuò)展板模塊*1

★智能小車底板模塊*1

★減速電機(jī)和車輪*4

★跳線若干

三、實(shí)驗(yàn)原理

本實(shí)驗(yàn)中使用的遙控系統(tǒng)可以自行選擇其它品牌的產(chǎn)品,如國(guó)產(chǎn)的天地飛還不錯(cuò)。


這里的遙控器就是像電視機(jī)遙控器、空調(diào)遙控器一樣可以不用接觸到被控設(shè)備,而通過(guò)一個(gè)手持器件,使用無(wú)線電與被控設(shè)備進(jìn)行通信,從而達(dá)到對(duì)設(shè)備的控制。

遙控器想到達(dá)到與小車通信的功能需要有兩部分配合完成。即:發(fā)射器(遙控器)與接收機(jī)。遙控器上的控制桿轉(zhuǎn)為無(wú)線電波發(fā)送給接收機(jī),而接收機(jī)通過(guò)接收無(wú)線電波,讀取遙控器上控制桿的讀數(shù),并轉(zhuǎn)為數(shù)字信號(hào)發(fā)送到樹莓派中。

接收機(jī)輸出兩種信號(hào),一種是模擬信號(hào)PWM,一種是SBUS數(shù)字信號(hào)。

由于每一路遙控器通道都需要一個(gè)PWM采集器進(jìn)行采集,但是對(duì)于樹莓派來(lái)說(shuō)不可能使用多個(gè)定時(shí)器來(lái)采集多個(gè)通道的PWM,這對(duì)于樹莓派的GPIO端口資源來(lái)說(shuō)十分浪費(fèi),因此我采用的就是SBUS信號(hào),可以在一個(gè)管腳中傳輸多路控制信號(hào)。

S-BUS其實(shí)是一種串口通信協(xié)議,采用100000的波特率,數(shù)據(jù)位點(diǎn)8bits,停止位點(diǎn)2bits,偶效驗(yàn),即8E2的串口通信。使用樹莓派的串口GPIO(TXD/RXD)中的RXD端口接收接收機(jī)的SBUS輸出信號(hào),解析出每路通道的控制信號(hào),進(jìn)而控制小車行進(jìn)。

但是S-BUS采用的是反向電平傳輸,也就是說(shuō),在S-BUS的發(fā)送端高低電平是反向的,協(xié)議中的所有高電平都被轉(zhuǎn)換成低電平,協(xié)議中的所有低電平都被轉(zhuǎn)換成高電平。所以在S-BUS的接收端需要增加一個(gè)高低電平反向器來(lái)進(jìn)行電平反轉(zhuǎn)。

關(guān)于解析無(wú)線電接收機(jī)PWM、SBUS信號(hào)的更詳細(xì)內(nèi)容,請(qǐng)參考樹莓派基礎(chǔ)實(shí)驗(yàn)39:解析無(wú)線電接收機(jī)PWM、SBUS信號(hào)。

四、實(shí)驗(yàn)步驟

??第1步: 連接電路。在樹莓派綜合項(xiàng)目2:智能小車(一)四輪驅(qū)動(dòng)中的接線基礎(chǔ)上,接入電平反向器、無(wú)線電接收機(jī)。

樹莓派(name)樹莓派(BOARD)L298N小車擴(kuò)展板
GPIO.011ENA
GPIO.213IN1
GPIO.315IN2
GPIO.112ENB
GPIO.416IN3
GPIO.518IN4
GNDGND電池組供電負(fù)極

關(guān)于這里樹莓派GND、L298N小車擴(kuò)展板的電池組供電負(fù)極相連,是特殊情況下的情況,經(jīng)測(cè)試發(fā)現(xiàn):
如果樹莓派用的是充電頭供電,而L298N擴(kuò)展板用的是電池組供電,這兩個(gè)負(fù)極必須相連,否則馬達(dá)不動(dòng)。
如果樹莓派用的是L298N擴(kuò)展板接出來(lái)的5V供電,即兩者同一個(gè)電源,則這里不用連接。

L298N小車擴(kuò)展板電池組樹莓派電壓表頭馬達(dá)
電池+(-)電池+(-)
5V供電電源接口
+(-)+(-)
T1(L后)+(-)
T2(L前)+(-)
T3(R前)+(-)
T4(R后)+(-)
樹莓派(name)樹莓派(BOARD)電平反向器無(wú)線電接收機(jī)
A6SBUS_OUT
RXD10B6
3.3V1VCC
0V9GND
5V2VCC
0V14GND

這里也要注意,由于樹莓派的GPIO只能接收3.3V的最高輸入,所以電平反相器的電源也只能使用3.3V,若反向后接收的信號(hào)需要是5V,則電平反相器的電源就使用5V。

這里我將18650電池組換成了航模使用的格氏ACE鋰電池(3S/11.1V/2200MAH/40C),電壓更高,能給樹莓派提供更穩(wěn)定的電源,動(dòng)力性也更好,效果非常不錯(cuò)。

??第2步: 編寫電機(jī)的驅(qū)動(dòng)程序,文件名為motor_4w.py。與樹莓派綜合項(xiàng)目2:智能小車(一)四輪驅(qū)動(dòng)中的程序完全相同。

??該車的行進(jìn)控制與履帶車的行進(jìn)控制類似:

前進(jìn)和后退很簡(jiǎn)單,左右兩邊的方向都朝前或朝后,速度一致;
原地順時(shí)針旋轉(zhuǎn)時(shí),左邊輪子前進(jìn),右邊輪子后退,速度一致;
原地逆時(shí)針旋轉(zhuǎn)時(shí),左邊輪子后退,右邊輪子前進(jìn),速度一致;
偏左前進(jìn)時(shí),左右兩邊的方向都朝前,左輪速度比右輪速度慢一點(diǎn);
偏右前進(jìn)時(shí),左右兩邊的方向都朝前,左輪速度比右輪速度快一點(diǎn);
偏左后退時(shí),左右兩邊的方向都朝后,左輪速度比右輪速度慢一點(diǎn);
偏右后退時(shí),左右兩邊的方向都朝后,左輪速度比右輪速度快一點(diǎn);

motor_4w.py:

#!/usr/bin/env python #-*- coding: utf-8 -*- #本模塊只含SMPcar()一個(gè)類,用于樹莓派對(duì)電機(jī)信號(hào)的控制 #通過(guò)GPIO輸出信號(hào),直接對(duì)某個(gè)電機(jī)的轉(zhuǎn)動(dòng)方向、速度進(jìn)行控制import RPi.GPIO as GPIOclass SMPcar():'''控制小車四輪動(dòng)作的類'''ENA = 11 #使能信號(hào)A,左邊兩輪IN1 = 13 #信號(hào)輸入1IN2 = 15 #信號(hào)輸入2ENB = 12 #使能信號(hào)B,右邊兩輪IN3 = 16 #信號(hào)輸入3IN4 = 18 #信號(hào)輸入4GPIO.setwarnings(False) #關(guān)閉警告def setGPIO(self):'''初始化引腳'''GPIO.setmode(GPIO.BOARD)GPIO.setup(SMPcar.ENA, GPIO.OUT)GPIO.setup(SMPcar.IN1, GPIO.OUT)GPIO.setup(SMPcar.IN2, GPIO.OUT)GPIO.setup(SMPcar.ENB, GPIO.OUT)GPIO.setup(SMPcar.IN3, GPIO.OUT)GPIO.setup(SMPcar.IN4, GPIO.OUT)def pwm(self,pwm): '''初始化PWM(脈寬調(diào)制),返回PWM對(duì)象'''EN_pwm = GPIO.PWM(pwm, 500)EN_pwm.start(0)return EN_pwmdef changespeed(self,pwm,speed):'''通過(guò)改變占空比改變馬達(dá)轉(zhuǎn)速'''pwm.ChangeDutyCycle(speed)def clockwise(self,in1_pin,in2_pin):'''馬達(dá)順時(shí)針轉(zhuǎn)的信號(hào)'''GPIO.output(in1_pin, 1)GPIO.output(in2_pin, 0)def counter_clockwise(self,in1_pin,in2_pin):'''馬達(dá)逆時(shí)針轉(zhuǎn)的信號(hào)'''GPIO.output(in1_pin, 0)GPIO.output(in2_pin, 1)def stop_car(self,in1_pin,in2_pin):'''馬達(dá)制動(dòng)的信號(hào)'''GPIO.output(in1_pin, 0)GPIO.output(in2_pin, 0)#使能信號(hào)為低電平,或者高電平(占空比設(shè)為100,IN1和IN2都為0或1時(shí))馬達(dá)制動(dòng)def destroy(self,A,B):'''結(jié)束程序時(shí)清空GPIO狀態(tài)'''A.stop()B.stop()GPIO.cleanup() # Release resourceif __name__ == '__main__': # 本模塊單獨(dú)測(cè)試時(shí)運(yùn)行使用try:smpcar = SMPcar() #創(chuàng)建樹莓派小車對(duì)象smpcar.setGPIO() #初始化引腳ENA_pwm=smpcar.pwm(smpcar.ENA) #初始化使能信號(hào)PWM,A為左邊車輪ENB_pwm=smpcar.pwm(smpcar.ENB) #初始化使能信號(hào)PWM,B為右邊車輪while True:'''通過(guò)輸入的命令改變馬達(dá)轉(zhuǎn)動(dòng)'''cmd = raw_input("Command, E.g. ff30ff30 :")direction = cmd[0] #只輸入字母b時(shí),小車剎車A_direction = cmd[0:2] #字符串0/1兩位為控制A(左邊車輪)方向信號(hào)B_direction = cmd[4:6] #4/5位為控制B(右邊車輪)方向信號(hào)A_speed = cmd[2:4] #字符串2/3兩位為控制A(左邊車輪)速度信號(hào)B_speed = cmd[6:8] #字符串6/7兩位為控制B(右邊車輪)速度信號(hào)print (A_direction,B_direction,A_speed,B_speed) #測(cè)試用if A_direction == "ff": #控制A(左邊車輪)順時(shí)針信號(hào)smpcar.clockwise(smpcar.IN1,smpcar.IN2)if A_direction == "00": #控制A(左邊車輪)逆時(shí)針信號(hào)smpcar.counter_clockwise(smpcar.IN1,smpcar.IN2)if B_direction == "ff": #控制B(右邊車輪)順時(shí)針信號(hào)smpcar.clockwise(smpcar.IN3,smpcar.IN4)if B_direction == "00": #控制B(右邊車輪)逆時(shí)針信號(hào)smpcar.counter_clockwise(smpcar.IN3,smpcar.IN4)if direction == "b": #小車剎車,IN1和IN2都為0,馬達(dá)制動(dòng)smpcar.stop_car(smpcar.IN1,smpcar.IN2)smpcar.stop_car(smpcar.IN3,smpcar.IN4)continue #跳出本次循環(huán)# 通過(guò)輸入的兩位數(shù)字設(shè)置占空比,改變馬達(dá)轉(zhuǎn)速smpcar.changespeed(ENA_pwm,int(A_speed))smpcar.changespeed(ENB_pwm,int(B_speed))except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.smpcar.destroy(ENA_pwm,ENB_pwm)finally:smpcar.destroy(ENA_pwm,ENB_pwm)

??第3步: 小車行進(jìn)控制模塊,文件名為moving_control.py,設(shè)計(jì)小車的移動(dòng)行為,方向控制分為:原地左轉(zhuǎn)彎、原地右轉(zhuǎn)彎、直線前進(jìn)、直線后退、剎車,而向前左偏移開進(jìn)或右偏移開進(jìn)等,由左右兩邊不同的速度(油門)來(lái)控制。
moving_control.py:

#-*- coding: utf-8 -*- #本模塊只含MovingControl()一個(gè)類,針對(duì)遙控器的控制方式,設(shè)計(jì)小車的移動(dòng)行為 #方向控制分為:原地左轉(zhuǎn)彎、原地右轉(zhuǎn)彎、直線前進(jìn)、直線后退、剎車 #而向前左偏移開進(jìn)或右偏移開進(jìn)等,由左右兩邊不同的速度(油門)來(lái)控制class MovingControl():def __init__(self, smpcar,pwm1,pwm2):self.smpcar=smpcarself.ENA_pwm=pwm1self.ENB_pwm=pwm2self.rudder_value = 0self.acc_value = 0def accelerator(self,rate_left=1,rate_right=1):'''速度(油門)控制'''#rate_left為向左偏移行進(jìn)時(shí),降低左邊輪的速度#rate_right為向右偏移行進(jìn)時(shí),降低右邊輪的速度self.smpcar.changespeed(self.ENA_pwm,self.acc_value * rate_left)self.smpcar.changespeed(self.ENB_pwm,self.acc_value * rate_right)def leftTurn(self):'''原地左轉(zhuǎn)彎'''self.smpcar.counter_clockwise(self.smpcar.IN1,self.smpcar.IN2) #左邊車輪后退self.smpcar.clockwise(self.smpcar.IN3,self.smpcar.IN4) #右邊車輪前進(jìn)def rightTurn(self):'''原地右轉(zhuǎn)彎'''self.smpcar.clockwise(self.smpcar.IN1,self.smpcar.IN2)self.smpcar.counter_clockwise(self.smpcar.IN3,self.smpcar.IN4)def forward(self):'''直線前進(jìn)'''self.smpcar.clockwise(self.smpcar.IN1,self.smpcar.IN2)self.smpcar.clockwise(self.smpcar.IN3,self.smpcar.IN4)def reverse(self):'''直線后退'''self.smpcar.counter_clockwise(self.smpcar.IN1,self.smpcar.IN2)self.smpcar.counter_clockwise(self.smpcar.IN3,self.smpcar.IN4)def brake(self):'''剎車'''self.smpcar.stop_car(self.smpcar.IN1,self.smpcar.IN2)self.smpcar.stop_car(self.smpcar.IN3,self.smpcar.IN4)

??第4步: 編寫SBUS信號(hào)接收解析模塊,文件名為sbus_receiver_pi.py,與樹莓派基礎(chǔ)實(shí)驗(yàn)39:解析無(wú)線電接收機(jī)PWM、SBUS信號(hào)中的Python2程序有所不同,下面的程序在Python3中運(yùn)行,并標(biāo)注了兩者的不同之處。
sbus_receiver_pi.py:

#!/usr/bin/env python #-*- coding: utf-8 -*- #本模塊只含SBUSReceiver()一個(gè)類,用于獲取和解析遙控器接收機(jī)的SBUS輸出信號(hào) #并能返回每個(gè)通道的數(shù)值,遙控器的failsafe信號(hào)狀態(tài),每次獲得數(shù)據(jù)幀的長(zhǎng)度和這次數(shù)據(jù)的延遲時(shí)間#import array #python2運(yùn)行時(shí)需要,array模塊是python中實(shí)現(xiàn)的一種高效的數(shù)組存儲(chǔ)類型 import serial #serial模塊封裝了對(duì)串行端口的訪問(wèn) #import binascii #python2運(yùn)行時(shí)需要,binascii模塊包含很多在二進(jìn)制和ASCII編碼的二進(jìn)制表示轉(zhuǎn)換的方法 #import codecs #python2運(yùn)行時(shí)需要,Python中專門用作編碼轉(zhuǎn)換的模塊 import timeclass SBUSReceiver():def __init__(self, _uart_port='/dev/ttyAMA0'):#初始化樹莓派串口參數(shù)self.ser = serial.Serial(port=_uart_port, #樹莓派的硬件串口/dev/ttyAMA0baudrate = 100000, #波特率為100kparity=serial.PARITY_EVEN, #偶校驗(yàn)stopbits=serial.STOPBITS_TWO,#2個(gè)停止位bytesize=serial.EIGHTBITS, #8個(gè)數(shù)據(jù)位timeout = 0,)# 常數(shù)#這里注意:Python2 與Python3 的編碼方式是不同的#self.START_BYTE = b'\x0f' #python2運(yùn)行時(shí)用這句,起始字節(jié)為0x0f#self.END_BYTE = b'\x00' #python2運(yùn)行時(shí)用這句,結(jié)束字節(jié)為0x00self.START_BYTE = 0x0f #python3運(yùn)行時(shí)用這句,起始字節(jié)為0x0fself.END_BYTE = 0x00 #python3運(yùn)行時(shí)用這句,結(jié)束字節(jié)為0x00self.SBUS_FRAME_LEN = 25 #SBUS幀有25個(gè)字節(jié)self.SBUS_NUM_CHAN = 18 #18個(gè)通道self.OUT_OF_SYNC_THD = 10self.SBUS_NUM_CHANNELS = 18 #18個(gè)通道self.SBUS_SIGNAL_OK = 0 #信號(hào)正常為0self.SBUS_SIGNAL_LOST = 1 #信號(hào)丟失為1self.SBUS_SIGNAL_FAILSAFE = 2 #輸出failsafe信號(hào)時(shí)為2# 堆棧變量初始化self.isReady = Trueself.lastFrameTime = 0self.sbusBuff = bytearray(1) # 用于同步的單個(gè)字節(jié)#bytearray(n) 方法返回一個(gè)長(zhǎng)度為n的初始化數(shù)組;'''這里Python2與Python3存儲(chǔ)數(shù)據(jù)的編碼格式會(huì)不同'''self.sbusFrame = bytearray(25) # 單個(gè)SBUS數(shù)據(jù)幀,25個(gè)字節(jié)# 接收到的各頻道值,前面的Python2中使用了數(shù)組#self.sbusChannels = array.array('H', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) #array.array(typecode,[initializer]) --typecode:元素類型代碼;initializer:初始化器,若數(shù)組為空,則省略初始化器# 接收到的各頻道值,Python3中這里也可以使用列表self.sbusChannels = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]self.failSafeStatus = self.SBUS_SIGNAL_FAILSAFEdef get_rx_channels(self):"""用于讀取最后的SBUS通道值返回:由18個(gè)無(wú)符號(hào)短元素組成的數(shù)組,包含16個(gè)標(biāo)準(zhǔn)通道值+ 2個(gè)數(shù)字(ch17和18)"""return self.sbusChannelsdef get_rx_channel(self, num_ch):"""用于讀取最后的SBUS某一特定通道的值num_ch: 要讀取的某個(gè)通道的通道序號(hào)返回:某一通道的值"""return self.sbusChannels[num_ch]def get_failsafe_status(self):"""用于獲取最后的FAILSAFE狀態(tài)返回: FAILSAFE狀態(tài)值"""return self.failSafeStatusdef decode_frame(self):"""對(duì)每幀數(shù)據(jù)進(jìn)行解碼,每個(gè)通道的值在兩個(gè)或三個(gè)不同的字節(jié)之間,要讀取出來(lái)很麻煩不過(guò)futaba已經(jīng)發(fā)布了下面的解碼代碼"""def toInt(_from):#encode() 方法以指定的編碼格式編碼字符串。#int() 函數(shù)用于將一個(gè)字符串或數(shù)字轉(zhuǎn)換為整型。#return int(codecs.encode(_from, 'hex'), 16) #Python2中要使用這句,轉(zhuǎn)換編碼格式return _from #Python3中要使用這句,即不用轉(zhuǎn)換編碼格式#CH1 = [data2]的低3位 + [data1]的8位(678+12345678 = 678,12345678)self.sbusChannels[0] = ((toInt(self.sbusFrame[1]) |toInt(self.sbusFrame[2])<<8) & 0x07FF);#CH2 = [data3]的低6位 + [data2]的高5位(345678+12345 = 345678,12345 )self.sbusChannels[1] = ((toInt(self.sbusFrame[2])>>3 |toInt(self.sbusFrame[3])<<5) & 0x07FF);#CH3 = [data5]的低1位 + [data4]的8位 + [data3]的高2位(8+12345678+12 = 8,12345678,12)self.sbusChannels[2] = ((toInt(self.sbusFrame[3])>>6 |toInt(self.sbusFrame[4])<<2 |toInt(self.sbusFrame[5])<<10) & 0x07FF);self.sbusChannels[3] = ((toInt(self.sbusFrame[5])>>1 |toInt(self.sbusFrame[6])<<7) & 0x07FF);self.sbusChannels[4] = ((toInt(self.sbusFrame[6])>>4 |toInt(self.sbusFrame[7])<<4) & 0x07FF);self.sbusChannels[5] = ((toInt(self.sbusFrame[7])>>7 |toInt(self.sbusFrame[8])<<1 |toInt(self.sbusFrame[9])<<9) & 0x07FF);self.sbusChannels[6] = ((toInt(self.sbusFrame[9])>>2 |toInt(self.sbusFrame[10])<<6) & 0x07FF);self.sbusChannels[7] = ((toInt(self.sbusFrame[10])>>5 |toInt(self.sbusFrame[11])<<3) & 0x07FF);self.sbusChannels[8] = ((toInt(self.sbusFrame[12]) |toInt(self.sbusFrame[13])<<8) & 0x07FF);self.sbusChannels[9] = ((toInt(self.sbusFrame[13])>>3 |toInt(self.sbusFrame[14])<<5) & 0x07FF);self.sbusChannels[10] = ((toInt(self.sbusFrame[14])>>6 |toInt(self.sbusFrame[15])<<2|toInt(self.sbusFrame[16])<<10) & 0x07FF);self.sbusChannels[11] = ((toInt(self.sbusFrame[16])>>1 |toInt(self.sbusFrame[17])<<7) & 0x07FF);self.sbusChannels[12] = ((toInt(self.sbusFrame[17])>>4 |toInt(self.sbusFrame[18])<<4) & 0x07FF);self.sbusChannels[13] = ((toInt(self.sbusFrame[18])>>7 |toInt(self.sbusFrame[19])<<1|toInt(self.sbusFrame[20])<<9) & 0x07FF);self.sbusChannels[14] = ((toInt(self.sbusFrame[20])>>2 |toInt(self.sbusFrame[21])<<6) & 0x07FF);self.sbusChannels[15] = ((toInt(self.sbusFrame[21])>>5 |toInt(self.sbusFrame[22])<<3) & 0x07FF);#17頻道,第24字節(jié)的最低一位if toInt(self.sbusFrame[23]) & 0x0001 :self.sbusChannels[16] = 2047else:self.sbusChannels[16] = 0#18頻道,第24字節(jié)的低第二位,所以要右移一位if (toInt(self.sbusFrame[23]) >> 1) & 0x0001 :self.sbusChannels[17] = 2047else:self.sbusChannels[17] = 0#幀丟失位為1時(shí),第24字節(jié)的低第三位,與0x04進(jìn)行與運(yùn)算self.failSafeStatus = self.SBUS_SIGNAL_OKif toInt(self.sbusFrame[23]) & (1 << 2):self.failSafeStatus = self.SBUS_SIGNAL_LOST#故障保護(hù)激活位為1時(shí),第24字節(jié)的低第四位,與0x08進(jìn)行與運(yùn)算 if toInt(self.sbusFrame[23]) & (1 << 3):self.failSafeStatus = self.SBUS_SIGNAL_FAILSAFEdef update(self):"""我們需要至少2幀大小,以確保找到一個(gè)完整的幀所以我們?nèi)〕鏊械木彺?#xff08;清空它),讀取全部數(shù)據(jù),直到捕獲新的數(shù)據(jù)首先找到END BYTE并向后查找SBUS_FRAME_LEN,看看它是否是START BYTE"""#我們是否有足夠的數(shù)據(jù)在緩沖區(qū)和有沒(méi)有線程在后臺(tái)?if self.ser.inWaiting() >= self.SBUS_FRAME_LEN*2 and self.isReady: #inWaiting()返回接收緩存中的字節(jié)數(shù)self.isReady = False #表明有線程在運(yùn)行,isReady = False# 讀取所有臨時(shí)幀數(shù)據(jù)tempFrame = self.ser.read(self.ser.inWaiting())# 在緩沖區(qū)幀的每個(gè)字符中,我們尋找結(jié)束字節(jié)for end in range(0, self.SBUS_FRAME_LEN):#尋找結(jié)束字節(jié),從后向前查找if tempFrame[len(tempFrame)-1-end] == self.END_BYTE :#從最后的命中點(diǎn)減去SBUS_FRAME_LEN尋找起始字節(jié)if tempFrame[len(tempFrame)-end-self.SBUS_FRAME_LEN] == self.START_BYTE :# 如果相等,則幀數(shù)據(jù)正確,數(shù)據(jù)以8E2包到達(dá),因此它已經(jīng)被校驗(yàn)過(guò)# 從臨時(shí)幀數(shù)據(jù)中取出剛驗(yàn)證正確的一段正確幀數(shù)據(jù)lastUpdate = tempFrame[len(tempFrame)-end-self.SBUS_FRAME_LEN:len(tempFrame)-1-end]if not self.sbusFrame == lastUpdate: #相等即表示沒(méi)有操作,不用再次解碼self.sbusFrame = lastUpdateself.decode_frame() #調(diào)用解碼函數(shù)self.lastFrameTime = time.time() # 跟蹤最近的更新時(shí)間self.isReady = Truebreakif __name__ == '__main__':sbus = SBUSReceiver('/dev/ttyAMA0')while True:time.sleep(0.005)# X8R的SBUS信號(hào)是間隔6ms發(fā)送一次,一次持續(xù)發(fā)送3ms;# 不要調(diào)用sbus.update()太快,如果sbus.ser.inWaiting()>50,且增長(zhǎng)很多,可以調(diào)用sbus.update()快點(diǎn),即time.sleep()延遲短點(diǎn);# 如果sbus.ser.inWaiting()<50,可以調(diào)用sbus.update()慢點(diǎn),即time.sleep()延遲長(zhǎng)點(diǎn);sbus.update()#在您的代碼中,您可以調(diào)用sbus.get_rx_channels()來(lái)獲取所有數(shù)據(jù),或者調(diào)用sbus.get_rx_channels()[n]來(lái)獲取第n個(gè)通道的值;#或get_rx_channel(self, num_ch)來(lái)獲得第num_ch個(gè)通道的值;print(sbus.get_failsafe_status(), sbus.get_rx_channels(), str(sbus.ser.inWaiting()).zfill(4) , (time.time()-sbus.lastFrameTime))#str() 函數(shù)將對(duì)象轉(zhuǎn)化為適于人閱讀的形式,將指定的值轉(zhuǎn)換為字符串。#zfill() 方法返回指定長(zhǎng)度的字符串,原字符串右對(duì)齊,前面填充0。#(time.time()-sbus.lastFrameTime)用于展示得到最近這次數(shù)據(jù)的延遲

??第5步: 編寫樹莓派智能小車的主程序,文件名為smartcar.py,將這4個(gè)Python文件放入一個(gè)文件夾后,只運(yùn)行本文件就可以了。
smartcar.py:

#!/usr/bin/env python #-*- coding: utf-8 -*- #本模塊為樹莓派小車的主程序 from motor_4w import SMPcar from sbus_receiver_pi import SBUSReceiver from moving_control import MovingControl import timetry:sbus_receiver = SBUSReceiver('/dev/ttyAMA0') #初始化實(shí)例smp_car = SMPcar() #初始化實(shí)例smp_car.setGPIO() #初始化引腳ENA_pwm = smp_car.pwm(smp_car.ENA) #初始化使能信號(hào)PWM,A為左邊車輪ENB_pwm = smp_car.pwm(smp_car.ENB) #初始化使能信號(hào)PWM,B為右邊車輪smartcar = MovingControl(smp_car,ENA_pwm,ENB_pwm) ##初始化實(shí)例acc_value_sbus = 172 #3通道,即油門的值,最低時(shí)為172while True:time.sleep(0.005)sbus_receiver.update() #獲取一個(gè)完整的幀數(shù)據(jù)aileron_value = sbus_receiver.get_rx_channel(0) #1通道為副翼通道,這里控制車原地轉(zhuǎn)向elevator_value = sbus_receiver.get_rx_channel(1)#2通道為升降舵通道,這里控制車前進(jìn)后退smartcar.rudder_value = sbus_receiver.get_rx_channel(3)#4通道為方向舵通道,這里控制車左右偏移行進(jìn)if sbus_receiver.get_rx_channel(2):acc_value_sbus = sbus_receiver.get_rx_channel(2) #3通道為油門通道,這里控制車速度#將172~1811的油門通道值轉(zhuǎn)換為0~100的占空比信號(hào),smartcar.acc_value = int(100*(acc_value_sbus-172)/(1811-172))if 970 < smartcar.rudder_value < 1100: #沒(méi)有左右偏移時(shí),中間值為992,但遙控器微調(diào)時(shí)會(huì)有上下浮動(dòng)smartcar.accelerator()elif smartcar.rudder_value >=1100: #向右偏移行進(jìn)時(shí)rate_right = (1811.0 - smartcar.rudder_value)/(1811-1100) #最大值一般為1811,這里使用浮點(diǎn)類型,所以一定要使用1811.0smartcar.accelerator(1,rate_right)elif smartcar.rudder_value <=970: #向左偏移行進(jìn)時(shí)rate_left = (smartcar.rudder_value - 172.0)/(970-172) #最小值為172,這里使用浮點(diǎn)類型,所以一定要使用172.0smartcar.accelerator(rate_left,1)print(elevator_value,smartcar.acc_value,aileron_value,smartcar.rudder_value)#測(cè)試數(shù)據(jù)用if aileron_value >= 1100: #原地左轉(zhuǎn)彎smartcar.leftTurn()elif aileron_value <= 970: #原地右轉(zhuǎn)彎smartcar.rightTurn()else : smartcar.brake() #停車if elevator_value >=1100: #前進(jìn)smartcar.forward()elif elevator_value <=970: #后退smartcar.reverse()#循環(huán)最后,這里不能再用停車了 except KeyboardInterrupt: smp_car.destroy(ENA_pwm,ENB_pwm) finally:smp_car.destroy(ENA_pwm,ENB_pwm)

操控演示視頻:
https://www.bilibili.com/video/BV1Q5411L75a/

最近太忙,這篇文章拖了很久才完成,當(dāng)中克服了一個(gè)個(gè)不懂的技術(shù)難點(diǎn)和BUG,不過(guò)終于實(shí)現(xiàn)了遙控小車的想法,成功將無(wú)線電遙控和樹莓派結(jié)合起來(lái)。

辛苦是值得的,學(xué)到不少東西,后面將陸續(xù)把各種傳感器加入進(jìn)來(lái),實(shí)現(xiàn)智能化。

這個(gè)項(xiàng)目的代碼90%是我原創(chuàng)瞎寫的,有需要參考的同學(xué)可以下載:
樹莓派智能小車項(xiàng)目python源代碼下載

總結(jié)

以上是生活随笔為你收集整理的树莓派综合项目2:智能小车(三)无线电遥控的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

国内久久久久久 | 免费视频a | 中文字幕电影高清在线观看 | 国产午夜精品av一区二区 | 日韩成人免费观看 | 婷婷丁香综合 | 成人免费视频在线观看 | www.亚洲激情.com | 五月婷婷激情网 | 丁香午夜婷婷 | 免费观看一级特黄欧美大片 | 午夜在线免费观看 | 美女黄久久| 狠狠躁18三区二区一区ai明星 | av大片免费在线观看 | 久久婷婷国产色一区二区三区 | 久久久久久久久久久电影 | 在线看一区二区 | 久久久国产精品免费 | 免费看黄色毛片 | 亚洲www天堂com | 狠狠操天天干 | 免费福利片| 国产视频在线播放 | 亚洲首页| 视色网站 | 天天爽夜夜爽人人爽一区二区 | 黄色aaa级片 | 日韩免费电影一区二区 | bbb搡bbb爽爽爽 | 免费在线日韩 | 在线观看av网站 | 久久久国产一区二区三区四区小说 | 亚洲.www | 久草视频99| 日黄网站 | 久久久国产精品人人片99精片欧美一 | 日韩精品一区二区三区丰满 | 激情影音| 成人四虎| 韩国av电影在线观看 | 成年人电影免费看 | 久 久久影院 | 四虎影视久久久 | 国产福利久久 | 911精品美国片911久久久 | 久久久国产一区二区 | 欧美黄污视频 | 亚洲精品视频第一页 | 国产成人精品综合久久久久99 | 日韩欧美高清视频在线观看 | 欧美日韩在线视频一区 | 成人免费影院 | 日韩两性视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产精品免费看久久久8精臀av | 国产+日韩欧美 | 激情av网址 | www.成人精品 | 精品女同一区二区三区在线观看 | 欧美激情视频一区 | 免费色av| 日日干视频 | 国产精品永久久久久久久久久 | 免费日韩视 | 欧美另类高清 videos | 免费精品视频在线 | 亚洲午夜久久久久久久久电影网 | 久久黄色小说 | 又黄又爽又色无遮挡免费 | 国产精品6999成人免费视频 | 国产无吗一区二区三区在线欢 | 五月天精品视频 | 一二区av| 91av大全 | 成人亚洲精品久久久久 | 色中射| 国产精品久久久久久久久久久久午夜片 | 久草电影在线观看 | 国产美女免费看 | 一区二区av | 狠色狠色综合久久 | 九九久久婷婷 | 五月婷婷香蕉 | 在线看黄网站 | 国产一区二区免费看 | 久久免费视频网 | 深夜国产在线 | 亚洲国产黄色片 | 国产成人61精品免费看片 | 欧美精品乱码久久久久 | 97网站| 日本久久精| 免费国产一区二区 | 午夜精品久久一牛影视 | 成人欧美一区二区三区在线观看 | 亚洲精品国产区 | 成人av在线影院 | 天天操操 | 成人av影视 | 国产三级视频在线 | 日韩免费在线视频观看 | 日韩美在线 | 亚洲激情综合 | 日韩com | 国产高清不卡av | 91手机在线看片 | 精品国内自产拍在线观看视频 | 色国产精品 | 91精品爽啪蜜夜国产在线播放 | 欧美日韩视频观看 | 成人av片在线观看 | 国产在线国产 | 中文字幕在线看视频国产 | 91插插插网站| 国产精品久久久久999 | 日本精品一区二区在线观看 | 视频三区 | 精品视频免费 | 欧日韩在线 | 狠狠躁18三区二区一区ai明星 | 亚洲午夜久久久久久久久久久 | 国产二区视频在线观看 | 97av色| 欧美一级片 | 成人午夜黄色 | 黄色毛片视频免费观看中文 | 欧美在线视频a | 四虎国产精品免费 | 色婷婷综合在线 | 国产录像在线观看 | 亚洲国产一区在线观看 | 久爱精品在线 | 九色视频网址 | 国产视频精品在线 | 四虎视频| 国产无区一区二区三麻豆 | 毛片基地黄久久久久久天堂 | 97超碰免费在线观看 | 天天干夜夜想 | www天天干 | 狠狠色综合欧美激情 | 在线免费观看黄色 | 国产精品孕妇 | 在线免费观看成人 | 国产日韩精品在线观看 | 黄色三级免费片 | 久久免费试看 | 国产成人一级电影 | 99久久夜色精品国产亚洲 | www.97视频| 99国产一区二区三精品乱码 | 香蕉久久久久 | 亚洲jizzjizz日本少妇 | 日韩另类在线 | www一起操 | 亚洲精品在线国产 | 亚洲成av人电影 | www最近高清中文国语在线观看 | 国产一区二区手机在线观看 | 亚洲午夜大片 | 日本福利视频在线 | 国产精选在线 | 超碰97.com | 国产精品久久久久毛片大屁完整版 | 六月丁香婷婷网 | 亚洲国产剧情 | 成人免费在线观看av | 亚洲成人黄色 | 国产中文字幕一区二区三区 | 中文字幕资源网 | 久久女教师 | 久热色超碰 | 欧美精品久久久久久久 | 亚洲情感电影大片 | 中文字幕日韩电影 | 国产福利一区在线观看 | 亚洲激情六月 | 成人久久亚洲 | 成人黄色影片在线 | 天天拍天天操 | 国产一区二区精品91 | 亚洲精品国产精品国 | 人交video另类hd | 97超级碰碰碰视频在线观看 | 男女靠逼app | 欧美激情视频三区 | 精品国产伦一区二区三区观看说明 | 一区二区三区免费 | 国外av在线 | 日本在线观看中文字幕无线观看 | 狠狠色噜噜狠狠狠狠2021天天 | 最近中文字幕第一页 | 福利在线看片 | 狠狠狠色丁香综合久久天下网 | 中文区中文字幕免费看 | 日韩一区视频在线 | 黄色片毛片 | 成人中文字幕在线 | 国产午夜精品一区 | 亚洲 欧美日韩 国产 中文 | 久久久精品网站 | 最近最新最好看中文视频 | 国产精品 国内视频 | 天天操天天操一操 | 一区二区 不卡 | 日韩三区在线 | 国偷自产视频一区二区久 | 中文字幕专区高清在线观看 | 性日韩欧美在线视频 | 国内精品久久久久久久影视麻豆 | 狠狠精品| 国产精品亚洲视频 | 日韩欧美一区二区在线 | 中文字幕在线影视资源 | 91人人爽人人爽人人精88v | 日本精a在线观看 | 亚洲一区二区精品 | 亚洲免费永久精品国产 | 免费在线观看av不卡 | 91超碰在线播放 | 成人精品999| a√资源在线 | 日韩视频在线观看视频 | 欧美亚洲国产日韩 | 成人网页在线免费观看 | 色婷婷福利视频 | 国产精品久久久免费看 | 日韩黄色一级电影 | 久久a免费视频 | 超碰97中文| 国产一级视频免费看 | 亚洲一区不卡视频 | 久久影院午夜论 | 中文字幕国产精品一区二区 | 午夜精品一区二区三区可下载 | 日韩成人一级大片 | 尤物一区二区三区 | 久久精品综合一区 | 亚洲综合丁香 | 国产高清小视频 | 狠狠gao| 国产精品激情在线观看 | 免费看片亚洲 | 又黄又爽又湿又无遮挡的在线视频 | 亚洲国产精彩中文乱码av | 国产精品一区二区三区免费视频 | 久久91久久久久麻豆精品 | 免费在线观看日韩 | 久久激五月天综合精品 | 97超碰中文字幕 | 欧美日韩裸体免费视频 | 久草在线视频网站 | 美女国内精品自产拍在线播放 | 亚洲人视频在线 | 波多野结衣电影一区 | 精品国产aⅴ一区二区三区 在线直播av | 国产精品久久久久久麻豆一区 | 日本久久电影网 | 99精品在线视频播放 | 美女免费视频黄 | av网站在线观看播放 | 久久91久久久久麻豆精品 | 国产精品成人久久久久 | 在线中文字幕网站 | 国产高清在线精品 | 欧美日韩视频在线观看免费 | 在线99视频| 国产一区二区三区午夜 | 久久视频免费观看 | 91av视频在线播放 | 亚洲手机天堂 | 一级淫片在线观看 | 狠狠躁日日躁狂躁夜夜躁 | 日韩精品综合在线 | 国产精品一区在线观看你懂的 | 在线免费观看国产 | 五月天亚洲婷婷 | 中文字幕在线视频第一页 | 日韩午夜高清 | 色婷婷狠 | 亚洲精品456在线播放乱码 | 欧美日韩xx| 蜜桃视频日本 | www.夜夜爽 | 黄色最新网址 | 亚洲欧美日韩国产一区二区 | 97免费在线视频 | 亚洲人人射 | 日韩精品91偷拍在线观看 | 精品黄色在线观看 | 欧日韩在线视频 | www.夜夜操.com| 夜夜狠狠 | 成人蜜桃网 | 日本黄色免费播放 | 亚洲视频免费 | 十八岁免进欧美 | 麻豆视频免费入口 | 五月天激情综合 | 一区二精品 | 国产乱码精品一区二区三区介绍 | www亚洲视频 | 欧美成人猛片 | 久久九九国产视频 | 亚洲精品视频免费在线观看 | 91精品在线免费观看 | 日日夜av| 国产.精品.日韩.另类.中文.在线.播放 | 欧美成人免费在线 | 日韩中文字幕免费电影 | 狠狠操夜夜 | 国产精品久久久久国产精品日日 | 97超碰国产精品 | 成人a免费视频 | 91免费国产在线观看 | 成年人在线观看视频免费 | 久久精品中文 | 四虎国产精品成人免费影视 | 五月婷婷播播 | 免费av黄色 | 色999在线 | 午夜免费福利视频 | 久久国产精品一二三区 | 日韩一二区在线 | 黄污视频网站大全 | 黄色a级片在线观看 | 天天操欧美 | 韩日电影在线 | 精品久久久久久久久久久久 | 国产精品久久久久久久久久久免费看 | 一区二区三区高清在线观看 | 99热这里只有精品在线观看 | 天天撸夜夜操 | 黄色一级大片免费看 | 日韩久久久久久久久 | 中文字幕精品三区 | 在线观看日韩专区 | 亚洲一级片免费观看 | 看全黄大色黄大片 | 首页中文字幕 | 激情久久伊人 | 日韩电影在线观看一区二区三区 | 麻豆视频91 | 中国一级片在线 | 天天干,夜夜爽 | 黄色a级片在线观看 | www看片网站 | 美女网站视频免费黄 | 久久天天操| 美女网站视频免费都是黄 | 成人h视频 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 五月激情五月激情 | 国产精品短视频 | 久久99国产综合精品免费 | 久久精品视频99 | 久久99久久99精品 | 国内精品久久久久久久影视麻豆 | 免费观看特级毛片 | 夜夜嗨av色一区二区不卡 | 成人三级网址 | 99成人精品 | 亚洲区色 | 久久国产视频网 | 香蕉精品视频在线观看 | 91亚洲精品国偷拍自产在线观看 | 天天综合久久综合 | 久久久久久久久久久久国产精品 | 亚洲精品无 | 波多野结衣在线观看一区二区三区 | 免费在线看成人av | 久久久久久综合网天天 | 久久99视频精品 | 美女网站在线观看 | 色吊丝在线永久观看最新版本 | 成人av影视在线 | 国产精品ssss在线亚洲 | 亚洲婷婷在线视频 | 人人澡人 | 亚洲国产三级在线 | 亚洲天堂在线观看完整版 | 欧美天天综合网 | 天天透天天插 | 中文字幕在线一二 | 噜噜色官网 | 国产九九热 | 黄色软件视频网站 | 99精品免费久久久久久久久日本 | 丰满少妇在线观看 | 中文高清av| 日韩综合一区二区三区 | 欧美国产一区二区 | 免费福利在线播放 | 四虎影视国产精品免费久久 | 亚洲1区 在线 | 中文字幕一区二区三区四区久久 | 国产在线观看网站 | 久久综合中文色婷婷 | 免费黄色在线播放 | 狠狠操欧美 | 国产网红在线观看 | 久草国产在线 | 国产五月婷 | 久久99精品久久久久久三级 | 欧美亚洲国产精品久久高清浪潮 | 久久草视频 | 91在线视频一区 | 免费麻豆视频 | 91免费视频网站在线观看 | 久爱精品在线 | 日韩视频欧美视频 | 国产在线观看免费观看 | 伊人影院得得 | 五月综合激情网 | 精品国产午夜 | 国产精品久久久久久模特 | 亚洲免费在线观看视频 | www国产亚洲 | 久久久久免费精品视频 | 国产剧情一区在线 | 伊人影院在线观看 | 五月婷丁香网 | 国产123av| 欧美激情综合五月 | 久久久国产精品网站 | 中文字幕在线一区二区三区 | 国产亚洲精品福利 | 国语自产偷拍精品视频偷 | 操少妇视频 | 狠狠干狠狠久久 | 亚洲乱亚洲乱妇 | 香蕉97视频观看在线观看 | 99在线精品视频在线观看 | 激情视频91 | 亚洲九九九在线观看 | 日韩av片无码一区二区不卡电影 | 午夜久久福利影院 | 精品一区 在线 | 99在线免费视频 | 人人草在线视频 | 国内精品久久久久影院一蜜桃 | 亚洲精品1234区 | 丁香视频五月 | 91精品国产高清自在线观看 | 久99久中文字幕在线 | 免费久久网站 | 色综合天天色综合 | 99中文在线 | 99久久久国产精品美女 | 国产精品18久久久久久久久 | 在线观看免费黄视频 | 欧美一区二区三区不卡 | 国产黄色电影 | 国产精品久久久久久久久久久不卡 | 久久99精品久久久久久 | 亚洲精品欧美专区 | 黄色免费网站大全 | 日韩在线观看高清 | 亚洲视频 中文字幕 | 天天射综合 | 国产精品视频永久免费播放 | 欧美在线视频一区二区三区 | 日韩在线视频免费播放 | 高清av免费看 | 日韩在线观看一区 | 国产精品久久网站 | 在线观看黄色大片 | 欧美黑吊大战白妞欧美 | 成人在线你懂得 | 黄色精品久久 | 手机在线看a | 国产黄色精品在线 | 精品黄色片 | 久久精品国产v日韩v亚洲 | 黄色字幕网| 91精品亚洲影视在线观看 | 日本韩国欧美在线观看 | 精品xxx | 在线精品国产 | 日韩最新中文字幕 | 国产精品乱码久久久久 | 久久精品视频播放 | 91网在线看 | 一级黄色电影网站 | 在线看片a | 在线免费av观看 | 日韩三级精品 | 成人中文字幕在线 | 久久综合电影 | 美女av在线免费 | 中文字幕在线第一页 | 婷婷丁香导航 | 色婷婷www | 国产精品一区二区三区99 | 久久久天天操 | 999成人 | 天天操天天干天天摸 | 成人午夜精品福利免费 | 国产精品日韩久久久久 | 国产精品午夜久久 | 免费国产ww | 91一区二区在线 | 中文在线免费观看 | 日韩av中文在线观看 | 午夜 在线 | 国产精品久久久久久久久久久久久久 | 中文在线免费一区三区 | 国产最新视频在线 | 三级黄在线 | 国产一区欧美二区 | 久久1电影院 | 丁香伊人网| 久久日韩精品 | 人人玩人人添人人 | 欧美日一级片 | 午夜在线国产 | 美女黄网站视频免费 | 麻豆你懂的 | 香蕉视频在线免费 | 美女在线观看网站 | 国产成人精品一区二区三区福利 | 91久久久久久久一区二区 | 黄色av一级| 国产精品亚洲精品 | 国产又粗又猛又爽又黄的视频先 | 国产精品va最新国产精品视频 | 午夜av免费在线观看 | 国产三级国产精品国产专区50 | 激情久久小说 | 亚洲黄色免费在线看 | 五月婷婷中文网 | 久久久久国产免费免费 | 免费黄色在线播放 | 久久一线 | 激情五月***国产精品 | 免费韩国av| 片网站 | 99久久综合国产精品二区 | va视频在线 | 欧美不卡视频在线 | 国内一级片在线观看 | 玖玖爱免费视频 | 日韩av有码在线 | 色综合久久88色综合天天人守婷 | 久草视频一区 | 亚洲日本精品 | 麻豆免费精品视频 | 色精品视频| 国产原创av片 | 午夜10000 | 国产精品女人网站 | japanese黑人亚洲人4k | 在线日韩一区 | 日韩高清精品一区二区 | 99热这里只有精品久久 | 国产一区二区观看 | 在线观看成人国产 | 狠狠色2019综合网 | 久久国产一区二区三区 | 亚洲三级在线播放 | 黄网站色视频 | 国产伦精品一区二区三区四区视频 | 久久精品美女视频网站 | 69国产盗摄一区二区三区五区 | 五月婷婷久久综合 | 日韩一区二区三区免费视频 | 成人免费视频a | 久久激情网站 | 国产美女被啪进深处喷白浆视频 | www激情com| 久草网首页| 日韩精品视频免费在线观看 | 激情五月五月婷婷 | 99在线观看视频网站 | 久久99精品久久久久久清纯直播 | 成人午夜电影免费在线观看 | 欧美精选一区二区三区 | 国产在线观看免 | av资源中文字幕 | 久草视频精品 | 综合黄色网 | 91人人澡人人爽人人精品 | 婷五月天激情 | 人人澡人 | 99r在线精品| 国产黄色资源 | 久产久精国产品 | 国产精品99久久久精品 | 国产做aⅴ在线视频播放 | 波多野结依在线观看 | www日韩精品 | 亚洲成人资源网 | 久草视频中文在线 | 九九免费在线观看 | 成人性生交大片免费观看网站 | 久久免费的视频 | 精品国产一区二区三区四 | 国产精品video爽爽爽爽 | 中文国产成人精品久久一 | 99r在线| 麻豆视频在线观看免费 | 美女视频黄频大全免费 | 久久av在线播放 | 狂野欧美激情性xxxx欧美 | 91麻豆福利| 久久久精品国产一区二区电影四季 | 黄色网址中文字幕 | 黄色av电影在线 | 91高清视频 | 国产福利精品一区二区 | 射久久久| 久久激情网站 | 欧美一级片免费播放 | 国产剧情亚洲 | 国产日韩欧美在线观看 | 日本精品久久久一区二区三区 | 日韩欧美高清在线 | 日日草夜夜操 | 亚洲成人黄色在线 | 日韩精品视频免费在线观看 | 日本久久电影网 | 日本三级吹潮在线 | 在线观看www91 | 在线观看亚洲电影 | 国产成人av福利 | 久久成人国产精品一区二区 | 91精品国产综合久久婷婷香蕉 | 久久久久免费网 | 久久久首页| 国内精品视频在线播放 | www.com黄色 | 久久激情网站 | 亚洲专区中文字幕 | 国产免费叼嘿网站免费 | 久久69精品久久久久久久电影好 | 一级黄色毛片 | 国产一区二区视频在线播放 | 99亚洲国产 | 亚洲精品视频免费在线观看 | 最近高清中文字幕在线国语5 | 欧美精品久久久久久久 | 一二三区高清 | 免费91在线观看 | 97碰碰视频 | 国产精品一区专区欧美日韩 | 一区二区三区在线视频观看58 | 99中文字幕| 色999五月色| 久草爱| 亚洲精品视频免费观看 | 日韩在线观看一区 | 日韩av在线不卡 | 人人网人人爽 | 久久a级片 | 欧美调教网站 | 99热精品在线观看 | 亚洲视频免费在线观看 | 91最新地址永久入口 | 欧美色婷 | 91av在线视频免费观看 | 免费国产在线观看 | 免费av在线播放 | 国产一级性生活 | 激情综合色综合久久综合 | 午夜精品影院 | 午夜精品一区二区三区在线视频 | 久久精品99久久 | 久久久久久免费网 | 中文久久精品 | 国产最新视频在线 | 国产区第一页 | 日韩高清dvd | 欧美精品少妇xxxxx喷水 | 欧美a在线免费观看 | 欧美一区免费在线观看 | 久久人人爽人人爽人人 | 99久国产 | 国产日韩欧美在线观看视频 | 91丝袜美腿| 婷婷激情五月 | 欧美日韩国产欧美 | 亚洲精品在线国产 | 免费韩国av | 91九色免费视频 | 玖玖视频精品 | 奇米7777狠狠狠琪琪视频 | 激情综合网五月 | 四虎在线观看 | 日韩欧美在线第一页 | 国产一区在线视频 | 激情综合网天天干 | 99av国产精品欲麻豆 | 精品国产自在精品国产精野外直播 | 97视频在线播放 | 欧美与欧洲交xxxx免费观看 | 日韩欧美v | 丁香六月婷婷综合 | 国内精品免费久久影院 | 久久亚洲私人国产精品va | 日韩精品免费一区 | 东方av在线免费观看 | 久久国产精品免费一区 | 麻豆91在线观看 | 久久久久久久久影视 | 四虎国产永久在线精品 | 免费看黄20分钟 | av成人在线看 | 国产精品成人久久久久久久 | 日韩午夜电影 | 日韩视频中文 | 久久国产剧场电影 | 亚洲精品视频第一页 | 国产无遮挡又黄又爽在线观看 | 精品国产免费人成在线观看 | 国模吧一区 | 久草在线视频网 | 国产精品黄色 | 久久夜色精品国产欧美乱 | 草久视频在线观看 | 99国产精品一区二区 | 日本激情动作片免费看 | 国产精品99精品久久免费 | 九九视频热 | 中文在线8资源库 | 国产午夜精品一区 | 人人草天天草 | 一级a毛片高清视频 | 国产精品久久久久四虎 | 婷婷色综合色 | 一区二精品| 久久久久久久精 | 久草在线视频免费资源观看 | 亚洲狠狠丁香婷婷综合久久久 | 国产不卡在线视频 | 日韩欧美高清在线观看 | 久久综合免费视频影院 | 久久久久国产a免费观看rela | 国产在线一线 | 久久免费精彩视频 | 中文字幕中文字幕中文字幕 | 久久精品99 | 特级毛片网站 | 国产丝袜高跟 | 综合网欧美| 精品一区二区三区久久久 | 91久久国产露脸精品国产闺蜜 | 天天躁日日躁狠狠躁av麻豆 | 午夜少妇 | 激情综合色综合久久综合 | 成人小视频在线 | 五月婷婷另类国产 | 91九色在线播放 | 亚洲午夜精品一区二区三区电影院 | 国产又粗又硬又长又爽的视频 | 欧美日韩三级在线观看 | 99热精品久久 | 嫩草av影院 | 狠狠色噜噜狠狠狠狠2022 | 99热最新地址 | 欧美日韩一区久久 | 国产综合婷婷 | 99热这里只有精品国产首页 | 在线免费高清 | 亚洲综合情 | 麻豆传媒在线视频 | 国产一区视频在线 | 国产亚洲综合性久久久影院 | 91视频黄色 | 波多野结依在线观看 | 色综合久久88色综合天天免费 | 精品xxx | 亚洲aⅴ在线观看 | 久久毛片网 | 免费观看一级成人毛片 | 99精品国产一区二区三区麻豆 | 成人黄色国产 | 久久成年人视频 | 久久99久国产精品黄毛片入口 | 91麻豆精品国产91久久久无需广告 | 青草视频在线看 | 91在线看视频 | 精品国产亚洲一区二区麻豆 | 天天干天天摸 | 久久av在线播放 | 中文字幕黄色av | av福利在线免费观看 | 欧美一区二区免费在线观看 | 青青草国产在线 | 国产馆在线播放 | 在线观看视频国产一区 | 日韩精品一区二区三区免费观看视频 | 国产高清日韩欧美 | www免费视频com | 一区二区三区四区免费视频 | av先锋影音少妇 | 婷婷视频在线播放 | 日韩亚洲国产精品 | 亚洲国产精品电影 | 一区二区三区动漫 | 亚洲v精品 | 色在线高清 | 九色精品在线 | 成人h在线观看 | 国产精品久久久久久久久久了 | 精品国产电影一区二区 | aaaaaa毛片| 欧美性性网 | 欧美 日韩 视频 | 在线视频观看亚洲 | 亚洲视频免费 | 成人午夜影院 | 日韩免费在线观看网站 | 伊人丁香| 久久er99热精品一区二区三区 | www.黄色网.com| 中文字幕 成人 | 国产精品va | 欧美精品久久久久久久免费 | 欧美日韩视频在线观看一区二区 | 国产精品视频内 | 99热网站| 欧美日韩在线观看一区二区三区 | 精品一区二区在线免费观看 | 久久99热久久99精品 | 亚洲精品一区二区三区在线观看 | 99视频精品全部免费 在线 | 天天躁天天狠天天透 | 91亚洲在线观看 | 国内久久精品 | 黄色91在线 | 日韩免费电影在线观看 | 91在线视频播放 | 美女搞黄国产视频网站 | 国产成人精品一区一区一区 | 久久情爱| 91在线视频播放 | 天天干天天干天天干天天干天天干天天干 | 一级黄色大片 | 久久久久国产a免费观看rela | 色婷婷久久 | 国产小视频在线免费观看视频 | 亚洲女同ⅹxx女同tv | 91麻豆精品国产91久久久无需广告 | 国产手机视频在线播放 | 91精品久久久久久久久 | 国产亚洲精品日韩在线tv黄 | 欧美日韩高清国产 | 国产精品手机在线观看 | 国产精品久久久久久久久久久久午 | 中文国产字幕在线观看 | 高清av中文在线字幕观看1 | 久久曰视频 | 欧美综合在线视频 | 99热精品免费观看 | 午夜久久成人 | 伊人天堂av | 亚洲网站在线 | 免费男女羞羞的视频网站中文字幕 | 亚洲视频在线观看网站 | 91一区啪爱嗯打偷拍欧美 | 亚洲高清精品在线 | 成人在线免费看视频 | 亚洲精品久久视频 | 国产伦精品一区二区三区无广告 | 久久精品2| 婷婷久久综合九色综合 | 96精品高清视频在线观看软件特色 | 亚洲国产精品va在线看黑人动漫 | 91正在播放 | 日本精a在线观看 | 亚州中文av | 欧美最猛性xxxxx免费 | 在线观看亚洲国产精品 | 在线播放国产精品 | 日韩 | 欧美精品一二三 | 波多野结衣电影久久 | 久草久 | 亚洲在线免费视频 | 激情五月伊人 | 久久精品综合网 | 久久国产精品二国产精品中国洋人 | 日韩r级电影在线观看 | 久久综合九色综合97婷婷女人 | 亚洲黄色激情小说 | 激情久久伊人 | 国产三级在线播放 | 在线视频日韩一区 | 天天干天天摸天天操 | 在线 影视 一区 | 日韩和的一区二在线 | 日韩美在线观看 | av免费网页| 久久久国产一区 | 久久久精品高清 | 日韩午夜在线播放 | 欧美 亚洲 另类 激情 另类 | 日韩色综合网 | 狠狠五月天 | 69精品久久 | 91精品国产自产91精品 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 麻豆视频网址 | 日韩,精品电影 | 国产香蕉久久 | 欧美日韩精品在线观看视频 | 综合网天天射 | 欧美日韩综合在线观看 | av福利在线看 | 九九免费在线视频 | 中文字幕一区二区三 | 久久综合五月天婷婷伊人 | 亚洲aⅴ在线 | 亚洲美女久久 | 日韩欧美综合在线视频 | 成人精品一区二区三区中文字幕 | 国产精品video爽爽爽爽 | 亚洲精品国产精品久久99热 | 97超碰成人在线 | a视频免费在线观看 | 日韩欧美91 | 久久一区二区免费视频 | 国产精品网站 | 日日爱av | 成人免费观看大片 | 日本丶国产丶欧美色综合 | 99视频免费 | 欧美日韩二区在线 | 97视频免费看 | 日本特黄特色aaa大片免费 | 最近中文字幕第一页 | 国产三级精品在线 | 99在线热播精品免费99热 | 国产一级精品视频 | 在线观看精品黄av片免费 | 亚州精品成人 | 国产精品大片在线观看 | 日韩一区二区三免费高清在线观看 | 久久久久久久国产精品 | 国产亚洲精品久久久久动 | 91精品免费看 | 精品一区 在线 | 国产精品乱码久久久久久1区2区 | 国产精品video爽爽爽爽 | 911免费视频| 欧美性大战久久久久 | 久久久久久久久久毛片 | 免费黄在线看 | 国产精品久久久久久久久久白浆 | 亚洲黄色激情小说 | 欧美日韩一区二区视频在线观看 | 五月天久久精品 | 精品久久久久久久久久岛国gif | 久久91久久久久麻豆精品 | 国产在线观看免费观看 | 国产在线一区二区 | 成人福利av| 成人在线观看网址 | 婷婷综合视频 | 日韩欧三级 | 久草资源在线观看 | av片在线看| 久久免费视频2 | 国产中文在线视频 | 亚洲精品一区二区三区新线路 | 日韩av看片| 国产福利91精品一区二区三区 | 天天操操操操操 | 色射色| 免费一级片在线 | 日日日干 | av丁香花 | 最新av在线网址 | 国产精品毛片一区视频播 | 免费国产在线观看 | 这里只有精品视频在线观看 | 亚洲国产精品va在线看黑人动漫 | 久久成人一区二区 | 中文字幕之中文字幕 | 久久毛片视频 | 91精品免费看| 日韩精品免费一区 | 中文字幕视频免费观看 | 国产精品毛片久久 | 色橹橹欧美在线观看视频高清 | 日韩欧美精品在线观看视频 | 99热只有精品在线观看 | 久久久伊人网 | 黄色免费电影网站 | sesese图片| 成人黄色小说视频 | 久久精品在线免费观看 | 91热在线 | 青青久草在线视频 | 黄色国产高清 | 日韩欧美精品在线观看 | 久久久69 |