2017年10月23日 星期一

ROSA 系統開發 43 ─ mBot 程式碼釋出

http://4rdp.blogspot.tw/2017/10/rosa-43-mbot.html

寫好 OTTO like 程式後,稍微改一下 mBot 也可以使用,今天就釋出 ROSA 原始碼給有興趣的朋友參考。

這個程式提供三種模式 ─ 遙控模式避碰模式循跡模式

遙控器操作方式如下:(這裡的遙控器不限定 mBot 的,KEYES 或是手機程式皆同)
按鍵 A 或 7,皆為設定為遙控模式
按鍵 B 或 8,皆為設定為避碰模式
按鍵 C 或 9,皆為設定為循跡模式
按鍵 1~5,調整車速,數值越小車速越慢
按鍵 上下左右,控制方向
按鍵 * 或 OK,為停止


2017年10月19日 星期四

訓練數學感 151 ─ 關於對蹠點問題研究 Antipodes Study Part 2

http://4rdp.blogspot.tw/2017/10/151-antipodes-study-part-2.html

前文,網友赤子西瓜自己提問一個對蹠點問題,他已經充分了解如何解析這問題,就嘗試和同學一起研究運動方程式,現在把部分成果展現,並且也加入我的一些網友意見,大家共同創作,有興趣的朋友歡迎加入。

首先看西瓜的研究原文,說明對蹠點問題的解。

內置圖片 1
為了解決這一題,我將地球切成上下兩半,如上圖,C、D為兩半球的質心。
現在開始計算k。
由於上下兩個半球是軸對稱形體,所以取一半圓形薄膜計算質心即可。在此令密度為ρ。

假設兩函數:
內置圖片 3
圖形如下(圖形為R=1時的範例):
內置圖片 4

將區間[-R,R]縱切分為n個子區間,寬度Δx。假設第i個子區間中心為xi,將對應第i個子區間想像成一個高f(xi)-g(xi)的長方形。
則此長方形的質量mi為
(密度)(高度)(寬度)
mi=ρ[f(xi)-g(xi)]Δx
想像此長方形的質量集中在中心,則mi對x軸的質矩Mx
(質量)(距離)
Mx=ρ[f(xi)-g(xi)]Δx[f(xi)+g(xi)]/2
  =(1/2)ρ[f(xi)-g(xi)][f(xi)+g(xi)]Δx
取n→∞,積分求總和,然後除以半圓的質量,即可得到質心的y座標。(而質心的x座標為零,顯而易見。)
內置圖片 1
內置圖片 2
(y bar為質心縱座標、A為半圓面積。)
因此k=4R/3π。

​再次回到原圖。假設物體m在路徑AB上的動點P。令OP向量為物體的位置向量r(t)、上下兩半球質心指向物體的兩向量d1(t),d2(t),且兩者大小相等、d1(t),d2(t)與r(t)夾角θ、沿著CP、DP作用的萬有引力Fg1,Fg2。
首先,根據萬有引力定律:
內置圖片 5
接著觀察下圖。
​將θ經過簡單的內錯角;Fg1、Fg2適當的平移,就可以得到上圖。
此時,就可以計算Fg1:
內置圖片 8
觀察上上圖之後,發現最右邊的cosθ與|d(t)|,則可以如此代換:

內置圖片 9
代換後:
內置圖片 13
將Fg的絕對值去除,需要考慮方向,此時假設一單位向量r^,方向和r(t)相反。
內置圖片 11
根據牛頓第二運動定律,Fg=mg,這裡g即為r(t)的二階導函數。接著,將m消除,稍加整理。
內置圖片 14
在此|r(t)|得以去絕對值。因為r^和|r(t)|方向相反,所以結果會是-r(t)。最後,帶入k=4R/3π。
(我去翻了寄件備份,發現我當時竟然忘了這個負號!)
內置圖片 15
結果即是此微分方程式。
其實,個人比較喜歡以下形式:
內置圖片 16

2017年10月15日 星期日

ROSA 系統開發 42 ─ 新北自造者嘉年華 (Mini Maker Faire New Taipei)

http://4rdp.blogspot.tw/2017/10/rosa-42-mini-maker-faire-new-taipei.html

十月 14, 15 兩天,新北市政府在板橋市民廣場露天舉辦新北自造者嘉年華,台北天氣受卡努輕颱以及東北寄風共伴的影響,從 13 號星期五開始大雨不斷,雖然 14 號星期六上午雨勢稍有停歇,可是對在戶外舉辦的活動,是一個極度傷害的因素,如果沒有這場雨,會場應該會有數倍人潮參觀。

