標籤

2019年2月14日星期四

F3 Physics Robotbit Project


點燈#1


點燈#2

https://makecode.microbit.org/_WYbEKF4VYeow


超聲波
如下表接駁超聲波傳感器  HC-SR04
Vcc  - 5V
trig - P1
echo  - P2
gnd - GND

使用「sonar」模組




馬達 / 水泵

共有4組可共使用的馬達接口
M1A
M1B
M2A
M2B

按下圖接駁M1A






智能小車


更多教學:


2019年1月23日星期三

Tello EDU Swift Playground Code



使用前準備
  1. 安裝 Swift Playground
  2. 安裝TELLO SPACE TRAVEL
  3. 所有TELLO EDU 必須用TELLO App Activate
  4. 如沒有”TELLO SPACE TRAVEL”, 可用DroneBlocks 團隊開發的 (未完成)


Swift Playground BASIC 基本任務
  1. TakeOff and Landing
  2. Ascent and Descent
  3. Forward and BAckward
  4. Fly over the Space Station
  5. Left and Right
  6. Fly Around the Space Station
  7. Changing the Course  (起飛, 左轉90度, 右轉90度, 降落) 
  8. Patrol Around Space Station (根據圖示,運用for loop, 圍繞基地轉一個圈)
  9. Inspecting the Space Station  (根據圖示,運用for loop, 圍繞基地轉一個圈)
  10. Fly at Will (自由發輝)

Swift Playground Advance 進階任務
  1. Height Sensors 取後目前高度 
  2. Adjust Fight Speed 調校飛行速度 - 前進180cm , 轉180度, 以50%速度前進180cm
  3. Observe the Front - 直線飛flyLine(x,y,z) 到 (x:100, y:100, z:0)
  4. Observe the Back - 曲線flyCurve(x,y,z)由(x:100,y:100,z:0)飛到 (x:200, y:0, z:0)
  5. Full Observation - 飛到星球的最高點,以getHeight() 取得高度
    直線飛到(x:13: y:0,z:50), 曲線到點 (x:100, y:0,z:100), 取得高度, 曲線到點(87,0,-50), 直線到點(100,0,-100)
  6. Fill at Will (自由發輝) 


Swift Playground Mission Pad  
  • 用Mission Pad, 每塊相距100cm
  • TELLO可辨識下面[20-100cm]的mission pad 的數字
  • TELLO可辨識平面 60cm x 60cm 的面積
Mission:  (1-3只用一塊), 4用兩塊
  1. Reading the Coordinate
    起飛, 用getPadID() 取得Mission Pad 編號, 用getPadPos() 取得TELLO處於MissionPad的位置
  2. Fly to Given Coordinate
    起飛, 用getPadID() 取得Mission Pad 編號, 直線飛到(x:30, y:0, z:100, pad: padID), Land()
  3. Fly Around the Planets
    取得Mission Pad 編號,
    用flyLine 飛往C1, C2,C3, C4,
    直線返回 (0,0,100),
    降落
  4. Galaxy Jump 把TELLO放於Mission Pad 1
    getPadID() 取得Mission Pad 編號,
    transit (100,0,100, pad1, pad2),
    降落
  5.  Return from the New Galaxy - 來回不同宇宙
    起飛
    transit (100,0,100, pad1, pad2),
    transit (100,0,100, pad2, pad1),
    降落
  6. Explorer the New Galaxy 尋找不同宇宙
    getPadID() 取得Mission Pad 編號,
    使用transit(x,y,z,pad1, pad2) 在不同宇宙間移動
  7. Fill at Will (自由發輝) 

