發表文章

C++程式語言陣列與迴圈的應用:MS-DOS Color Background and Text

在 Windows 系統下可以使用system搭配 MS-DOS 的 color 指令(可參考此篇文章 更改 命令提示字元 Command Prompt (cmd) 的顯示顏色 )與 cls 來達成文字顏色的動畫。 color 指令示範影片: C++程式碼: // 陣列與迴圈的應用:MS-DOS Color Background and Text #include <iostream> #include <Windows.h> using namespace std; int main () {     system ( "pause" );     char hex [ 17 ] = "0123456789ABCDEF" ;     char cmd [ 20 ] = "color 00" ;     // bg: backgroud     for ( int bg = 0 ; bg <= 15 ; bg++) {         cmd [ 6 ] = hex [bg];         // fg: foreground         for ( int fg = 0 ; fg <= 15 ; fg++) {             cmd [ 7 ] = hex [fg];             //cout << cmd << endl;             system (cmd);             cout << "YunlinSong" ;             Sleep ( 200 );       ...

不使用 Arduino 內建函式庫來點亮LED燈

圖片
本文將說明如何在不使用 Arduino 內建函式庫()來製作 LED 閃爍功能(Blink)。使用的軟硬環境如下: 軟體 硬體 Windows 10 Arduino UNO * 1 Arduino IDE LED * 2 Google Chrome 220 OHM 電阻 * 2 Tinkercad 麵包版 * 1 Arduino Uno 的微處理器是Atmel ATMega328p,規格手冊下載網址為 https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf 在不用Arduino函示庫下,使用C語言來做微處理器程式設計時,須對微處理器的三個暫存器(DDR, PORT, PIN)做設定,此部分可參考 https://docs.arduino.cc/hacking/software/PortManipulation 舉例來說,若要使用 Arduino Uno pin 13 來控制 LED 的開起與關閉,而 pin 13 是 PORTB 來做映射(mapping),首先要設定 pin 13 為輸出: DDRB = B00100000;  // sets Arduino pins 13 as outputs 設定 pin 13 為High電位或是低電位: PORTB = B00100000; // sets digital pin 13 HIGH PORTB = B00000000; // sets digital pin 13 LOW <avr/io.h> 有這些暫存器位址以及輸入輸出腳位位址。 電路設計 程式碼 #include <avr/io.h> #include <util/delay.h> int main ( void ) {   DDRB = B00100000; // Set pin 13 as output   DDRB |= _BV (DDB4); // Set pin 12 as output   DDRD |= _BV (DDD7); // Set pin 7 as o...

Scratch 3 遊戲:狗吃香蕉(Dog eats bananas)

圖片
【遊戲名稱】狗吃香蕉(Dog eats bananas) 【基本動作】 點擊綠旗遊戲開始。 在畫面上按下滑鼠左鍵,小狗開始追蹤滑鼠。 小狗吃到香蕉時,香蕉一根一根地少。 小狗吃到香蕉時,會說出:「Yummy」(好吃)。 香蕉被吃到時,會跑到畫面上的隨機位置。 【遊戲試玩】 製作步驟: ( 底下程式積木僅供參考,設計方式不是只有一種。 ) 步驟 一 、選擇小狗(Dog1)角色 步驟 二 、小狗積木 功能為 按下滑鼠左鍵,小狗開始追蹤滑鼠。 步驟 三 、選擇香蕉(Banana)角色 步驟 四 、製作 香蕉(Banana)角色被吃掉的造型。 複製原本的 香蕉(Banana)角色 造型後, 再使用選擇(Select)工具點選一根香蕉來刪除。 步驟五 、香蕉積木 功能為 小狗吃到香蕉時,香蕉一根一根地少,以及香蕉被吃到時,會跑到畫面上的隨機位置。 步驟六 、 增加 “ 文字轉語音 ” 擴充積木 點選 添加擴展 圖示 選擇 文字轉語音 的擴展 步驟七 、舞台背景積木 積木功能為 小狗吃到香蕉時,會說出:「Yummy」(好吃) 。 恭喜您完成了。 可增加的額外功能: 計時與計分 專案範例網址: https://scratch.mit.edu/projects/252457534 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

