Skip to main content

RF Remote 遙控器

 # RF Remote 遙控器發射端

--------------------------------------------------------

StartUp 當啟動時()

sendZeroSet搖桿校正

Radio Group 廣播群組設為 = 1

--------------------------------------------------------

Forever 重複無限次()

X1 Y1 = (x,y)

buttonProc按鈕程序

--------------------------------------------------------

KEY D

sendZeroSet搖桿校正

--------------------------------------------------------

buttonProc 按鈕程序()

KEY   1 2 3 45670

--------------------------------------------------------

sendZeroSet 搖桿校正()

X0 Y0 = (x,y)

--------------------------------------------------------




# RF Car 機器人接收端


# Variables 變數定義

----------------------------------------

KEY 0=未按下 1=A,2=B,..34567(按鍵)

X0,Y0 類比搖桿初始位置值

X,Y 類比搖桿移動位置值 X=X1-X0,Y=Y1=Y0

speed = min(abs(Y)*2,1023)

speed_L = speedFitRange(speed+(X*2))

speed_R = speedFitRange(speed-(X*2))

----------------------------------------

# Status Flag 狀態旗標

flag_set_zero 類比搖桿是否有歸零

flag_update 是否有收到更新值

flag_run 馬達是否啟動

----------------------------------------



--------------------------------------------------------

StartUp 當啟動時()

flag_set_zero = false

flag_update   = false

flag_run      = false

Radio Group 廣播群組設為 = 1

--------------------------------------------------------

Forever 重複無限次()

If flag_set_zero

setEnable

If flag_update

If flag_run

speed = min(abs(Y)*2,1023)

speed_L = speedFitRange(speed+(X*2))

speed_R = speedFitRange(speed-(X*2))


Y>32

正轉 = speed_L

正轉 = speed_R

Y<-32

反轉 = speed_L

反轉 = speed_R

If KEY = 3

...

If KEY = 4

setDisable

--------------------------------------------------------

Radio Received 當收到廣播鍵值(name,value) 

If name=X0, 

X0=value

flag_set_zero = true

If name=Y0, 

Y0=value

flag_set_zero = true

If name=X1, 

X=X1-Y0

flag_update = true

If name=Y1, 

Y=Y1-Y0

flag_update = true

--------------------------------------------------------

Radio Received 當收到廣播數字(reveivedNumber)

KEY

--------------------------------------------------------

setEnable()

flag_run = true

--------------------------------------------------------

setDisable()

flag_run = false

--------------------------------------------------------


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) ...