Swarm 群飛
-需要連接到AP (Router)
-swarm.scan(number:Int) 尋找所有已連接的TELLO, 機號由[0], [1], ...
-swarm.tello[0].takeOff() 飛0號機

  1. Connect Tellos to an AP 連接第一部TELLO
    connectAP(ssid: “______", password: “_______")
    連接幾部
  2. Find All Tellos 尋找所有已連接的TELLO
    swarm.scan()
    swarm.tellos.takeOff()
    swarm.tellos.land()
  3. Control the Flow 指令同步,如一部機指令未完,其他機會先等候
    -每部TELLO在獨立的Mission Pad, 每塊Mission Pad 1m 距離
    全部起飛
    一半機飛高50cm, 一半機飛低50cm
    飛高了的飛低100cm, 飛低的飛高100cm
    重覆4次, 最後飛到一樣高,
    降落
  4. Form A Guarding Fence
    使用4塊Mission Pad (按順時針1,2,3,4)







function list:

takeoff and landing 
  • land()
  • takeoff()
  • wait(seconds:UInt)

基本前進, 升降, 轉向
  • flyBackward(cm:Unit)
  • flyDown(cm:UInt)
  • flyForward(cm:UInt)
  • flyLeft(cm:UInt)
  • flyRight(cm:UInt)
  • flyUp(cm:UInt)
  • turnLeft(degree:Int)
  • turnRight(degree:Int)

進階指令 Advanced
  • flyCurve(x1:Int, y1:Int, z1:Int, x2:Int, y2:Int, z2:Int)  曲線由(x1,y1,z1)飛到 (x2, y2, z2)
  • flyLine(x:Int, y:Int, z:Int) - 直線飛到坐標(x, y, z)
  • getHeight()
  • setSpeed(cms:UInt)

Mission Pad
  • getPadID()
  • getPadPos()
  • transit(x:Int, y:Int, z:Int, pad1:Int, pad2:Int)

Swarm 群飛
Connect 連接
  • 需要連接到AP (Router)
  • connectAP(ssid: “______", password: “_______")
  • -開機,再長按Power Button 重設至普通模式
控制
  • swarm.scan(number:Int) 尋找所有已連接的TELLO, 機號由[0], [1], ...
  • swarm.tello[0].takeOff() 飛0號機
  • swarm.tellos.takeOff() 全部起飛
  • swarm.tellos.land() 全部降落
  • swarm.sync(seconds:10)
  • swarm.tellos.transit(x,y,z) 指示 TELLO飛到下一塊Mission Pad內的x,y,z位置

func () {            
    while i {        //無限重覆 
        code
    }
}


for i in 1…3 {        //重覆3次
    code
}






Basic Flow
Connect Tellos to AP
Find all Tellos
Control the Flow
Form A Guarding Fence
查找本機的IP位址
  1. 按 Windows鍵 + R鍵
  2. 鍵入 「cmd」
  3. 鍵入 「ipconfig」
  4. 可見到 ip 位址 (v4)
  5. 也可見到 ipv6的位址






 查找本機的MAC位址

  1. 按 Windows鍵 + R鍵
  2. 鍵入 「cmd」
  3. 鍵入 「ipconfig /all」
  4. 會見到所有網絡卡的詳細設定, 其中「乙太網絡卡」就是你的有網LAN卡
  5. 當中實體位址就是你的MAC位址

 查找本機在互聯網上的IP 問題:

  1. 在Google 上搜尋「what is my ip address」
    就會顯示你的網絡上的IP

2018年12月17日星期一

F3COMP1819 上學期 溫習重點



列出部份上學期考試重點

系統部件:
中央處理器 電腦的大腦, 速度以赫茲(Hz)
RAM, ROM 的分別:
RAM – 暫存數據, 關機就消失數據
ROM – 只可讀取, 不可寫入, 資料永久

輸入輸出設備
分類
輸入: 滑鼠, 手寫板,鍵盤,
輸出: 顯示器, 打印機,投影機

噴墨打印機和鐳射打印機的優缺點比較
噴墨打印機機價較低, 打印墨水貴
鐳射打印機機價較高, 打印碳粉便宜, 打印速度快

顯示器: LED/LCD, CRT
LED: 體積小, 省電, 對眼睛傷害小

