2019年1月30日 星期三

訓練數學感 202 ─ 循環的排列

http://4rdp.blogspot.com/2019/01/202.html

十個盒子圍成一圈,十顆球從 0 到 9 編號,每個盒子只能放一顆球,旋轉放置視為同一種放法,例如 0123456789 與 1234567890 視為相同,請問有幾種不同放法?

2019年1月26日 星期六

ROSA 系統開發 62 ─ LCD Nokia 5110

http://4rdp.blogspot.com/2019/01/rosa-62-lcd-nokia-5110.html



在應用 Arduino 設計專案時,因為作品屬性不同,不常見有人使用點陣式 LCD,我覺得利用它可以開發很多特殊作品,因此 ROSA 2019 再出發,選擇一個平價 LCD 來設計,找來找去覺得 Nokia 5110 LCD 很適合,上圖左為 LCD 模組正面,上圖右為背面,Google 這個 5110 模組會發現有很多型式,意思是各家廠商所製作的模組排針位置不盡相同,我所買到的昰上圖的型式,所以將依照這樣的模組來設計 ROSA 程式,玩家設計時要注意小心。



2019年1月22日 星期二

訓練數學感 201 ─ 正三角形面積等於多少?

http://4rdp.blogspot.com/2019/01/201.html

有個六邊形,直線 AD、BE、CF 共同相交於 O 點,其中 BOC、DOE、AOF 都是正三角形,已知另三個三角形面積分別為 8、10、20 單位面積,試求三個正三角形面積。

2019年1月18日 星期五

ROSA 系統開發 61 ─ System Timer

http://4rdp.blogspot.com/2019/01/rosa-61-system-timer.html

寫任何嵌入式系統,系統時間控制非常重要,但是 Arduino 的使用者有很大比例是非專業程式設計師,基於這樣的情形,促使我想開源設計 Robot Operating System for Arduino,邁入第四個年頭,為了更普及 ROSA,所以將它函式庫化,請看 ROSA 系統開發 60 基本觀念。

以下是主程式,你只要改寫它就可以立即使用

// (C) 2019, Bridan Wang, CC BY-NC-SA 3.0 TW
// This is a demo program applied Robot Operating System for Arduino
// http://4rdp.blogspot.tw/search/label/ROSA%20(Arduino)

//軟件許可協議
//
//研發養成所 Bridan Wang 提供此軟體供學校教育或個人單獨使用
//對外分享展示本軟體時,請說明來源來自研發養成所
//你可以架構在本軟體基礎上,設計新功能或修改
//本軟體屬於 Bridan 和或其它原始碼供應商,並受適用的法律版權保護
//此軟體按“原樣”提供,可能含有錯誤,不作任何明示,暗示或法律的保證
//本軟體僅限 Arduino 部分微控制器產品,適用於特定用途
// Bridan 在任何情況、環境以及特殊使用不負任何原因損害賠償責任
//
//這是 ROSA 韌體版本的一部分。

/***********************************************************
// Include
************************************************************/
#include "ROSA_DEFINE.h"

/***********************************************************
// SYSTEM TIMER
************************************************************/
#define ledPin 13  // 第13隻接腳控制 LED 明滅。
byte state = 0;

void TIMER_2ms()
{
}

void TIMER_10ms()
{
}

void TIMER_100ms()
{
  state = 1 - state;
  if (state==0)
    digitalWrite(ledPin, LOW); // 設定PIN13腳位為低電位= 0V ,LED 熄滅
  else
    digitalWrite(ledPin, HIGH); // 設定PIN13腳位為高電位= 5V ,LED 發亮
}

void TIMER_1sec()
{
}

#include ".\ROSA\ROSA_TIMER.cpp"

void setup() {
  ROSA_TIMER_SETUP();
  pinMode(ledPin, OUTPUT);
}

void loop() 
{
  ROSA_TIMER_RUNNING();
}


執行這個程式只要有一片 UNO 即可,紅字部分的程式碼,放在 100 ms 副程式中,可使 LED 亮 0.1 秒,滅 0.1 秒,如果放在 1 sec 副程式,LED 將亮 1 秒,滅 1 秒。

2019年1月14日 星期一

訓練數學感 200 ─ 兩群總和相等的機率

http://4rdp.blogspot.com/2019/01/200.html

整數 1, 2, 3, 4, 5, 6, 7,將它們分成兩群,每群至少一個,把各群數值相加,請問兩群數值總和相等的機率為多少?

2019年1月10日 星期四

曲面自由滾動與鐘擺

http://4rdp.blogspot.com/2019/01/blog-post.html

有一球體自 1/4 圓高處沿著曲面自由滾下,請問它與鐘擺由高處擺下,兩者那一個落到最低點的時間比較快?請忽略摩擦力。

2019年1月6日 星期日

訓練數學感 199 ─ 最多可以放幾個等腰三角形

http://4rdp.blogspot.com/2019/01/199.html

一個半圓形,在裡面任意畫頂角為 20° 等腰三角形,三角形頂角必須在半圓的弧上,三角形底邊必須與半圓底邊上,請問半圓內最多可以放幾個頂角 20° 等腰三角形?所有三角形不相重疊。

難度

2019年1月2日 星期三

ROSA 系統開發 60 ─ Arduino 的 #include 與 #define

http://4rdp.blogspot.com/2019/01/rosa-60-arduino-include-define.html

2019 祝大家新年快樂,2018 年時間投入在 4rdp 四格益智拼圖的開發,今年將再度回歸 ROSA  (Robot Operating System for Arduino) 開發,經過一年時間沉潛,沈思若要 ROSA 更加普及,須要將它寫成函式庫型態,所以我就從這地方出發。

ROSA 有一點與其他函式庫不同的地方,它有比較完整的程式架構,希望 Arduino 初階入門的朋友只要改動一些設定就可以立即使用,因此 C/C++ 語言中 #include 和 #define 是非常重要的語法,所以本節說明相關要點。

我們先建立一個 ROSA_Timer.ino 主程式,程式碼如下:

#define ledPin 13  // 第13隻接腳控制 LED 明滅。
// setup() 函數只會於電源啟動時執行1次
void setup() 
{
  // 設定第 13 支腳為輸出模式
  pinMode(ledPin, OUTPUT);
}
// loop() 函數會不斷的重複執行
void loop()
{
  digitalWrite(ledPin, HIGH); // 設定PIN13腳位為高電位= 5V ,LED 發亮
  delay(500); // 等待500 毫秒,也就發亮 0.5 秒
  digitalWrite(ledPin, LOW); // 設定PIN13腳位為低電位= 0V ,LED 熄滅
  delay(500); // 等待500 毫秒,也就熄滅 0.5 秒
}
------------------------------------------------------------

接下來 ROSA_Timer.ino 程式改寫為:

#define ledPin 13  // 第13隻接腳控制 LED 明滅。
// setup() 函數只會於電源啟動時執行1次
void setup() 
{
  // 設定第 13 支腳為輸出模式
  pinMode(ledPin, OUTPUT);
}
// loop() 函數會不斷的重複執行
void loop()
{
  led();
}

另外新增一個 ROSA_LED.cpp 程式

void led()
{
  digitalWrite(ledPin, HIGH); // 設定PIN13腳位為高電位= 5V ,LED 發亮
  delay(500); // 等待500 毫秒,也就發亮 0.5 秒
  digitalWrite(ledPin, LOW); // 設定PIN13腳位為低電位= 0V ,LED 熄滅
  delay(500); // 等待500 毫秒,也就熄滅 0.5 秒
}

程式編譯過程會出現下列錯誤
error: 'led' was not declared in this scope
---------------------------------------------------------------