我上午就先去林益成的機甲人形師的覓星工坊攤位拜訪,並帶著之前會跳極樂淨土舞的 OTTO like 給他擺攤,益成又送我一隻紅色進化版的 OTTO like 有加強腳部結構,還加裝一個電源按鍵,可以控制四顆四號電池電源,它的外觀就是左邊照片的那一隻,因為是紅色的,我就當它是綠色 OTTO like 的女朋友。

這隻帶回家就先幫她安裝 ROSA 程式,不過發現她的動作跟她的男朋友不太一樣,原來紅 OTTO like 下肢馬達安裝方向是相反的,這在設計 ROSA 的時候早就意料到,在 ROSA_SERVO.cpp 中 byte gServo_Reverse[] = { 0, 1, 1, 1, 0, 0, 0 };
把紅字 1 改為 0,0 改為 1,就可反轉馬達方向,不用重新拆裝馬達。

改好後程式再跑一次,腳的角度還是有點差異,因此 OTTO_Motion.h 中,左腿及右腿下肢角度重新調整,註解的數值是原來綠色 OTTO like 的角度設定,你會發現不同 SG90 馬達差異真的很大,而且還不線性,不過這些問題 ROSA 都可以輕易解決。改好後隔天,再把它送回給益成擺攤。

2017年10月11日 星期三

訓練數學感 150 ─ 沒有心臟病的機會有多高?

http://4rdp.blogspot.tw/2017/10/150.html

這裡的「心臟病」是指撲克牌一種遊戲玩法,一付撲克牌 52 張,以 A,2, ... ,10,J,Q,K 分別代表數值 1,2, ... ,10,11,12,13,一群人圍坐在一起,撲克牌充分洗牌後蓋起來放在中間,大家輪流翻一張牌,並且依續喊出 1,2, ... ,10,11,12,13,當遇到喊出數值跟牌張配對時,大家就伸手搶蓋牌,最下層的人有權利從上往下打反應遲鈍玩家的手背。

這裡的問題,請問翻完 52 張牌,遇不到「心臟病」的機會有多高?

2017年10月7日 星期六

ROSA 系統開發 41 ─ mBlock 序列埠通訊問題

http://4rdp.blogspot.tw/2017/10/rosa-41-mblock.html

這篇文章主要記錄 mBlock 序列埠通訊問題,期望 MakeBlock 公司盡快將這問題解決。

兩年前,我曾嘗試用 mBlock 與 Arduino 相互傳送字串可以正常運作,詳見 ROSA 與 mBlock 的歡喜相遇一文,但現在以 mBlock v3.4.11 卻發現不行,為了釐清問題所在,進行以下步驟來除錯,有興趣的朋友參考看看。

1. 先將 USB 序列埠連線,寫一個小程式在 mBot 或 Arduino 上,每秒傳送 Hello! 字串,可以看見圖一右下角監控視窗每秒有資料傳給電腦。


2. 再來寫電腦端的 mBlock 程式,每秒讀取一行數據,執行程式後,小貓熊沒有任何反應。

2017年10月3日 星期二

2017「遊能有愉」 能源主題桌遊設計工作坊及競賽 ─ 招兵買馬

http://4rdp.blogspot.tw/2017/10/2017.html


網路上看到 Accupass 貼出桌遊設計比賽,活動細節詳見https://www.accupass.com/event/1709210424071181235778,是由財團法人台灣綜合研究院、國立臺北教育大學數位科技設計學系、HELLO MAKER 教育團隊主辦,經濟部能源局為指導單位,國立臺中科技大學資訊管理系協辦。

活動有北中南三區,看一下北區活動日程
10/13(五) 11:00 活動說明會,國立台北教育大學科學館 B101 階梯教室
10/22(日) 報名截止
10/27(五) 公布錄取及備取名單
10/30(一) 繳交保證金截止
11/18,19(六日) 09:00~18:00 培訓上課
12/10(日) 作品上傳截止
12/18(一) 公佈決賽名單及時間地點
??? 決賽

2017年10月1日 星期日

訓練數學感 149 ─ 對蹠點 (Antipodes)

http://4rdp.blogspot.tw/2017/10/149-antipodes.html

如果架設一條管子穿過地心,從地表擲下一顆球,令其不受阻力地順著重力往地心自由墜落:
(1)球是否能到達對蹠點?
(2)速度變化過程為何?