91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣用PS3控制器控制遙控車(chē)

454398 ? 來(lái)源:wv ? 2019-09-24 11:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:拆開(kāi)汽車(chē)

怎樣用PS3控制器控制遙控車(chē)

您需要卸下汽車(chē)外殼以露出電線,以便您可以輕松地使用電動(dòng)機(jī)并插入arduino。幾乎有一堆螺絲和東西,所以只要將它們卸下,就可以開(kāi)始使用。

步驟2:找出控制器

您需要使用usb電纜將ps3控制器連接到計(jì)算機(jī),以找出輸入等。我為此使用了程序USB視圖。您可以從以下鏈接下載:http://www.ftdichip.com/Resources/Utilities/usbview.zip

然后打開(kāi)程序并選擇ps3控制器

結(jié)果應(yīng)如下所示:

設(shè)備描述符:

bcdUSB:0x0200

bDeviceClass:0x00

bDeviceSubClass:0x00

bDeviceProtocol:0x00

bMaxPacketSize0:0x40(64)

idVendor:0x054C(Sony Corporation)

idProduct:0x0268

bcdDevice:0x0100

iManufacturer:0x01

iProduct:0x02

iSerialNumber:0x00

bNumConfigurations:0x01

ConnectionStatus:DeviceConnected

當(dāng)前配置值:0x01

設(shè)備總線速度:完整

設(shè)備地址:0x01

打開(kāi)管道:2

端點(diǎn)描述符:

bEndpointAddress:0x02

傳輸類(lèi)型:中斷

wMaxPacketSize:0x0040(64)

bInterval:0x01

端點(diǎn)描述符:

bEndpointAddress:0x81

傳輸類(lèi)型:Interrupt PackageSize:0x0040(64) BInterval:0x01

重要的一點(diǎn)是控制器在輸出時(shí)提供輸出(0x02),并在(0x81)上接收輸入

步驟3:使用USB庫(kù)

幸運(yùn)的是,我不是第一個(gè)將ps3控制器連接到arduino的人,因此可以使用非常有用的庫(kù)。您應(yīng)該在這里獲取它:https://github.com/ribbotson/USB-Host/tree/master/ps3/PS3USB

現(xiàn)在,您應(yīng)該下載此文件以了解有關(guān)控制器的更多信息:https://github.com/ribbotson/USB-Host/blob/master/examples/USB_desc.pde

使用此代碼,我們可以找到有關(guān)arduino的各種內(nèi)容。

請(qǐng)參閱:開(kāi)始

freeMemory()報(bào)告683 《設(shè)備》描述符:

描述符長(zhǎng)度:12

描述符類(lèi)型:01 USB版本:0200

設(shè)備類(lèi)別: 00

設(shè)備子類(lèi):00 《設(shè)備》協(xié)議:00 《最大》數(shù)據(jù)包大?。?0 《供應(yīng)商ID:054C 《產(chǎn)品》產(chǎn)品ID:0268 《版本》修訂ID:0100

制造商。字符串索引:01

產(chǎn)品字符串索引:02

序列號(hào)索引:00

配置數(shù):01

配置描述符:

總長(zhǎng)度:0029

Num.intf: 01

Conf。值:01 字符串:00

屬性:80 最大功率:FA

接口描述符:

Intf.number:00

Alt 。:00

端點(diǎn):02

Intf。類(lèi)別:03

Intf。子類(lèi):00

Intf。協(xié)議:00

Intf.string:00

未知描述符:

長(zhǎng)度:09

類(lèi)型:21

內(nèi)容:110100012294000705

端點(diǎn)描述符:

端點(diǎn)地址:02

屬性:03

最大包大?。?040

輪詢(xún)間隔:01

端點(diǎn)描述符:

端點(diǎn)地址:81

屬性:03 《最大》包大小:0040

輪詢(xún)間隔:01 現(xiàn)在我們需要使庫(kù)和控制器同步。為此,我們使用以下代碼:

typedef struct {

byte epAddr;//如果設(shè)置了

byte Attr,則從端點(diǎn)描述符復(fù)制而沒(méi)有位7。//端點(diǎn)傳輸類(lèi)型。

unsigned int MaxPktSize;//最大數(shù)據(jù)包大小。

字節(jié)間隔;//輪詢(xún)間隔(以幀為單位)。

byte sndToggle;//最后一個(gè)觸發(fā)值,HCTL觸發(fā)位的位掩碼

byte rcvToggle;//最后一個(gè)觸發(fā)值,HCTL觸發(fā)位的位掩碼

} EP_RECORD;