儲存設備:
B, KB, MB, GB 轉換
1GB = 1024MB
1MB = 1024KB
1KB = 1024B
1B = 1英文字 = 8位元


USB快閃記憶體
硬蝶 可永久保存資料

網絡設備
LAN 局部區域網絡 - 學校,公司,家庭,範圍較小
WAN 廣泛區域網絡 - 跨區域 / 國家,同見於光纖網絡,同軸電纜網絡
路由器




音頻檔案格式:
WAV, MP3, MIDI, WMA

音頻檔案計算大小

影響音頻質素的因素:
取樣頻率,取樣大小,聲道數目

編輯音頻軟件: Audacity




Micro:Bit 小車:
P12(左輪), P16(右輪)
程式可參考:









2018年12月14日星期五

Robotbit Robot:Bit 基本教學

中四的同學今天(24/1) 請嘗試接駁Servo。
明天(25/1) 2堂自行製作一個程式,示範你學到的Micro:Bit 技巧。最後把你的程式按分享專案,並把網址上載至Google Classroom。(計分)

中五的同學今天(24/1) 請自行製作一個程式,示範你學到的Micro:Bit 技巧。請把你的程式按分享專案,並把網址上載至Google Classroom。(計分)


接駁 MicroBit + RobotBit


接駁USB




LED 燈全亮




獨立點亮
https://makecode.microbit.org/_UPjY2Ag9f0J8


其他參考: https://zhuanlan.zhihu.com/p/39191674



Servo 航機


接駁方法

2018年11月22日星期四

Micro:Bit 控制小車活動 (Kitronik Motor Driver)

Kitronik Motor Driver

課堂提示:

  1. 分組先決定: 前進, 後退, 停止, 轉左, 轉右的控制方法
  2. 決定前進, 後退, 停止, 轉左, 轉右時會傳送的數字
  3. 小組分成傳送小隊和接收小隊
  4. 傳送小隊會較易: 當指定動作時傳送數字
  5. 接收小隊較難, 當收到指定數字會做出對應動作 


前進
P12 - 500
P8 - 0
P16 - 500
P0 - 0

後退
P12 - 500
P8 - 0
P16 - 500
P0 - 0

RIGHT
P16 - 500
P12 - 0

LEFT
P16 - 0
P12 - 500

第一堂提示:


More TIPS: https://www.on-sir.tk/2018/09/chassis.html



成品:
傳送小隊 Send Side: https://makecode.microbit.org/86104-94056-11818-25307
接收小隊 Receive Side:  https://makecode.microbit.org/_drsgoo4MF9Lh






Other:
Laser Cut File (To use with battery case, direction wheel, Kitronik Motor Driver)
AI




不同的電腦系統

超級電腦:
-高運算能力,以計算複雜的算法
-http://top500.org

伺服器 / 大型電腦: 配備較高,適合用作伺服器 / 多人使用的電腦
- 一般放於 Data Center
- https://www.on-sir.tk/2017/10/server.html


個人電腦 (PC / Personal Computer)  / 工作站 Workstation
- Windows PC / Mac 都是常見的個人電腦
- Dell / HP / Lenovo / Apple 都是常見的個人電腦製做商


筆記簿型電腦 / 手提電腦



網絡電腦 / Network Computer
-近年Chromebook 流行
-Net Book 早期也流行



常見的多媒體副檔案

文本: TXT PDF DOC DOCX RTF

圖像: BMP, GIF, JPG, PNG, TIFF

音訊: MIDI, WAV, MP3, WMA, RA

視像: AVI, MPG, MP2, MP4

動畫: GIF, SWF(Flash), HTML5

2018年11月20日星期二

簡單設立FTP 伺服器 及 使用FTP客戶端下載檔案


Server:
https://filezilla-project.org/download.php?type=server

按指示安裝FileZilla Server
按Edit - Users 設定使用者帳號
按Add - 鍵入使用者名稱
鍵入密碼 Password



