在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣用PS3控制器控制遙控車

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

掃碼添加小助手

加入工程師交流群

步驟1:拆開汽車

怎樣用PS3控制器控制遙控車

您需要卸下汽車外殼以露出電線,以便您可以輕松地使用電動機并插入arduino。幾乎有一堆螺絲和東西,所以只要將它們卸下,就可以開始使用。

步驟2:找出控制器

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

然后打開程序并選擇ps3控制器

結果應如下所示:

設備描述符:

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

當前配置值:0x01

設備總線速度:完整

設備地址:0x01

打開管道:2

端點描述符:

bEndpointAddress:0x02

傳輸類型:中斷

wMaxPacketSize:0x0040(64)

bInterval:0x01

端點描述符:

bEndpointAddress:0x81

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

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

步驟3:使用USB庫

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

現在,您應該下載此文件以了解有關控制器的更多信息:https://github.com/ribbotson/USB-Host/blob/master/examples/USB_desc.pde

使用此代碼,我們可以找到有關arduino的各種內容。

請參閱:開始

freeMemory()報告683 《設備》描述符:

描述符長度:12

描述符類型:01 USB版本:0200

設備類別: 00

設備子類:00 《設備》協議:00 《最大》數據包大小:40 《供應商ID:054C 《產品》產品ID:0268 《版本》修訂ID:0100

制造商。字符串索引:01

產品字符串索引:02

序列號索引:00

配置數:01

配置描述符:

總長度:0029

Num.intf: 01

Conf。值:01 字符串:00

屬性:80 最大功率:FA

接口描述符:

Intf.number:00

Alt 。:00

端點:02

Intf。類別:03

Intf。子類:00

Intf。協議:00

Intf.string:00

未知描述符:

長度:09

類型:21

內容:110100012294000705

端點描述符:

端點地址:02

屬性:03

最大包大小:0040

輪詢間隔:01

端點描述符:

端點地址:81

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

輪詢間隔:01 現在我們需要使庫和控制器同步。為此,我們使用以下代碼:

typedef struct {

byte epAddr;//如果設置了

byte Attr,則從端點描述符復制而沒有位7。//端點傳輸類型。

unsigned int MaxPktSize;//最大數據包大小。

字節間隔;//輪詢間隔(以幀為單位)。

byte sndToggle;//最后一個觸發值,HCTL觸發位的位掩碼

byte rcvToggle;//最后一個觸發值,HCTL觸發位的位掩碼

} EP_RECORD;

還有:

device_descriptor =(USB_DEVICE_DESCRIPTOR *)&buf;

if(

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

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

while(1);//stop

第4步:現在,我們將控制器設置為提供輸入!

我們希望控制器能夠隨時向以下位置提供輸入: 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, ;

/*設置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(“設置報告錯誤:”);

Serial.println (rcode,HEX);

while(1);//stop

}

如果您想做一些額外的工作以保持冷靜,還可以將ps3控制器上的LED 1設為打開。因為當您將控制器連接到ps3時,LED會亮起,所以看起來更親,但除了美觀以外,這沒什么用。 (注意:您還可以使控制器與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(“設置報告錯誤:”);

Serial.println(rcode,HEX);

while(1);//stop

}

更重要的是,arduino需要處理來自控制器的信號。使用以下代碼:

void PS3_poll(void)

{

byte rcode = 0;//返回代碼

/*輪詢PS3 */

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

if(rcode!= 0){

return;

}

process_report();

return;

}

第5步:大結局:將Arduino連接到汽車上

因此,每輛車都不一樣。在我的項目中,我有一輛非常簡單的汽車,只有四個控制選項(向前,向后,向左,向右),并且每個都只允許一個值,即只有一個允許的加速度。因此,相應地創建代碼。我只使用了控制器上的方向按鈕,因為我認為這是最簡單的。也可以使用加速度計進行轉向,使用操縱桿進行前進等。基本上,您可以選擇所需的任何控制配置。我將在短期內說明如何操作。

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

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

#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。因此,對于我來說,我使用了buUp,buDown等。

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

#define加速度計X 0

#define加速度計Y 1

#define加速度計Z 2

#define陀螺儀Z 3

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