還有:

device_descriptor =(USB_DEVICE_DESCRIPTOR *)&buf;

if(

(device_descriptor-》 idVendor!= PS3_VID)||(device_descriptor-》 idProduct!= PS3_PID)){

Serial.println(“不支持的USB設(shè)備”);

while(1);//stop

第4步:現(xiàn)在,我們將控制器設(shè)置為提供輸入!

我們希望控制器能夠隨時(shí)向以下位置提供輸入: arduino,因此我們使用以下代碼:

#define PS3_F4_REPORT_LEN 4

#define HID_REPORT_FEATURE 3

#define PS3_F4_REPORT_ID 0xF4 prog_char feature_F4_report [] PROGMEM = {0x42,0x0c, ;

/*設(shè)置PS3控制器為(i = 0; i ;

rcode = Usb.setReport (PS3_ADDR,ep_record [CONTROL_PIPE] .epAddr,PS3_F4_REPORT_LEN,PS3_IF,HID_REPORT_FEATURE,PS3_F4_REPORT_ID,buf);

if(rcode){

Serial.print(“設(shè)置報(bào)告錯(cuò)誤:”);

Serial.println (rcode,HEX);

while(1);//stop

}

如果您想做一些額外的工作以保持冷靜,還可以將ps3控制器上的LED 1設(shè)為打開(kāi)。因?yàn)楫?dāng)您將控制器連接到ps3時(shí),LED會(huì)亮起,所以看起來(lái)更親,但除了美觀以外,這沒(méi)什么用。 (注意:您還可以使控制器與arduino配合使用,非??幔。?。這是LED的代碼:

#define PS3_01_REPORT_LEN 48

#define HID_REPORT_OUTPUT 2

#define PS3_01_REPORT_ID 0x01

prog_char output_01_report [] PROGMEM = {0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00,

0x00、0x02、0xff,0x27、0x10、0x00、0x32、0xff,

0x27、0x10、0x00, 0x32、0xff,0x27、0x10、0x00,

0x32、0xff,0x27、0x10、0x00、0x32、0x00、0x00,

0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00,

》 0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00

};

/*為(i = 0; i buf [i] = pgm_read_byte_near(output_01_report + i);

rcode = Usb.setReport(PS3_ADDR,ep_record [CONTROL_PIPE] .epAddr,PS3_01_REPORT_LEN,PS3_IF,HID_REPORT_OUTPUT,PS3_01_REPORT_ID,《) br》 Serial.print(“設(shè)置報(bào)告錯(cuò)誤:”);

Serial.println(rcode,HEX);

while(1);//stop

}

更重要的是,arduino需要處理來(lái)自控制器的信號(hào)。使用以下代碼:

void PS3_poll(void)

{

byte rcode = 0;//返回代碼

/*輪詢(xún)PS3 */

rcode = Usb.inTransfer(PS3_ADDR,ep_record [INPUT_PIPE] .epAddr,PS3_01_REPORT_LEN,buf);

if(rcode!= 0){

return;

}

process_report();

return;

}

第5步:大結(jié)局:將Arduino連接到汽車(chē)上

因此,每輛車(chē)都不一樣。在我的項(xiàng)目中,我有一輛非常簡(jiǎn)單的汽車(chē),只有四個(gè)控制選項(xiàng)(向前,向后,向左,向右),并且每個(gè)都只允許一個(gè)值,即只有一個(gè)允許的加速度。因此,相應(yīng)地創(chuàng)建代碼。我只使用了控制器上的方向按鈕,因?yàn)槲艺J(rèn)為這是最簡(jiǎn)單的。也可以使用加速度計(jì)進(jìn)行轉(zhuǎn)向,使用操縱桿進(jìn)行前進(jìn)等?;旧?,您可以選擇所需的任何控制配置。我將在短期內(nèi)說(shuō)明如何操作。

但是,現(xiàn)在,我們需要將arduino連接到汽車(chē)上。我的車(chē)有兩個(gè)馬達(dá)。向前后退一圈,向前轉(zhuǎn)一圈。您需要確定這些電機(jī)的工作方式。如果它們像我的,則將連接兩根電線,您將需要去除這些電線并將其從arduino的輸出端焊接到它們上。如果您的汽車(chē)與眾不同,那么希望它不會(huì)太難找出答案。

