軌跡球模塊

從 YFRobotwiki
在2020年4月10日 (五) 11:26由Allblue對話 | 貢獻所做的修訂版本

(差異) ←上個修訂 | 最新修訂 (差異) | 下一修訂→ (差異)
跳到: 導覽搜尋
創建縮圖錯誤: 檔案似乎遺失:
軌跡球模塊


產品簡介


軌跡球模塊採用黑莓軌跡球設計製作,模塊可以通過滾輪運動傳動X和Y方向的轉軸,通過固定在轉軸上的多極充磁磁體轉動,對相應的SMD霍爾元件發出信號,從而確定運動軌跡。軌跡球下方還設計了一個小SMD開關,方便用戶進行觸發事件或「點擊」選擇。


規格參數


  • 供電電壓:DC3.3 - 5V
  • 安裝孔徑:3MM
  • 模塊尺寸:28*21*15.7MM(長*寬*高)
  • 孔間距:15MM
  • 模塊重量:2.5g


引腳說明


名稱 說明
RHT Sign - right
LET Sign - left
DWN Sign - down
UP Sign - up
KEY Sign - key
VCC 電源+5V
GND


應用示例


電路連接示意圖


軌跡球模塊 Arduino UNO
RHT D4
LET D3
DWN D6
UP D5
KEY D2
VCC 電源+5V
GND



示例代碼
/**************************************************************************
BlackBerry Trackballer Breakout Demo
***************************************************************************/
//Define Trackballer Breakout pin connections to Arduino
#define Btn 2
#define Lft 3
#define Rht 4
#define Up 5
#define Dwn 6
 
//Define variables used in sketch
int buttonClick;
unsigned long mouse_Lft;
unsigned long old_mouse_Lft;
unsigned long mouse_Rht;
unsigned long old_mouse_Rht;
unsigned long mouse_Up;
unsigned long old_mouse_Up;
unsigned long mouse_Dwn;
unsigned long old_mouse_Dwn;
int x_position;
int y_position;
 
/*********************Setup Loop*************************/
void setup() {
 
  //Define pin functionality on the Arduino
  pinMode(Btn, INPUT);
  pinMode(Lft, INPUT);
  pinMode(Rht, INPUT);
  pinMode(Up, INPUT);
  pinMode(Dwn, INPUT);
 
  //Start Serial port for debugging.
  Serial.begin(9600);
  Serial.println("Begin Trackballer Demo");
  delay(1000);
  Serial.println("Begin Trackball tracking");
}
 
 
/*********************Main Loop*************************/
void loop() {
  //read the pin state
  mouse_Lft = digitalRead(Lft);
  mouse_Rht = digitalRead(Rht);
  if (mouse_Lft != old_mouse_Lft)
  {
    x_position = --x_position;
    old_mouse_Lft = mouse_Lft;
    Serial.print("Trackball Position: \t X-Position= ");
    Serial.println(x_position);
  }
  if (mouse_Rht != old_mouse_Rht)
  {
    x_position = ++x_position;
    old_mouse_Rht = mouse_Rht;
    Serial.print("Trackball Position: \t X-Position= ");
    Serial.println(x_position);
  }
  delay(50);
  //read the pin state
  mouse_Up = digitalRead(Up);
  mouse_Dwn = digitalRead(Dwn);
  if (mouse_Up != old_mouse_Up)
  {
    y_position = ++y_position;
    old_mouse_Up = mouse_Up;
    Serial.print("Trackball Position: \t  \t Y-position= ");
    Serial.println(y_position);
  }
  if (mouse_Dwn != old_mouse_Dwn)
  {
    y_position = --y_position;
    old_mouse_Dwn = mouse_Dwn;
    Serial.print("Trackball Position: \t  \t Y-position= ");
    Serial.println(y_position);
  }
  delay(50);
 
  //Check for button click. If present, print to Serial monitor.
  buttonClick = digitalRead(Btn);
  if (buttonClick == LOW)
  {
    Serial.println("Click");
  }
}

程序下載地址:BlackBerry_Trackballer_Breakout_Demo

程序運行結果:轉動軌跡球,串口輸出X、Y軸位置信息,點擊按鍵串口輸出「Click」。串口監視器截圖:

軌跡球串口輸出

教程地址附視頻


參考資料





返回首頁

歡迎交流加入群聊-技術交流群

更多建議和問題歡迎反饋至 YFRobot論壇

購買方式:YFRobot 電子工作室