手上有好幾個 MG966R 的伺服機,設計伺服機固定腳架就可以用來製作控制機構
先在紙上打好草稿,然後到 SketchUp 製作3D圖檔
交給3D印表機列印(如下圖),
前幾次印出來的支架,實際安裝上馬達後,才發現尺寸不太合,又修修改改最後才成功
裝上MG966R 伺服機的樣子
我的機車剛買沒多久就不小心倒地,結果把大燈開關給摔壞了(扭轉了快90度),只差一點點就身首異處,跑去機車行問問修理竟然要700元,
這也太離譜了吧,我說: [一個小塑膠開關賣50元都嫌貴了... 你們也好心點吧 ? ]
老闆解釋原因: [因為原廠將車子各部份功能模組化,所以雖然只有開關故障,也必須換掉整個模組….]
原來 [模組化] 的概念,是減輕了工廠的生產作業流程,但是對消費者而言,等於是要多花錢買沒有故障的零件,只為了幫助廠商節省庫存、人工成本。
[歸組換掉] 幾乎是大部分修車廠的標準答案,但是消費者權益又放在哪裡呢 ?
算了,不修了
為了賭一口氣,我有好長一段時間,是這樣開啟大燈開關的
安裝WinRAR http://www.winrar.tw/ 找到之前下載回來的Windows10 檔案 => Windows10_InsiderPreview_x64_ZH-TW_10074.iso,使用WinRar 開啟它
扣除子目錄、以及install.win、boot.wim(如下圖紅線部分),把其他的檔案全部複製到硬碟中(例如 d:\iot)。
其實應該還有很多檔案都不用複製,有空的人再慢慢試看看吧。
把稍早下載回來的 Windows_IoT_Core_RPI2_BUILD.zip 裡面的image 檔案 Flash.ffu,也複製到相同的子目錄(例如 D:\iot) 把SD記憶卡插入讀卡機內 以系統管理員身分開啟命令提示字元,輸入指令 list disk 找到SD記憶卡的磁碟編號(以下圖為例是2號)
接著再輸入指令如下,其中N要替換程SD記憶卡的磁碟機編號(本例N=2)
dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDriveN /SkipPlatformCheck
稍等一下子就好了,把這片SD記憶卡插到Pi2就可以開機
下載安裝 Visual Studio Community 2015 RC
https://dev.windows.com/en-US/downloads/install-dev-tools-visual-studio-2015
開始安裝的畫面,點選 Get the tools 就開始安裝了
接下來安裝 WindowsDeveloperProgramForIoT.msi
這個程式位於稍早下載的IoT for PI2 解壓縮的檔案 (例如 D:\iot\WindowsDeveloperProgramForIoT.msi
執行安裝程式畫面如下
安裝完畢後立即啟動 Windows IoT Core Watcher
實際上測試,Windows IoT Core Watcher 無法正常執行起來
因為這個程式的功能主要是搜尋控制板的IP位址
如果之前已經記下IP位址的話,沒有執行這個程式也沒差
或許之後更新版本,就會修正這個bug。
或是使用Advanced IP Scanner尋找區域網路內,Pi2控制板使用的IP位址,例如下圖顯示Pi2 (miniwinpc)使用的IP是 192.168.0.181
Advanced IP Scanner 免費下載網址 http://www.advanced-ip-scanner.com/
使用VS 2015 RC實作 Hello World 程式
開啟 VS 2015 RC
File -> New-> project 開啟新專案
Install –> Templates –> Visual C# –> Windows –> Windows Universal –> Blank App (Windows Universal) Visual C#
開啟檔案MainPage.xaml ,捲到最下方找到以下程式片段<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
:
</Grid>
在中間加入以下內容,就會在畫面上加上一個textBox還有一個Button
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBox x:Name="HelloMessage" Text="Hello, World!" Margin="10" IsReadOnly="True"/>
<Button x:Name="ClickMe" Content="按我吧 Click Me!" Margin="10" HorizontalAlignment="Center"/>
</StackPanel>
在"按我吧Click Me!" 按鈕上快按兩下,加入一行程式碼
this.HelloMessage.Text = "歡迎來到 Windows IoT 的世界";
點選F5本機測試,第一次編譯花很多時間,大概1~2分鐘,之後大概10秒 ,顯示如下執行畫面,若點選 "按我吧Click Me!" 按鈕,上方的textBox也會顯示訊息 "歡迎來到 Windows IoT 的世界"
設定完畢後按下F5,或是點選Remote Machine,程式立即配送到遠端控制板PI2的記憶卡內,等一會兒就會開始執行
以後若要本機測試,就選擇x86;
若要實際看PI2執行的效果。就選ARM
若要重新修改設定,滑鼠右鍵點選專案名稱 -> properties
若無法連線PI2,啟動遠端除錯功能,這時候VS2015應該會顯示錯誤訊息 “Unable to connect to the Microsoft Visual Studio Remote Debugger named ‘XXXX’,代表PI2控制板上的遠端除錯程式沒有啟動,可以使用PowerShell連接到PI2控制板,使用tlist指令檢查msvsmon.exe程序是否已經執行(應該要有兩個正在執行中的preocess),若不明原因沒有執行,手動啟動的方法如下
schtasks /run /tn StartMsvsmon
使用剛才安裝好PC版本Win10 連線到PI2,(以下設定步驟使用實體PC+Win10,或是使用VMWare安裝Win10都測試成功)
在搜尋列輸入 powershell,搜尋到 PowerShell之後,以系統管理員身分執行
輸入指令 (指令最後面是剛才PI2控制板的 IP位址)
Set-Item WSMan:\localhost\Client\TrustedHosts -Value 192.168.0.181
輸入指令
Enter-PsSession -ComputerName 192.168.0.181 -Credential 192.168.0.181\Administrator
以上三個指令整理如下,也可一次全部複製,貼上到powershell內連續執行 net start WinRM Set-Item WSMan:\localhost\Client\TrustedHosts -Value 192.168.0.181 Enter-PsSession -ComputerName 192.168.0.181 -Credential 192.168.0.181\Administrator |
輸入預設密碼 p@ssw0rd
變更電腦主機名稱指令
Setcomputername <新的電腦名稱>
查看執行的process內容
tlist
(PS.很多指令都會有錯誤訊息,但是多試幾次仍然可以執行)
更新遠端PI2管理員的密碼
net user Administrator 1234
清除啟動程式的設定
schtasks /Delete /TN Microsoft\Windows\IoT\Startup /F
若要使用VS2015遠端除錯功能,必須在遠端PI2建立 VS RemoteDebugger,預設都會自動安裝,而且每次開機都會自動執行,可以使用tlist指令,查看目前執行程序,必須有兩個msvsmon.exe
若msvsmon沒有執行,手動啟動的方法如下
schtasks /run /tn StartMsvsmon
立刻關機
shutdown /s /t 0
但是PI2控制板關機後,還是會自動重開機, 微軟網站解釋是說: 這是PI2本身的限制,所以是正常現象 (??)
安裝步驟有點囉嗦,我也不知道微軟幹嘛把簡單的事情搞得如此複雜,應該是要主推Win10 還有 Visual Studio 2015 吧,所以想玩 Win10 IoT 的人,都必須把這兩個軟體安裝起來。
安裝過程中,可能會要求建立帳號,請依照微軟網站顯示的畫面建立帳號
連線到微軟物連網站 https://dev.windows.com/en-US/iot
點選中間的 Get started now
接著選擇實驗板 => 也就是 Raspberry Pi2
Win10 也支援其他常見的控制板,有空再來試試
點選Pi2之後,出現安裝說明,主要有四大步驟,請依照步驟逐一完成
在步驟二,必須先準備好的東西:
1. 下載安裝Win10
2. 註冊一個帳號,以便下載 Win10 IoT Core 影像檔
3. 準備一塊Pi2控制板
4. 準備一個足瓦的電源供應器
5. 至少8GB Class10的micro SD記憶卡
6. 一條HDMI訊號線,連接到顯示器
7. 一條網路線
所以就先連線下載 Win10 吧
https://insider.windows.com/
下載回來得到一個3.8G 的檔案 => Windows10_InsiderPreview_x64_ZH-TW_10074.iso
接下來找台實體的電腦安裝,或是找VMPlayer安裝程虛擬機器也可以
(這兩種方法我都測試過,都可以使用)
(VMWare player 7.1.0 的下載位址 https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/7_0)
依照指示步驟,將Win10安裝完畢
啟動 Win10 畫面如下
接下來要下載Win10 IoT 的 image file
使用剛安裝好的 Win10,或是使用您熟悉的電腦(Win7, Win8.1)都可以
連線微軟物連網 https://connect.microsoft.com/
這時需要申請一個帳號,申請到帳號後,重新登入網站 (https://connect.microsoft.com/windowsembeddedIot)
點選右側的 WINDOWS EMBEDDED PRE-RELEASE PROGRAMS ,接著點選下載
找到 4/29 這個版本,點選下載 (不過我想應該很快會推出新版本)
下載完畢,獲得一個壓縮檔案 Windows_IoT_Core_RPI2_BUILD.zip
解壓縮檔案到子目錄,例如 d:\iot,目錄裡面有四個檔案
準備8G class10 SD記憶卡,接下來要複製image到SD記憶卡中
在VMWare 執行的 Win10 系統中,先在搜尋對話框內輸入cmd指令
找到命令提示字元後,在以系統管理員身分執行 cmd指令
(PS: 其實也不一定要使用Win10來複製image檔案,也可以用Win7來做,但是多了一瀉步驟,有空再發文)
輸入指令 diskpart
> list disk
查詢記憶卡的磁碟代號 (例如下圖顯示 磁碟1)
切換到剛才放置解壓縮檔案的路徑內 (例如 d:\iot)
執行以下指令,並且把磁碟代號X設定成與稍早查詢的的磁碟代號相同(此例X要改成1)
D:\iot>dism.exe /Apply-Image /ImageFile:Flash.ffu /ApplyDrive:\\.\PhysicalDriveX /SkipPlatformCheck
把SD裝到PI2
接上HDMI、網路線、電源,立即開機 (下圖左上角的一堆電線並不需要連接,那是我實驗用的電線)
螢幕顯示開機畫面,記下IP位址 (例如 192.168.0.181)
到此為止,控制板的image安裝完畢
再來就是要從PC端連線進來了