按Shared Folder 新增FTP使用的資料夾

按OK完成





Client:
https://filezilla-project.org/download.php?type=client

按指示安裝

在程式上部份建入IP 位址, 用戶名稱, 密碼, 按連線即可進入FTP Server




這樣一來, 長開一部電腦的FTP (但請緊記要設定一個強的密碼以防黑客入侵), 
便可遠端存取家中的檔案。

手機也可安裝不同的FTP客戶端:
Android: https://techwiser.com/ftp-clients-for-android/
iOS: https://www.macobserver.com/news/4-ftp-clients-iphone-ipad/


2018年11月19日星期一

字元編碼, 字元轉換器 Big5, GB, Unicode

Unicode / 國際碼 / 統一碼
大部份作業系統預設編碼, 支援基本上所有語言, 包括中、英、日、韓文、及其他所有語系, 字節由1-4字蠞不等
https://www.chineseconverter.com/zh-tw/convert/unicode


Big5 大五碼
每個中文字2字節
支援繁體中文
http://billor.chsh.chc.edu.tw/php/Tools/qBig5.php


GB
國標碼
每個中文字2字節
支援簡體中文




練習:
http://web.hku.hk/~jwilam/it/msword.htm

2018年11月12日星期一

開放原始碼軟件(Open Source)








開放原始碼軟件是其代碼可以被公眾使用的軟件,使用者一般可以免費取得並使用該軟件, 並查看, 修改原代碼, 惟一般的使用權都限制使用者修改代碼後須公開修改後的原代碼。

由於開發軟件需要大量的人力資源, 一般用家並沒有能力開發出具規模的軟件, 開放式源代碼就是透過分享, 修改, 共同建立的方式開發軟件的模式, 在歷史上曾經與UNIX,Internet聯繫的非常緊密, 例如 Linux, Firefox, MySQL  都是基於開放式源碼平台開發出來, 由於開發人員眾多, 而且一些更有企業支持, 功能隨時日增長, 這些軟件在功能上已與傳統商業軟件無異。

開放式原代碼軟件一般的更新速度較快, 而有時為了加快開發日程會分為穩定版和測認版。

從前在DOS,Windows,Macintosh平台上僅僅有很少的開放源碼軟件更加不普遍。但隨著更多人學會編程, 電腦的普及, 很多流行的軟件也用上了開放式源代碼的平台開發。

網上有很多開放式源代碼分享平台, 其中最多人用的包括:

  1. GitHub 
  2. SouirceForge

5 Best GitHub Alternatives For 2018 | Free Source Code Hosting Sites
https://fossbytes.com/best-github-alternative-code-hosting/

2018年11月8日星期四

使用 micro:bit 傳送文字到另一塊micro:bit









進行通訊前必須做好三個步驟:
1. 設定廣播群組
2. 設定傳送方的動作
3. 設定接收方的動作


程式:




挑戰站:
由於編程中處理文字和數字的方法並不同,我們可以利用這功能,令當接收到數字時會做出不同反應。

  1. 試廣播發送 數字 「0」。
  2. 當接收到 廣播 "receivedNumber"。
  3. 會顯示心形的圖案。
  4. 甚至你可使用 「如果」的邏輯功能,另接收方收到不同的數字會顯示不同的圖案。



Blockchain

Bitcoin 是互聯網上出現的第一隻加密貨幣,原理就理圖片一樣,由很多部電腦(礦機)共同管有一張帳簿,當改動時就要有一定數量的礦機接收到這項交易才有效。
但Bitcoin 因為是最早研發出來,有很多缺點,所以後期衍生了不同加密幣,有些是新研發,例如: 以太幣Etherum, 箂特幣Litecoin, XCR, 等等, 有些是由Bitcoin 分支出來, 如Bitcoin Gold, Bitcoin Cash. 都是在區塊鍊概念下研發出來。
有機會再詳談。