NanoPi是友善之臂公司推出的類似於樹莓派的嵌入式開發板(應該算是開發板吧)。Nanopi有很多的種類,性能和使用的CPU也不同。我手上的是Nanopi-M1
板載資源在圖上都有說明,這塊板子的CPU是全志H3,Cortex-A7的內核。更多板子的說明和使用參考wiki
要準備的工具
開發板,這自然是不能少的,我用的是Nanopi M1,其他板子的話 Nanopi NEO也可以,因爲這兩塊板子的CPU都是一樣的;
microSD卡和讀卡器,大於8GB速度高於class10;
電源適配器(2A),普通的安卓機的充電器就可以;
LED和杜邦線;
網線或者類似小米WiFi的隨身WiFi(關於NanoPi可支持的USB WiFi在wiki中有列出)。Nanopi支持的USB WiFi(下圖)
準備工作
下載相關工具和鏡像文件下載地址 ,鏈接中有全部的關於NanopiM1的資料有需要可以下載,現在主要下載tools文件夾(全部)和official-ROMs(鏡像文件)文件夾(部分)。這兩個文件夾的文件說明
這裏有5個官方提供的鏡像文件,基於Ubuntu core和基於Debian的,還有一個Android的。Linux3.4和Linux4.x.y的內核的區別在wiki中也有說明
我選擇的是基於UbuntuCore Linux4.x.y的系統燒錄,這個系統是沒有圖形界面的,如果說你要通過HDMI接口連接顯示器的話可以用Linux3.4.y內核的系統,至於是Debian還是Ubuntu沒有多大的區別。
- 系統燒錄
由於板子沒有上沒有flash,所以我們要用SD卡作爲整個系統的存儲介質。首先格式SD卡,如果是新的SD卡安裝系統的話(Android除外)可以不用格式,畢竟格式的時間有點長。格式SD軟件用下載的tools下的HDDLLF.4.40.exe
雙擊打開(打開之前帶SD的讀卡器插到帶腦上),之後會列出電腦的硬盤和SD以及其他插在電腦上的存儲設備,選擇SD,千萬不要選錯了,選成了電腦硬盤。
格式化的時間有點長(可能我的是16GB的SD卡吧)
格式化完成後,開始燒錄系統,燒錄之前要把你要燒錄的鏡像文件解壓,解壓之後是一個img後綴的文件。
解壓燒錄工具
選擇要燒錄的系統,盤符選擇SD所在的盤符。接下來又是等待
- 系統配置
將燒錄號系統的SD卡插到Nanopi上,上電,系統啓動了。可是我們看到的只有電源指示燈亮和狀態指示燈閃爍。如果說安裝的是有圖形界面的系統,而且你恰好有可以通過HDMI連接的顯示器的話就可以連接顯示器,鍵盤,鼠標,等設備,接下來的操作就和品嚐使用電腦一樣。
然而,Linux系統的正確打開方式是命令行,接下來我就在沒有屏幕的情況下配置Nanopi。首先要下載一個遠程終端控制的軟件,一般有securCRT,Xshell等,我這裏用Xshell,畢竟這個軟件是免費的。軟件的下載可以到xshell官網下載。下載安裝打開,在打開軟件之前要把板子同過網線連接到路由器上,同時你的電腦也要連接到同一臺路由器。登錄到路由器的後臺查看nanopi的IP地址,不同的路由器後臺登錄的方式(後臺的登錄地址)不同,具體根據路由器的型號可以百度的到。
這是我的板子連接路由器後在後臺查到的IP地址,記下IP地址
打開xshell會彈出這樣的對話框,點擊“新建”
填寫相關的連接信息,要填寫的有名稱和主機,名稱隨便填一個自己喜歡的就可以,主機填寫IP地址,協議和端口保持默認的SSH和22
設置完後,點確定就可以連接上了,第一次連接可能還要再次輸入密碼,密碼還是pi
連接成功的畫面
- 安裝 WiringNP庫
接下來就要在這個黑窗口中通過敲寫命令完成對Nanopi的一切操作,寫入下面的命令,每寫一行要回車執行完纔可以接着往下寫
git clone https://github.com/friendlyarm/WiringNP
cd WiringNP/
chmod 755 build
./build
敲完第一行回車會出現下面這些信息,接着繼續後面的命令
敲完上面的命令,GPIO的驅動庫就安裝完成了,再用下面命令檢測安裝是否成功
gpio readall
回車,在終端會列出nanopi的所有GPIO
安裝成功後,就可以開始寫程序,在終端(黑窗口)中輸入
vi tesr.c
回車,會出現這個
這是一個文本編輯器(vi),和Windows下的記事本差不多,只是vi中所有的草操作都是通過鍵盤的命令實現的,一打開進入的命令模式,這時鍵盤上的字母全是命令,按小寫字母 i
切換到編輯模式,編輯模式下和寫TXT文本文件一樣。接着就寫入以下的代碼
#include <wiringPi.h>
int main(void)
{
wiringPiSetup() ;
pinMode (7, OUTPUT) ;
for(;;)
{
digitalWrite(7, HIGH) ;
delay (500) ;
digitalWrite(7, LOW) ;
delay (500) ;
}
}
寫完之後,按 Esc
鍵回到命令模式,接着輸入:wq
回車,又會到原來的界面,再輸入,
同樣輸入一行就要回車
gcc -Wall -o test test.c -lwiringPi -lpthread
sudo ./test
完成上面所有操作後,把LED的負極接到板子的GND,正極接到Pin7,GPIO的順序如下
LED燈會以一定的頻率閃爍表示成功完成了。