現(xiàn)在我們已經(jīng)將arduino連接到汽車(chē)上,我們需要編寫(xiě)代碼來(lái)告訴汽車(chē)要做什么。正如我上面提到的,這取決于您的喜好和個(gè)人汽車(chē)。因此,現(xiàn)在我將介紹一堆無(wú)論情況如何都將有用的代碼。首先,我們希望方法讀取按鈕輸入。我們可以使用以下內(nèi)容:

#define buSelect 0

#define buLAlog 1

#define buRAnalog 2

#define buStart 3

#define buUp 4

#define buRight 5

#define buDown 6

#define buLeft 7

#define buL2 8

#define buR2 9

#define buL1 10

#define buR1 11

#define buTriangle 12

#define buCircle 13

#define buCross 14

#define buSquare 15

#define buPS 16

如果按下指定的按鈕,則它們返回true。因此,對(duì)于我來(lái)說(shuō),我使用了buUp,buDown等。

如果您想成為發(fā)燒友,并且可能具有一系列輸入值,那么您可以使用多個(gè)加速力,則可以使用加速度計(jì)。這些是他們的方法:

#define加速度計(jì)X 0

#define加速度計(jì)Y 1

#define加速度計(jì)Z 2

#define陀螺儀Z 3

這些值從0到1023,其中512為中性

