Skip to main content

Example: Dual D-Pad Controller Test - Simple Version 手機藍芽搖桿控制測試簡單版 - #microbit #bluetooth



Example: Dual D-Pad Controller Test - Simple Version 手機藍芽搖桿控制測試簡單版
#microbit #bluetooth




Description 說明:

配合手機使用 "micro:bit Blue" APP 的  "Dual D-Pad Controller"
可以控制 micro:bit顯示 按下按鈕對應的圖形



Step 步驟:

1, Install "micro:bit Blue" APP to smartphone(Android Only).
    Android 手機安裝 "micro:bit Blue" APP

2. Write code by MAKECODE and update firmware to  micro:bit board.
    用 MAKECODE 寫程式並燒錄到板子上。

3. Pair Bluetooth with micro:bit board.
   將手機和 micro:bit board 藍芽配對

4. Launch "micro:bit Blue" APP
    開啟 "micro:bit Blue" APP。

5. Press "FIND PAIRED BBS MICRO-BITS" button on bottom side. 
    按下下方  "FIND PAIRED BBS MICRO-BITS" 按鈕。

6. Select "Dual D-Pad Controller"
    選擇 "Dual D-Pad Controller"。

7. Press button, and button symbol will show on micro:bit led matrix.
    按下手機上控制器的按鈕,micro:bit 板子會顯示按下按鈕對應的圖形。












MAKECODE 






Bluetooth_DPAD_Test_Simple
control.onEvent(EventBusSource.MES_DPAD_CONTROLLER_ID, EventBusValue.MICROBIT_EVT_ANY, () => {
  if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_A_DOWN) {
      basic.showArrow(ArrowNames.North,0)
  } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_B_DOWN) {
      basic.showArrow(ArrowNames.South, 0)
  } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_C_DOWN) {
      basic.showArrow(ArrowNames.West, 0)
  } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_D_DOWN) {
      basic.showArrow(ArrowNames.East, 0)
  } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_1_DOWN) {
      basic.showIcon(IconNames.Triangle, 0)
  } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_2_DOWN) {
      basic.showIcon(IconNames.No, 0)
  } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_3_DOWN) {
      basic.showIcon(IconNames.Square, 0)
  } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_4_DOWN) {
      basic.showLeds(`
          . # # # .
          # . . . #
          # . . . #
          # . . . #
          . # # # .
          `, 0)
  } else {
      basic.showLeds(`
          . . . . .
          . . . . .
          . . # . .
          . . . . .
          . . . . .
          `)
  }
})
basic.showIcon(IconNames.Heart)
basic.forever(() => {
   
})


Comments

Popular posts from this blog

KSB037 Motor Board 馬達板擴充積木

KSB037 Motor Board 馬達板擴充積木 key: makeblock,microbit,motor Description 說明: 使用 KSB037 Motor Board 馬達板擴充積木 https://github.com/edisonchiu/pxt-motor-KSB037 History v0.1 來源版本 https://github.com/lioujj/KSB037 v0.2 修正字串錯誤 Step 步驟: 1. Makeblock -> Advanced -> Add Package 2. 在 Search or enter project URL… 輸入擴充積木網址,      https://github.com/edisonchiu/pxt-motor-KSB037 3. 按下搜尋會出現擴充積木,按下去新增擴充積木 4. 積木區就會出現新的積木可以用了。 KSB037 馬達擴充板 擴充積木測試程式 KSB037_CustomBlock_Test 目的說明: 按下按鈕可以測試馬達和板子是否正常運作 注意事項: 馬達擴充板 外接馬達需要外接電源,且電源開關需要開啟。 馬達擴充板 指撥開關 2,3,4,5 需要在 ON 的狀態。 功能說明: 按 A 左邊馬達往前全速(1023)運轉。 按 B 右邊馬達往前全速(1023)運轉。 按 A+B 兩邊邊馬達同時往前全速(1023)運轉。 以上皆非則馬達停止顯示中心一個點。 micro:bit - KSB037 Motor Simple Test (JavaScript) Source Code 源碼如下:

Image Decoder - Grasshopper

  Image Decoder Details 詳細解說: // 宣告變數 img, 型態自動依初始值設為字串 // 設定初始值為存放影像編碼 var img = "ewvveewvvw wiiwiiw webbwbbew weeggweggw ewyyewyyew woowoowe wrreewrrw"; 程式一開始宣告變數 img 存放影像編碼,影像編碼內穿插了 ‘e’ 這個字元符號,這個多餘的字元符號可以是任何沒有使用到的字元都可以替代,例如使用 ‘x’,或是使用兩種以上都可以,不過程式解碼時要記得都要濾掉。 這些多餘的字元符號把原來的圖案弄亂,所以可以讓不知道解碼的人看不出來是什麼圖案。如果我們收到知道如何解碼,可以把 'e' 字元符號去掉(Filter out 'e’),就可以看到原來的圖案了 IMAGE DATA // 原來要顯示的圖樣 空白字元表示換行 var img =      "wvvwvvw wiiwiiw wbbwbbw wggwggw wyywyyw woowoow wrrwrrw" IMAGE DATA ENCODE // 影像編碼內穿插了 ‘e’ 這個字元符號,把原來的圖案弄亂 var img = "ewvveewvvw wiiwiiw webbwbbew weeggweggw ewyyewyyew woowoowe wrreewrrw" // 解碼部分,依序判斷陣列中的字元不為’e’ 則畫出編碼內容方塊 for (var letter of img) {   if (letter !== ‘e’) {     drawBoxes(letter);   } } // 將變數 img 印出,  print(img); 因為我們並沒有改變 img 內容,所以 img 內容仍是含有 ’e’ 字元未解碼的狀態  YOUR CODE // 宣告變數 img, 型態自動依初始值設為字串 // 設定初始值為存放影像編碼 var img = "ewvveewvvw wiiwiiw webbwbbew weeggweggw ewyyewyyew woo...

Chromecast 一代改造 改善散熱及收訊問題

Google 的 Chromecast 可以放方便的把影像投放到電視上,可是一代的機構設計過於狹小,導致散熱不易,過熱的時候會出現 LAG 或是連線中斷的情況,尤其是使用 Mirror 鏡射功能的時候,或是有連續使用較長的時間,LAG的情況會變得很嚴重。 另外就是收訊問題,一代的天線只有一根,如果放在電視後方(尤其是如果是有鐵殼的電視), 或是基地台距離比較遠導致訊號不好時也會常有 LAG 的情況發生。 Chromecast 二代有對這兩個問題作修正,可是手上已經有Chromecast 一代的怎麼辦? 為了解決一代過熱及收訊不良的問題,對 Chromecast 做些改造改善散熱及收訊部分, 不過只要是拆開了就沒有保固了,不過一代的產品應該也都過保固了就是。 如何拆解請參考 Chromecast Teardown - iFixit https://www.ifixit.com/Teardown/Chromecast+Teardown/16069 拆開之前拍的照片找不到了, 借用 iFixit 圖片方便做說明。 首先把 Chromecast 拆開,周圍看起來好像是用膠或是超音波融合, 需要用些方式從HDMI接頭沿著外圍一一撥開 裡面是由鐵殼做屏蔽,散熱由導熱矽脂將熱量導上殼的一個鋁塊作散熱 圖中上殼內面綠綠的就是導熱矽脂 裡面有一個刻有編號的鋁塊 將鋁塊移除後下方也是使用大量的導熱矽脂做散熱將熱量導到塑膠殼上 散熱不佳一個原因是晶片到屏蔽殼有個不小的高度差(約1mm),屏蔽殼到散熱鋁塊也有個高度差, 散熱鋁塊到外殼也是有高度差,即使是使用了導熱矽脂做熱量的導出, 這些高度差也會導致散熱的速度不佳。 再來即使熱量導到散熱鋁塊,也因為外殼為塑膠材質無法快速的散熱, 最後熱量持續的累積導致溫度過高。 圖: PCBA正面 紅色框框內就是我們主要要加強散熱的晶片位置,也就是要熱量產生最多的來源。 仔細看了一下,手上這版 Chromecast 1 處理器已經改用 Chromecast 2 同樣新版的處理器以及周邊IC ⬤ Marvell ARMADA 1500 Mini Plus SoC (88DE3006) ...