2017年9月27日 星期三

ROSA 系統開發 40 ─ 手機 APP 與 OTTO like

https://4rdp.blogspot.com/2017/09/rosa-40-app-otto-like.html

之前開發的機器人控制展示皆以紅外線 (IR) 為主,主要是考量國中小幼童沒有手機怎麼玩?不過 ROSA 設計上早已預留手機藍牙的功能,本文將進一步說明如何將藍牙控制加入 ROSA。

首先複習舊文 ROSA 系統開發 24 ─ 以軟體序列埠程式連接 Arduino 藍芽通訊,在 ROSA_BT.cpp 程式中,
SoftwareSerial BLUETOOTH(13, 3);      // pin 13 connect to BT's TX   pin 3 connect to BT's RX
使用 Arduino 的 pin 3 RX 接藍牙 TXD ,Arduino 的 pin 13 TX 接藍牙 RXD,如果想換 Arduino pin 腳位置,記得修改這部分。

另外通訊速度參考前文 ROSA 系統開發 39 ─ OTTO like 的程式碼釋出,在 OTTO_Define.h 程式中,
//3. 選擇 BT 高低速通訊
#define BT_57600 // BT_9600 //

弄好 Arduino 端,再來就是手機端、平板或是電腦端,不過本文重點在手機,日後有機會再深入討論平板或電腦。

2017年9月23日 星期六

訓練數學感 148 ─ 直線運動推導

https://4rdp.blogspot.com/2017/09/148.html



可由已知的物理直線運動公式推導上式。

2017年9月19日 星期二

ROSA 系統開發 39 ─ OTTO like 的程式碼釋出

https://4rdp.blogspot.com/2017/09/rosa-39-otto-like.html

圖片來自 機甲人形師

這一篇說明 OTTO like 機器人 (以下簡稱 OTTO) 的 ROSA 程式碼一些細節以及開發極樂淨土舞過程的想法。

開始動工是拿 RWG 6x2 Spider 的 ROSA 程式碼改寫,蜘蛛的程式一跑,OTTO 馬上跌倒鼻青臉腫,就只好一樣一樣調整,ROSA 程式碼看不懂沒關係,只要你會設定調整,就可以一一解決相關問題。ROSA V15 程式中,玩家基本上搞懂 OTTO_Define.h 與 OTTO_Motion.h 兩個檔案,就可以編出你自己 OTTO 特殊舞蹈動作。

先看 OTTO_Define.h,因應不同的狀況可以調整它們:

//1. 選擇那一類 Arduino 板
#define Nano // UNO // mBot // motoduino // Mega // 

//2. 選擇 OTTO 幾隻腳,那一種組裝法?
#define OTTOx4 // OTTOx6 //  

//3. 選擇 BT 高低速通訊
#define BT_57600 // BT_9600 // 

//4. 選擇那一類紅外線遙控
#define IR_KEYES    //  IR_MBOT   //  IR_AUDIO  //    IR_CARMP3   // 

//5. 紅外線遙控可否處理 #13## 之類指令
#define ENABLE_IR_COMMAND

//6. 選擇 debug 訊息傳送至何處
enum{USB = 1, BT, IR};
#define DEBUG_INTERFACE  USB // BT  // 

//#define DEBUG_IR      // 檢查紅外線遙控器原始碼
//#define DEBUG_IRKEY   // 檢查紅外線遙控執行程序碼(內碼)
//#define DEBUG_IRWORD  // 檢查紅外線文字碼
//#define DEBUG_ACTION  // 檢查動作執行程序
//#define DEBUG_SERVO   // 顯示 SERVO 狀態
//#define DEBUG_MUSIC
#define DEBUG_COMMAND   // 檢查指令狀態
//#define DEBUG_NOW     // 檢查系統時間

ROSA 有引用兩個外部程式庫,因此 mBot.zip 和 SoftwareSerial.zip 請與 OTTO.ino 放在同一目錄。

ROSA V15 程式,只先加入一些重要指令功能,另外 SG90 對應 Arduino 的 pin 腳,可以從 SERVO_PIN[] 修改,
const byte SERVO_PIN[] PROGMEM =
// 0, 左上肢,左下肢,右腿上肢,右下肢,XXXX,XXXX
#ifdef Mega
  { 0, 17, 16, 15, 14, 4, 5};
#else
  { 0, 4, 5, 6, 7, 9, 10 };
#endif

2017年9月15日 星期五

訓練數學感 147 ─ 平均數

https://4rdp.blogspot.com/2017/09/147.html

一個自然數的等差級數和 1+2+3+ ... + N,從這數列去除一個數後,其平均數為 15.25,請問 N 多少?被去除的數多少?

2017年9月11日 星期一

ROSA 系統開發 38 ─ 極樂淨土舞 (Robot like OTTO)

https://4rdp.blogspot.com/2017/09/rosa-38-robot-like-otto.html


今年中與 maker 高手林益成相遇,有討論到 OTTO 機器人,他正在進行外觀修改,並送我一隻,因此我計劃今年下半年繼續進行 ROSA side project,就以它當作主角。

為了展現 ROSA 的特長,之前搭配 RWG 6x2 Spider 拍了兩個舞曲:妖怪手錶體操舞月薪嬌妻舞,現在為 OTTO like 機器人 (以下簡稱 OTTO),當然不例外給它配個舞,林益成點歌 極樂淨土,這是一首時間長達 3:45 的快慢舞步皆有的舞曲,把它當作挑戰,證明 ROSA 比其它機器人程式系統更適合編輯控制動作。


這項挑戰讓 ROSA 破了多項記錄,

一、跳舞時間長 3:45,因此舞步變化無法在 256 步驟內完成,必須加入副程式處理,因此有 _GOSUB 及 _RETURN 等指令加入。

二、舞步節奏有快有慢,因此除了 _DANCE 指令外,還增加 _SLOW2、_SLOW4、_SLOW8、_FAST2、_FAST4 等指令,可以維持原來 _TEMPO 節奏並對動作調速。

三、OTTO 是雙足機器人,些許角度偏差會造成機器人不平衡,重心錯誤會跌倒的,不像 RWG 6x2 Spider 只要有三隻腳以上撐地就不會倒,不需要精準角度定位,但是 OTTO 不行,因此每一顆 SG90 伺服馬達必須特調角度,確保角度正確。

2017年9月7日 星期四

訓練數學感 146 ─ 高鐵票怎麼買比較便宜?

https://4rdp.blogspot.com/2017/09/146.html

圖片來自 台灣高鐵
台灣高鐵的票價表如上,注意標準車箱票價即可 (左下水藍色部分),例如彰化到左營的普通全票為 670 元,現在把它分段買彰化到嘉義 250 元,嘉義到左營 410 元,會發現省 10 元。
請問這張表還有那些分段買比較便宜的例子?或是比較貴的情形?


2017年9月3日 星期日

Power Bank IC 研究系列 3 - MP3401

https://4rdp.blogspot.com/2017/09/power-bank-ic-3-mp3401.html

之前分析過 FM9833ETP4293 ,現在以相同手法測這個 MP3401。


雖然上網查不到 MP3401 的規格書,