無論如何,一旦執行了此操作,您只需要告訴arduino以所需的輸出量輸出輸出,汽車就會行駛!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    114

    文章

    17076

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    兩輪自平衡電動及其電機控制器設計

    摘要:兩輪自平衡電動的平衡原理源自倒立擺模型,為研制兩輪自平衡電動設計了一套兩輪自平衡電動的方案,并采用MC33035和PIC18F4580為主控芯片為兩輪自平衡電動設計了一個
    發表于 06-09 16:15

    具有同步續流的電動直流電機控制器設計

    二極管上產生的穩態續流功耗占了整個控制器功耗相當大的比例。 純分享帖,需要者可點擊附件免費獲取完整資料~~~*附件:具有同步續流的電動直流電機控制器設計.pdf【免責聲明】本文系網
    發表于 06-05 11:23

    車載整機控制器 工程機械主機控制器#碩博電子#國產控制器

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

    工程機械控制器廠家 控制器國產替代 #國產控制器#控制器廠家#控制器品牌

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

    工程機械控制器如何選型?控制器選型指南 #控制器 #車載控制器 #整車控制器 #控制器選型

    控制器
    長沙碩博電子科技股份有限公司
    發布于 :2025年03月14日 10:54:24

    英飛凌_XC846電動控制器原理圖(12管)

    英飛凌_XC846電動控制器原理圖(12管)
    發表于 02-13 17:02 ?1次下載

    無線遙控車的電機抖動

    我們的遙控車電控方案有一個問題,不知道是怎么回事,請幫我看看問題在哪。 我們的方案是無線遙控接收機的sbus接我們主板,我們主板接電調,電調接電機。 現在的問題是打開遙控器不動搖桿,電機會無故抖動
    發表于 02-12 16:48

    移動機械控制器X1010,支持433兆赫茲遙控器#工程機械控制器 #車載智能控制器

    控制器
    長沙碩博電子科技股份有限公司
    發布于 :2024年12月26日 10:52:47

    電動控制器欠壓保護怎樣調整

    電動控制器的欠壓保護功能是為了保護電池和延長電池壽命而設計的。當電池電壓下降到某一設定值時,控制器會自動切斷電源,防止電池過度放電。調整電動控制
    的頭像 發表于 10-15 10:34 ?9173次閱讀

    電動控制器電壓過高怎么解決

    當電動控制器電壓過高時,可以采取以下措施來解決這一問題: 一、檢查與調整控制器設定 查找截止電壓設定參數 : 電動控制器的截止電壓設定參
    的頭像 發表于 10-15 10:31 ?3283次閱讀

    電動萬能控制器不用霍爾可以嗎

    電動控制器是電動系統中非常重要的一個部件,它負責控制電機的啟動、運行、停止以及速度調節等功能。霍爾傳感(Hall sensor)是
    的頭像 發表于 10-15 10:24 ?2665次閱讀

    控制器取掉霍爾線可以嗎

    控制器取掉霍爾線可以嗎?這個問題涉及到電動控制器的工作原理和霍爾傳感的作用。 電動控制器
    的頭像 發表于 10-15 10:14 ?1702次閱讀

    電動無刷控制器成熟量產方案

    電動無刷控制器成熟量產方案電路圖紙
    發表于 09-29 09:01 ?15次下載

    國產控制器廠家 整車控制器 以太網控制器 CAN控制器 國產化替代

    控制器
    長沙碩博電子科技股份有限公司
    發布于 :2024年09月03日 09:15:51

    車載智能控制器 工程機械控制器 CAN總線控制器 碩博電子 #控制器 #can總線 #國產化替代

    控制器總線
    長沙碩博電子科技股份有限公司
    發布于 :2024年08月29日 10:43:57
    主站蜘蛛池模板: 综合欧美一区二区三区 | 狠狠色丁香久久综合网 | 毛片三级在线观看 | 在线观看永久免费视频网站 | 午夜日韩视频 | 婷婷免费视频 | 午夜高清免费在线观看 | 亚洲大尺度视频 | 国产成人精品一区二区仙踪林 | 人人免费人人专区 | 又粗又大的机巴好爽欧美 | 成人黄色三级 | 在线观看免费av网 | 一二三区在线视频 | 波多野结衣久久国产精品 | 精品影视网站入口 | 色综合久久天天综合观看 | 亚洲 丝袜 制服 欧美 另类 | 国模极品一区二区三区 | 韩国朴银狐诱感在线观看 | 在线免费看污视频 | 国产精品夜色一区二区三区 | 免费一级欧美片在线观看 | 在线观看免费av网 | 久久久久88色偷偷免费 | 日韩免费观看的一级毛片 | 我想看一级播放片一级的 | 午夜精品一区二区三区在线观看 | 久久天天操 | 国产成人久视频免费 | 狠狠干天天操 | 免费人成动漫在线播放r18 | 成人的天堂视频一区二区三区 | 日本精品视频 | 99热色| 拍拍拍美女黄色1000视频 | 丁香综合五月 | 七月婷婷精品视频在线观看 | 69成人免费视频 | 高清视频一区二区三区 | 五月综合激情视频在线观看 |