無(wú)論如何,一旦執(zhí)行了此操作,您只需要告訴arduino以所需的輸出量輸出輸出,汽車(chē)就會(huì)行駛!

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17841

    瀏覽量

    194734
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    探索 Crimzon RC Blaster? 微控制器:一站式紅外遙控數(shù)據(jù)庫(kù)解決方案

    探索 Crimzon RC Blaster? 微控制器:一站式紅外遙控數(shù)據(jù)庫(kù)解決方案 在電子設(shè)備設(shè)計(jì)領(lǐng)域,為系統(tǒng)快速輕松地添加通用遙控功能是一項(xiàng)常見(jiàn)且重要的需求。今天,我們就來(lái)深入了解一下
    的頭像 發(fā)表于 04-04 11:05 ?176次閱讀

    PSOC 4100PS系列微控制器

    PSOC 4100PS系列微控制器PSoC 4100PS系列微控制器是英飛凌(原Cypress)推出的一款基于32位Arm? Cortex?-M0+內(nèi)核的可編程片上系統(tǒng)(PSoC),具
    發(fā)表于 03-11 09:45

    基于CW32的藍(lán)牙無(wú)刷遙控車(chē)案列

    /BLELite 3.遙控器代碼 實(shí)際是一個(gè)網(wǎng)頁(yè),遙控使用js開(kāi)發(fā),vue簡(jiǎn)化數(shù)據(jù)處理。 利用Web Bluetooth API調(diào)用主機(jī)的藍(lán)牙完成通信,Gamepad API手柄按
    發(fā)表于 01-15 08:22

    69.9元樂(lè)鑫科技ESP32-S3 2.8寸串口屏爆改手持彩屏遙控器!手機(jī)APP卡頓?不存在的!

    了!本期就讓我啟明智顯2.8寸觸摸串口屏,為你打造一個(gè)專(zhuān)屬的高性能遙控器,成本僅69.9元!這款串口屏搭載ESP32-S3芯片,支持Wi-Fi和藍(lán)牙,配備240*
    的頭像 發(fā)表于 11-21 18:02 ?942次閱讀
    69.9元<b class='flag-5'>用</b>樂(lè)鑫科技ESP32-S<b class='flag-5'>3</b> 2.8寸串口屏爆改手持彩屏<b class='flag-5'>遙控器</b>!手機(jī)APP卡頓?不存在的!

    ASM1042A3S車(chē)規(guī)級(jí)CANFD芯片在兩輪車(chē)和平衡車(chē)控制器方案中的技術(shù)應(yīng)用

    摘要 本文以國(guó)科安芯推出的ASM1042A3S車(chē)規(guī)級(jí)CAN FD芯片為例,討論在兩輪車(chē)與平衡車(chē)控制器方案中的技術(shù)應(yīng)用。通過(guò)對(duì)芯片核心技術(shù)特點(diǎn)
    的頭像 發(fā)表于 10-23 17:49 ?809次閱讀

    智能天文時(shí)控,路燈光電控制器,路燈三遙控制器,沃思智能

    在現(xiàn)代城市照明系統(tǒng)中,智能控制技術(shù)的應(yīng)用已成為提升能源效率和管理水平的核心手段。智能天文時(shí)控、路燈光電控制器與路燈三遙控制器作為三大核心設(shè)備,通過(guò)融合天文算法、光電傳感和遠(yuǎn)程通信技術(shù)
    的頭像 發(fā)表于 10-09 09:46 ?746次閱讀
    智能天文時(shí)控<b class='flag-5'>器</b>,路燈光電<b class='flag-5'>控制器</b>,路燈三<b class='flag-5'>遙控制器</b>,沃思智能

    【項(xiàng)目實(shí)戰(zhàn)】基于WS63的鴻蒙星閃紅外遙控車(chē)(循跡、超聲波避障、遠(yuǎn)程控制、星閃/紅外遙控)有教程代碼

    很多物聯(lián)網(wǎng)學(xué)習(xí)者總覺(jué)得“學(xué)了用不上”:?jiǎn)为?dú)會(huì)接傳感、懂點(diǎn)通信協(xié)議,可一到“多模塊協(xié)同”就慌了——不知道怎么讓超聲波模塊的測(cè)距數(shù)據(jù)通過(guò)星閃傳出去,也沒(méi)試過(guò)小程序遠(yuǎn)程控制小車(chē)避障。而這臺(tái)基于WS63
    的頭像 發(fā)表于 09-10 16:01 ?1182次閱讀
    【項(xiàng)目實(shí)戰(zhàn)】基于WS63的鴻蒙星閃紅外<b class='flag-5'>遙控車(chē)</b>(循跡、超聲波避障、遠(yuǎn)程<b class='flag-5'>控制</b>、星閃/紅外<b class='flag-5'>遙控</b>)有教程代碼

    codesys 3.5版本控制器聯(lián)機(jī)指導(dǎo):如何進(jìn)行RS232聯(lián)機(jī)?#codesys編程控制器 #控制器

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2025年08月29日 09:07:25

    產(chǎn)品推薦 | MOS管在電動(dòng)車(chē)控制器上的應(yīng)用

    電動(dòng)車(chē)控制器的定義及結(jié)構(gòu)目前市面上的電動(dòng)車(chē)包含電動(dòng)自行車(chē)、電動(dòng)摩托車(chē)、電動(dòng)三輪車(chē)、電動(dòng)四輪車(chē)等。無(wú)論何種電動(dòng)
    的頭像 發(fā)表于 08-12 15:21 ?1159次閱讀
    產(chǎn)品推薦 | MOS管在電動(dòng)<b class='flag-5'>車(chē)</b><b class='flag-5'>控制器</b>上的應(yīng)用

    兩輪自平衡電動(dòng)車(chē)及其電機(jī)控制器設(shè)計(jì)

    摘要:兩輪自平衡電動(dòng)車(chē)的平衡原理源自倒立擺模型,為研制兩輪自平衡電動(dòng)車(chē)設(shè)計(jì)了一套兩輪自平衡電動(dòng)車(chē)的方案,并采用MC33035和PIC18F4580為主控芯片為兩輪自平衡電動(dòng)車(chē)設(shè)計(jì)了一個(gè)
    發(fā)表于 06-09 16:15

    具有同步續(xù)流的電動(dòng)車(chē)直流電機(jī)控制器設(shè)計(jì)

    二極管上產(chǎn)生的穩(wěn)態(tài)續(xù)流功耗占了整個(gè)控制器功耗相當(dāng)大的比例。 純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~*附件:具有同步續(xù)流的電動(dòng)車(chē)直流電機(jī)控制器設(shè)計(jì).pdf【免責(zé)聲明】本文系網(wǎng)
    發(fā)表于 06-05 11:23

    車(chē)載整機(jī)控制器 工程機(jī)械主機(jī)控制器#碩博電子#國(guó)產(chǎn)控制器

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2025年05月26日 09:09:02

    工程機(jī)械控制器廠家 控制器國(guó)產(chǎn)替代 #國(guó)產(chǎn)控制器#控制器廠家#控制器品牌

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2025年04月29日 14:15:05

    PS5050是一款高性能的高側(cè) OR-ing FET 控制器替代LM5050

    控制器
    深圳市百盛新紀(jì)元半導(dǎo)體有限公司
    發(fā)布于 :2025年04月15日 17:47:26