MakeCode Microbit 雙按鈕PK遊戲

圖片
  LED 矩陣座標 首先要了解 Microbit LED 矩陣座標,由左到右的水平方向為稱為 X座標(下圖的藍色箭頭) ,由上到下的垂直方向稱為 Y座標(下圖的綠色箭頭) 。左上角白色箭頭所指的座標為(0,0),而正中央座標為(2,2)。 步驟一:建立一個新變數,名稱為 「球」 步驟二: 將 「球」 的起點放在正中央(如下圖) 步驟三: 按鈕A按下時, 「球」 往左移(-1) 步驟四: 按鈕B按下時, 「球」 往右移(1),請思考如何做? 步驟五: 當 「球」 碰到最左邊邊緣時(x=0) 步驟六: 當 「球」 碰到最右邊邊緣時(x=4) ,請思考如何做? 步驟七: 自動判斷勝負 提示判斷球的座標在那兒是按鈕A獲勝,請思考如何做? 範例連結: https://makecode.microbit.org/ _HKH8H6cM7ARu 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

Scratch 3:點爆氣球 Balloon Clicker

圖片
【遊戲名稱】點爆氣球 Balloon Clicker 【基本動作】 氣球在畫面上隨機移動。 點擊氣球時,氣球會充氣(放大)。 氣球充氣到一定程度大小,會爆炸。 【遊戲試玩】 製作步驟: ( 底下程式積木僅供參考,設計方式不是只有一種。 ) 步驟 一 、選擇主要角色,本例為氣球(Balloon)。 步驟 二 、使用橡皮擦/擦子(Eraser)工具製作氣球爆掉的造型。 步驟 三 、為 氣球(Balloon)角色的 造型命名,分別為「 未爆 」、「爆了」。 步驟 四 、建立 氣球(Balloon)角色 積木程式 恭喜您完成了。 可增加的額外功能: 計時與 計分 專案範例網址: https://scratch.mit.edu/projects/719065015 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

Scratch 3:簡易數位鋼琴(Simple Digital Piano)

圖片
本篇文章將要製作一個簡易的電子鋼琴。 遊戲功能: 主要角色(本例為恐龍 Dragon)的會移動到按下鋼琴鍵盤的上方。 恐龍會有動作與變色。 按下鋼琴鍵盤會發出音樂。 您會做出什麼樣子的鋼琴呢? 遊戲試玩: 製作步驟: ( 底下 程式積木 與 圖形 僅供參考,設計方式不是只有一種。 ) 步驟一:選擇主要角色 (本例為恐龍 Dragon)。 步驟二:主要角色積木 (本例為恐龍 Dragon)。 步驟三:使用方形工具繪製鋼琴鍵盤。 步驟四:鋼琴鍵盤角色積木。 步驟五:複製鋼琴鍵盤角色,本例複製四個。 步驟六:排列鋼琴鍵盤位置與 主要角色 (本例為恐龍 Dragon)位置,類似下圖 。 步驟七:修改鋼琴鍵盤角色積木內的 演奏音階 , 使每個鋼琴鍵盤角色發出不一樣的音階 。 恭喜您完成了。 https://scratch.mit.edu/projects/749493707 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

mBot 遇上打磚塊,來運動囉。

圖片
修改文部落格的文章 Scratch 遊戲:打磚塊 後,就可以用 mBot 裡的超音波來玩打磚塊遊戲了。只把 打磚塊 遊戲中平台角色的程式積木 換成用超音波的距離偵測 這裡只對座標轉換的方式做點說明: 1. 限制超音波所感測到的距離在30公分以下。 2. Scratch的水平畫面(X座標)寬度為 480 (從 -240 到 240 )。 3. 於是 超音波所感測到的 距離 * 16 - 240 就會是 ( -240 到 240 )了。 底下用手拿書本來玩的影片: 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.