<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 可視化遠程遙控移動(dòng)機械手設計與實(shí)現

可視化遠程遙控移動(dòng)機械手設計與實(shí)現

作者: 時(shí)間:2015-03-04 來(lái)源:網(wǎng)絡(luò ) 收藏

  2.1移動(dòng)單片機軟件實(shí)現

本文引用地址:http://dyxdggzs.com/article/270440.htm

  移動(dòng)的控制核心為ATmega128L單片機,其內部通過(guò)時(shí)鐘產(chǎn)生變換PWM來(lái)控制4個(gè)DC電機旋轉從而實(shí)現的移動(dòng)。同時(shí)內部有兩個(gè)UART串口,分別與OMAP4430通信的藍牙串口和控制AX-12馬達旋轉的串口。其軟件流程如下:

  1)寄存器初始化:包括初始化時(shí)鐘定時(shí)器、端口輸入輸出初始化、設置LED控制寄存器等

  2)打開(kāi)藍牙串口和與AX-12通信串口,設置串口的波特率、奇偶校驗、停止位等屬性

  3)藍牙串口接收OMAP4430發(fā)過(guò)來(lái)的控制參數,并進(jìn)行參數解析處理。如果為運動(dòng)控制參數,則通過(guò)PWM_change()修改PWM來(lái)控制機械手運動(dòng)方向,如果為機械手設置參數通過(guò)Ctrl_Array_MT()設置每個(gè)AX-12馬達的旋轉角度和旋轉速度來(lái)完成捉取目標任務(wù)。

  4)讀取AX-12馬達的溫度及力矩,如果超出預定范圍則調整馬達速度和力矩并向OMAP4430開(kāi)發(fā)板發(fā)出提示信息。機械手動(dòng)作控制命令如表1所示:

  

 

  表1移動(dòng)機械手操作命令

  2.2 Android應用軟件設計

  2.2.1搖桿手柄事件處理

  搖桿手柄采用USB OTG方式連接到Android手機,Linux內核已經(jīng)包括其驅動(dòng)程序。手柄的水平豎直搖桿事件和按鍵事件都將觸發(fā)MainActivity的onKeyDown()函數和onGenericMotionEvent()函數的調用,在函數中分析事件對象的屬性(觸發(fā)按鍵ID、事件類(lèi)型)進(jìn)而向OMAP4430發(fā)出不同控制命令。其參考代碼如下:

  boolean onKeyDown(int keyCode, KeyEvent event)

  {if(event.getSource()==InputDevice.SOURCE_JOYST ICK || event.getSource()==1281) //手柄按鍵事件

  { if(event.getAction()==KeyEvent.ACTION_DOWN)

  { int keycode=event.getKeyCode();

  swicth(keycode)

  { case KeyEvent.KEYCODE_BUTTON_1:

  ……。 break; //ID=1按鍵按下觸發(fā)的事件

  case KeyEvent.KEYCODE_BUTTON_2:

  case KeyEvent.KEYCODE_BUTTON_3:

  default:break;}}}}

  boolean onGenericMotionEvent(MotionEvent event){

  if(event.getSource()==InputDevice.SOURCE_JOYSTICK)

  { //手柄搖桿事件

  float Raw_x=event.getRawX(); //水平方向偏移

  float Raw_y=event.getRawY(); //豎直方向偏移

  }}

  2.2.2 Android H264解碼

  Android從4.1版本加入了H264視頻硬解碼API,其MediaCodec內部封裝了openMax庫進(jìn)行多媒體硬解碼加速,openMax是一個(gè)開(kāi)源、跨平臺的多媒體編解碼加速API[5],包括openMax應用層、openMax集成層、openMax開(kāi)發(fā)層。其解碼h264的步驟包括:

  1)通過(guò)MediaCodec.createDecoderByType(“video/mp4v-es”)創(chuàng )建H264解碼對象

  2)mediacodec.configure(format,………)配置H264解碼器的參數,包括圖像分辨率,視頻幀格式、H264視頻流的頭信息等

  3)mediacodec.dequeueInputBuffer()獲取可用緩存指針,將接收的H264編碼拷貝到該緩存中,mediacodec.queueInputBuffer()將緩存送入解碼器的緩存隊列中

  4)查詢(xún)等待解碼器完成,dequeueOutputBuffer()將解碼后的圖像緩存出隊,并通過(guò)Surafce顯示接口將圖像繪制到控制界面上



關(guān)鍵詞: 機械手 遠程遙控

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>