作者:喬中沛
云原生的不斷成熟讓大量基礎設施層的能力可以被業務應用直接使用,然而廣大的開發者們卻苦于很高的上手門檻和學習成本,一直沒有機會深入了解云原生生態的工具體系。今天我們將為你介紹一個好用的工具,它能夠在離線環境幫你快速安裝 Kubernetes 集群,低門檻的上手業務應用部署,還能具備多集群、云資源等一系列高階能力,而你只需要準備一個能夠運行 Docker 的系統環境。
這個工具就是 VelaD[1],它可以幫助開發者從零開始,在三分鐘內快速搭建基于 K3s 和 KubeVela 的云原生應用控制平面。
Mac/Linux
curl -fsSl https://static.kubevela.net/script/install-velad.sh | bash
Windows
使用 Powershell 運行
powershell -Command "iwr -useb https://static.kubevela.net/script/install-velad.ps1 | iex"
安裝中需要你輸入當前用戶的密碼來安裝到 PATH 中,用以下命令確認你已經安裝成功:
velad version
Core Version: v1.7.5VelaD Version: v1.7.5
最簡單的情況下,使用 VelaD 創建多集群控制平面,只需要一條命令:
velad install
整個安裝過程是離線完成的,只需要 1 分鐘左右便可安裝完成,除了 Kubernetes 以外,還會安裝 KubeVela 這個現代化的云原生應用交付和管理平臺,幫你輕松上手云原生應用的部署。不僅如此,你還可以通過添加更多節點和數據庫來保證集群數據的更高可用性(見“添加集群”小節)。另外,以上命令所創建的控制平面并不會自動將集群暴露給公網。如果你需要通過公網訪問你在遠程服務器上創建的控制平面,參見遠程訪問文檔[3]。
該命令的背后是基于 K3s/K3d 技術為你在機器上創建一個單節點的 Kubernetes 集群,并在其中安裝 KubeVela,及其命令行工具 vela。基于這個環境,你可以立刻開始交付你的業務應用。
隨著 velad install 的執行,廣受歡迎的控制臺插件 VelaUX 也一并在你的機器上就緒了。注意 velad install 執行結束后的提示:
To enable dashboard, run `vela addon enable /Users/qiaozp/.vela/addons/velaux`
To access the cluster, set KUBECONFIG:
export KUBECONFIG=$(velad kubeconfig --name default --host)
復制安裝成功后的提示命令,執行,啟用 VelaUX 插件,命令中的路徑在你的環境有所不同
Linux/Mac
export KUBECONFIG=$(velad kubeconfig --name default --host)
vela addon enable $HOME/.vela/addons/velaux
Windows
$env:PATH +=";$HOME\.vela\bin;"
$env:KUBECONFIG=$(velad kubeconfig --host)
vela addon enable $HOME\.vela\addons\velaux
VelaUX 是一個控制平面上運行的應用,你可以通過瀏覽器來訪問,將 VelaUX 的端口轉發到本機來訪問:
vela port-forward addon-velaux -n vela-system 8080:80
使用上下方向鍵選擇 >local | velaux | velaux。接下來你就能在瀏覽器中訪問:http://127.0.0.1:8080/
初始管理員用戶名和密碼分別為 admin 和 VelaUX12345,登陸后你需要設置郵箱和密碼。
下面將帶你體驗使用 VelaUX 三步部署一個 Wordpress 應用。Wordpress 是一個著名的博客軟件,可以通過 Helm Chart 部署。
第一步:在插件列表中啟用 fluxcd 插件。fluxcd 插件為 KubeVela 提供了交付 Helm Chart 的能力。等待 fluxcd 插件就緒,狀態轉為 running。
Tips: KubeVela 的微內核設計,可以通過插件系統不斷擴充系統能力,你可以借此持續采納云原生領域中最新的實踐。目前 KubeVela 官方插件目錄中含有 40+ 正式插件,30+ 實驗插件,涉及工作負載、云資源、可觀測性、滾動發布等多個領域,并且還在不斷擴充中。
第二步:創建應用,填入名稱 wordpress,選擇主組件類型為 helm,并綁定 default 環境。
Tips: 環境是 VelaUX 的重要概念,可以幫助用戶區分例如開發、測試、生產等環境。
點擊下一步,填寫如下參數:
倉庫地址:https://charts.bitnami.com/bitnami
Chart: wordpress
開啟高級參數,給 Values 添加四個值:
service.type:ClusterIP
wordpressUsername:admin
wordpressPassword:wordpress_password
mariadb.db.password:mariadb_password
Tips: 參數的來源是 wordpress/README.md[4],你還可以選擇其它你需要的參數。以上參數保證我們可以完成交付。
第三步:點擊“部署”,你可以看到正在執行的工作流,我們的應用沒有額外配置工作流,所以 VelaUX 會生成一個默認工作流。點擊左側狀態欄,可以追蹤整個應用的拓撲結構。等待直至工作流完成。以及資源拓撲圖中所有資源都達到健康狀態。
Tips: 除了通過應用的拓撲結構觀察全部底層資源的狀態,你還可以在其它 Tab 中查看容器狀態、事件、日志、資源指標等信息,如果開啟了 cloudshell 插件,用戶還能進入 pod shell 執行命令。整個過程受到 VelaUX 多租戶權限體系的嚴格管控。你可以通過 KubeVela 文檔[5]進一步了解權限管理、單點登錄等問題。
Tips: 應用的工作流是 KubeVela 中對應用發布過程的一部分。提供了面向過程的靈活性,可以實現條件判斷、暫停、狀態等待、數據流傳遞、多環境灰度等復雜操作。
接下來,你就可以訪問剛剛部署的應用了!運行如下命令,將 Wordpress 的端口轉發到本地。使用上下鍵和回車選擇 local | wordpress | wordpress:80
vela port-forward wordpress 8081:80
使用瀏覽器訪問:http://127.0.0.1:8081/login,使用剛剛填寫的用戶名和密碼:admin/wordpress_password 登錄為管理員。
我們一直在使用端口轉發來訪問應用,但是在實際情況中,你可能更多采用其它更高效和安全的方式來暴露服務,但是在測試環境中,端口轉發已經足夠好用。我們在高級功能中將展示如何在跨環境差異化部署,并且不同環境甚至可以在不同集群中!因為多集群應用的部署在 KubeVela 中是一等公民。
在 wordpress 應用的 Default 環境里,選擇左側狀態欄,可以回收應用,這一操作會回收下發的應用以及其下的工作負載。
通過上文我們知道 KubeVela 通過插件來提供許多功能。VelaUX、fluxcd 、dex 都是 KubeVela 優秀的插件體系的一部分。插件幫助我們把“以應用為中心”的理念發揚光大,想要增強控制平面的應用交付、管理能力,只需要啟用不同的插件即可。
KubeVela 插件倉庫還包含了在工作流、網關、大數據、安全、混部等領域的插件,更多來自社區的最佳實踐正在以插件形式沉淀下來。
本功能要求 VelaD 控制平面安裝在 Linux 中
想要使用 VelaD 作為輕量級控制平面,單節點在加入更多插件時,或者在控制面部署過多應用時,可能達到計算資源上限,這時你可以向原本的控制平面添加 worker 節點來擴容集群。
1.在你已經運行過 velad install 的第一個節點上,運行 velad token 獲得該集群的注冊 Token。
velad token
2.在第二個節點上,通過如下命令向控制平面加入新的 worker 節點,從而組建多節點的控制平面。
velad join --master-ip <master-ip> --token <token> --worker-name <worker-name>
其中↓
:是 VelaD 控制平面第一個節點的 IP 地址,只要 worker 節點可以訪問該 IP 地址即可,例如二者在同一個內網環境內。需要 worker 通過公網訪問第一個節點時,請參見遠程訪問文檔[9]來創建第一個節點。(必填參數)
是在第一步中命令打印的結果:VelaD 控制平面的 Token。(必填參數)
是新工作節點的名稱。(可選參數)
3.確認節點已經加入,在任意一個節點上運行,得到兩個條目即為加入成功。
kubectl get node
4.當你需要卸載節點時,只需在被卸載的節點上運行 velad uninstall 即可。
上文提到 VelaD 可以作為多集群的控制平面,但到目前為止你可能會問,沒有多集群的事啊?下面就會介紹如何使用 KubeVela 跨集群環境部署應用。我們將繼續采用 VelaUX 作為演示平臺。這次我們的目標是將 wordpress 跨集群、跨環境部署,并且在生產環境中做一些自定義,具體來說:
我們需要一個子集群(相對于 KubeVela 所在的管控集群)作為生產集群,如果你沒有其它可用集群,可以通過 VelaD 可以在單臺 MacOS 或者 Windows 機器上輕松創建另一個集群,運行如下命令
Linux 平臺怎么辦?
VelaD 不支持在單臺 Linux 機器中創建多個集群。如果你正在使用 Linux 并嘗試 VelaD 作為多集群控制平面,可以在其它 Linux 機器中創建集群并繼續。將集群暴露給其它機器的方式見遠程訪問文檔。
velad install --name cluster-worker --cluster-only
相比于之前的安裝命令,該命令添加了名字參數(默認為 default)。因為該集群將作為子集群,我們用 --cluster-onlyflag 跳過安裝 KubeVela。使用如下命令來檢查兩個集群的狀態:
velad status
期望輸出
Checking cluster status...
K3d images status:
? image rancher/k3s:v1.24.8-k3s1 ready
? image ghcr.io/k3d-io/k3d-tools:latest ready
? image ghcr.io/k3d-io/k3d-proxy:5.4.6 ready
Cluster(K3d) status:
? cluster [cluster-worker] ready
? kubevela status: not installed
? cluster [default] ready
? kubevela status: deployed
Checking KubeVela status...
Vela status:
? Vela CLI installed
? Vela CLI path: /usr/local/bin/vela
? VelaUX addon dir ready
? VelaUX addon dir path: /Users/qiaozp/.vela/addons/velaux
Tips:VelaD 創建的第二個集群是為了模擬實際上的生產集群,它實際上還是運行在本地的 Docker 環境的容器。
使用已經配套安裝好的 vela 命令行工具,將子集群加入到控制平面的管控中來。
Linux/Mac
WORKER_KUBECONFIG=$(velad kubeconfig --name cluster-worker --internal)
vela cluster join $WORKER_KUBECONFIG --name=cluster-worker
Windows
$WORKER_KUBECONFIG=$(velad kubeconfig --name cluster-worker --internal)
vela cluster join $WORKER_KUBECONFIG --name=cluster-worker
期望輸出
子集群加入之后,你可以使用 vela cluster list 來查看被管控的所有集群。在 VelaUX 中也能查看到剛剛加入的集群。其中 local 集群是 KubeVela 所在的控制平面集群的默認名稱,也就是你第一個創建的集群。
vela cluster list
期望輸出
新集群加入后,我們需要回到插件頁升級 fluxcd 插件,使其在新集群生效。
在左側環境列表中新增 prod 環境,先后創建并添加兩個交付目標
在 wordpress 應用配置中
選擇 Add a component patch來添加一個 Patch,選擇 wordpress 組件。由于 Properties 的 patch 非常自由,VelaUX 提供了黑屏編寫 YAML 的方式開放該接口。選擇 Assign the default properties 并點擊右上角綠框中的“切換黑屏”圖標。在如圖的 value 字段中,添加 replicaCount: 2 一行并最終創建策略。
點擊上方的 prod 環境,VelaUX 以可視化的方式編輯應用的工作流。選擇工作流畫板,在兩個步驟之間添加 suspend 步驟并保存。這允許我們在工作流中暫停并檢查測試環境的應用狀態,并人工確認繼續工作流完成發布到生產環境。
點擊部署并選擇 prod 環境的工作流、部署。
由于我們添加的 suspend 步驟,在 local/wordpress-test 部署成功后,我們將看到狀態 SUSPENDING 旁邊提示我們是否繼續工作流,假設此時我們通過訪問測試環境
這里我們繼續執行工作流。
工作流成功執行后,通過狀態欄可以查看到:我們作為生產環境的 cluster-worker 集群中 wordpress-prod 有兩個正在運行的 Pod 副本。驗證了我們對于應用策略的設置。
當然 KubeVela 有更多對多集群管控的能力,你可以在 KubeVela 文檔[10]中找到更多用法。
具有單個 master 節點的控制平面滿足了一些使用需求,但是對于控制平面穩定性要求更高的用戶,VelaD 還能幫助搭建一個具備更高可用性的多集群控制平面。它由以下部分組成
Note:這些組件的要求:server 和負載均衡節點要求是 Linux 系統,外部數據庫可以采用云服務或者自建數據庫。
VelaD 盡量將全部的搭建過程變得簡單且順手,為了搭建具備高可用性的控制平面,你僅需運行幾條命令:
1. 在第一個 server 節點上運行
velad install --bind-ip=<LB_IP> --database-endpoint=<DB_ENNDPOINT> --token=<TOKEN> --node-ip=<IP>
其中 是負載均衡節點的 IP 地址。 是外部數據庫的連接串,其格式可見數據庫格式文檔[11]。
2. 在其他 server 節點運行幾乎相同的命令,額外加上 --cluster-only 參數,這意味著僅將節點作為 master 加入集群,跳過安裝 KubeVela,因為在第一個 server 節點運行命令時,已經安裝了 KubeVela。
velad install --bind-ip=<LB_IP> --database-endpoint=<DB_ENNDPOINT>\
--token=<TOKEN> \
--cluster-only
--node-ip=<IP>
3. 通過在任意一個節點上運行配置負載均衡的向導,獲得負載均衡的配置命令。
velad load-balancer wizard
To setup load-balancer, run the following command on node acts as load-balancer:
velad load-balancer install --http-port 32196 --https-port 30297 --host=<IP1>,<IP2>
4. 在負載均衡節點上,將上述向導輸出的第二行復制過來并運行。
velad load-balancer install --http-port 32355 --https-port 30421 --host=172.19.0.5
Tips:其中 IP1 等為 server 節點的 IP 地址,load-balancer install 命令背后幫助用戶設置了一個轉發到 Server 的 Nginx 服務。
5. 在任何一個 server 節點打印 kubeconfig 的位置,并將該文件復制到任何可以訪問到負載均衡節點的位置(例如你的筆記本上)。其中 --external 表示該 kubeconfig 是從外部訪問集群所需要的。
velad kubeconfig --external
Boom!你可以通過這個 kubeconfig 訪問和管理這個控制平面了!任何一個 server 節點故障都不會影響控制平面的可用性。
以上就是本次的全部內容,感謝你的閱讀和嘗試。云原生的逐漸成熟涌現出了大量開箱即用的生態功能,但是廣大開發者群體往往被云原生復雜的生態圖景勸退,今天我們介紹了 VelaD 項目,期望以最簡單、最快的方式幫助你上手云原生并立刻開始交付應用。隨著你的需要,VelaD 能不斷提高控制平面的容量和可用性。你還能通過向控制面注冊子集群的方式,將應用部署到更多你需要的位置。
其背后的 KubeVela 項目在開箱即用的應用交付功能的基礎上,不斷以插件形式將云原生領域的最佳實踐帶給你,讓你以更快更簡單的方式增強自己的應用交付過程。官方插件倉庫已經擁有了囊括變體工作負載、云資源、可觀測性、滾動發布等多個領域的 70+ 插件。目前 KubeVela 的插件生態還在快速成長中,歡迎你來社區提出需求或做出貢獻。
近期 KubeVela 即將發布 v1.8 版本,帶來集群資源一鍵納管功能,幫助你無痛遷移遺留系統。還有對大規模應用場景的壓測報告、性能優化以及控制器分片方案,幫助你輕松面對業務規模增長的挑戰。
關于 VelaD,關于 KubeVela,你還有什么需求或者疑問?歡迎通過如下材料了解更多 VelaD 和 KubeVela 的項目細節:
相關鏈接:
[1] VelaD
https://github.com/kubevela/velad
[2] Docker Desktop
https://www.docker.com/products/docker-desktop/
[3] 遠程訪問文檔
https://github.com/kubevela/velad/blob/main/docs/05.expose-cluster.md
[4] wordpress/README.md
https://github.com/helm/charts/blob/master/stable/wordpress/README.md
[5] KubeVela 文檔
https://kubevela.io/docs/how-to/dashboard/user/
[6] 文檔
https://kubevela.io/zh/docs/end-user/traits/rollout
[7] demo
https://www.bilibili.com/video/BV1v84y1a75x/?vd_source=d7602cf3dc8bc4dbd24e1a83d93c150b
[8] 文檔
https://kubevela.io/zh/docs/tutorials/consume-cloud-services
[9] 遠程訪問文檔
https://github.com/kubevela/velad/blob/main/docs/05.expose-cluster.md
[10] KubeVela 文檔
https://kubevela.io/zh/docs/case-studies/multi-cluster
[11] 數據庫格式文檔
https://github.com/kubevela/velad/blob/main/docs/db-connect-format.md
點擊此處查看 KubeVela 項目官網
文章來源:CrowPi2樹莓派4教育筆記本電腦的評測 - CNX Software中文站
前段時間我開始了對CrowPi2 樹莓派4學習套件的評測,當時我展示了套件中的內容以及它首次開機啟動的操作。現在我將花更多的時間在這個非常特別的樹莓派4筆記本電腦上,這次評測我會將重點集中在教育部分,即CrowPi2軟件,但也會看看在有和沒有風扇的情況下的散熱冷卻情況,并嘗試在筆記本電腦外殼內安裝另一塊樹莓派兼容板。
在開始使用電腦之前,閱讀用戶手冊是相當重要的,因為如果不閱讀用戶手冊,你有可能會忽略一些必要操作。例如,最開始我認為只需要按下電源按鈕后就可以使用無線鍵盤,但實際上并不是這樣。
在用戶手冊里關于怎么讓無線鍵盤工作有相關的說明,無線鍵盤的射頻接收器放在了在鼠標的內部,只有從鼠標里取出接收器然后插到該電腦上,你才可以使用開箱即用的鍵盤,此外,你還可以通過微型USB線給鍵盤充電。相機和麥克風需要單獨的USB數據線連接,稍后會做詳細介紹。
CrowPi2 樹莓派4 –CrowPi2 教育軟件
首次開機啟動時,系統會要求你完成樹莓派操作系統設置以安裝最新版本的操作系統,并從這時開始,筆記本電腦將默認開機即啟動CrowPi2教育軟件。
用戶界面上有Learning、Projects、Minecraft、AI、Python、Game、Microbit、Scratch和Arduino等組件圖標。我們將逐一對這些組件進行介紹,但由于這些組件包含了數百個教程和課程,我不會把所有教程和課程都一一介紹,為了讓大家了解筆記本電腦所能提供的內容,我會在每個項目中選擇一個示例來介紹。
CrowPi2教育軟件操作界面
如果你點擊界面左上角的圖標,會轉回到樹莓派系統的桌面環境,點擊導航欄上的藍、紅、黃、綠色的環形圖標,將會回到CrowPi2界面。
但是,根據用戶手冊,我們應該做的第一件事是點擊上面的第二個圖標,創建一個用戶賬戶。
該賬戶是離線的,即沒有同步到云端,賬號會允許幾個孩子使用筆記本電腦,而且再次使用時會允許回到他們上次退出的地方。
事后看來,我建議從Projects(沒有代碼,只是演示如何使用每個教學圖標)開始,然后是Learning(基本的Python/Scratch),最后是AI(更高級的Python),以及隨著難度增加逐漸進行其他部分的學習。
我已經從Learning開始,這里可以選擇32節的Python課程或者16節的scratch課程。
Python和scratch課程選擇界面
我先選擇了Python,在完成幾節課后(整體的和部分的),你可以看到每節課的過程都會有顯示,學生可以將鼠標指針停在組件插圖上,以了解有關于每個組件的更多信息。
Python課程學習界面
我的學習方式有點隨意,但我建議按順序學習:第 1 課、第 2 課、第 3 課等…
讓我們學習一個特定的課程,看看該平臺提供了什么:原來是4 位數碼管的顯示。
Python課程平臺
屏幕上有打開文件、運行代碼、停止代碼和文件保存的圖標(如下圖)。左上部分是編寫的Python,左下部分顯示Python的輸出,右側會提供對每一步的說明和解釋。
老師也會講解每行代碼的作用,并向學生詳細介紹一些接口,比如I2C。你可以用鼠標加Ctrl+C或使用中鍵復制代碼。
課程完成后,我們可以運行代碼,并在 4 位數碼管上顯示當前時間。到目前為止,這些都讓我印象非常深刻,我覺得這可以成為學習電子學和Python的絕佳平臺。
讓我們切換到Scratch。
Scratch課程平臺
它將在左邊打開Scratch可視化編程應用程序,在右邊打開課程。第一課講解的是Scratch的作用。
旁注:在 11.6 英寸全高清顯示屏上打開 Scratch 窗口會使文本變得非常小。我不得不戴上老花鏡繼續我的學習……
我選擇了“someone calls”來開始學習可視化編程。這節課將文字與視頻混合在一起,講解了涉及繪圖的每個步驟…
并連接塊以執行任務、添加計時器、文本等……
在Scratch課程里執行任務
然后,我們可以通過程序顯示蜂鳴器發出“鈴”聲時來顯示信封打開的動畫。我希望這一部分能允許使用筆記本電腦的屏幕來做Scratch,并通過樹莓派 4上的第二個HDMI端口來使用輔助顯示器以獲取說明,但由于HDMI適配器板的阻擋,沒有辦法插入HDMI線。以后會有詳細說明。 我更喜歡Python課程部分,但Scratch也不錯。
我應該從Projects部分開始,因為沒有編碼,只有一些使用各種組件的示例。
Projects中各組件示例
我選取了NFC music部分進行測試。我們需要從寫到卡片上開始。
NFC music部分測試
該演示使用NFC模塊、RFID卡、LCD1602顯示屏和按鈕矩陣。點擊運行,并閱讀顯示屏上的說明,然后按照要求按下按鈕,最后以顯示屏上顯示著“Success”結束。
NFC music部分測試過程中進行操作
一切順利。現在我們需要讀取數字,以便播放設備中預裝的音樂。
于是我點擊了Run,把卡放在NFC讀卡器上,但什么也沒發生,顯示屏始終只是顯示“Checking”。我就這個問題聯系了這家公司,他們讓我安裝了某個Python腳本(pi-rc522.zip),但這讓情況變得更糟,CrowPi2軟件變成一直處于安裝中狀態(經常崩潰),編寫的演示也不再能夠正常運行了。
Minecraft(我的世界)是一款游戲,但該部分不僅是關于游戲,因為有16個Python課程可以自定義游戲。
Minecraft組件操作界面
但是Minecraft Pi Edition默認是樹莓派操作系統的一部分,它并非CrowPi2所特有。
人工智能部分也依賴于Python編程,但它要復雜得多,所以學生在進入語音識(Speech Recognition)別和人臉識別(Face Recognition)課程之前,可能應該需要先完成其他課程。
人工智能—語音識別&人臉識別
這里有五個使用Snowboy軟件或谷歌助手(Google Assistant)的語音識別課程,以及七個使用OpenCV 的人臉識別教程,其中一個課程包括如何訓練一個模型。
語音識別(左)和人臉識別(右)課程
在識別出“turn on the light”一詞后,我嘗試了利用RGB LED矩陣的語音識別演示。
教程按步驟解釋了代碼,但有時如果沒有相關經驗,可能很難知道代碼的真正作用。
完成教程后,我遇到了/dev/mem的權限錯誤。所以我去終端嘗試以root身份運行它:
前往“CNX Software中文站”官網,查看完整信息
但是它失敗了,因為腳本無法檢測到任何麥克風。所以我咨詢了EleCrow公司,他們讓我連接USB攝像頭和麥克風電纜。可是我誤解了他們所提供的說明和照片,最終導致樹莓派4 4GB被燒毀,所以我值得繼續使用自己的樹莓派4 1GB板。關于這個問題稍后會有更多介紹…
訣竅是USB網絡攝像頭電纜位于安裝的樹莓派 4底蓋下方。它在用戶手冊中有明確指出,但據我所知,這點并沒有出現在任何課程中提到過,所以我忽略了。
USB網絡攝像頭安裝位置
然而當我連接好了USB攝像頭,卻由于上述的/dev/mem權限問題,程序仍然無法運行,Elecrow工程師告訴我只能使用sudo命令作為變通方法,所以我不得不去終端去執行命令。
我又失敗了,因為沒有安裝flac(無損音頻編解碼器,Free Lossless Audio Codec),所以我又在終端使用命令把它安裝到了系統中:
前往“CNX Software中文站”官網,查看完整信息
最后,程序終于可以運行了:
前往“CNX Software中文站”官網,查看完整信息
Python輸出中仍然有很多警告/錯誤,但程序卻運行得很好。
具體運行情況可以觀看該視頻:https://youtu.be/6jmIWMSaq68
這意味著學生在學習這部分時可能需要有成年人的監督,而且最好是一個熟悉Linux命令的成年人。
界面的其他部分更像是應用程序(App)和游戲的快捷方式,以及獨立開發的教程。Python將打開Thonny Python IDE工具,點擊Games將會顯示一個免費游戲的列表。
點擊Microbit將啟動Chromium,并將BBC Micro:bit主板的持有者鏈接進入makecode.microbit.org,而點擊Scratch和Arduino將啟動相應程序。
該套件還附帶了另一張32GB的MicroSD卡,并預裝了RetroPie,目的是使學生在長時間學習編程之后才可以玩游戲。我連接上了兩個附帶提供的USB 游戲手柄……
… 經過一些設置,并在RetroPie中加載了可選游戲包后…
過了一段時間,就可以玩Doom等免費游戲了。
CrowPi2的顯示屏尺寸相當小,而且沒有外部HDMI輸出,所以它不是玩游戲的理想平臺,特別是當你只有兩歲的話。你也可以去掉HDMI適配器,將樹莓派直接連接到電視上,但這不是很方便。
也許有人想把CrowPi2當作標準的筆記本電腦來使用。樹莓派4的性能是眾所周知的,重要的部分通常是散熱設計,在過熱的情況下可能會大大影響性能。
CrowPi2是用一個相當嘈雜的風扇來冷卻的,其噪音與我的空調產生的噪音相當,但通過將鍵盤放在上面,可以使它的溫度有所下降。所以我先在這種設置下測試了CrowPi2筆記本電腦。然而,當我試圖運行sbc-bench.sh基準來對筆記本進行壓力測試時,我發現CrowPi2會在后臺占用一些資源,使腳本無法運行。
于是我關閉了Crowpi2程序,即使等待一段時間,它也沒有重新啟動,因為即使待機了四個小時,CPU負載也總是顯示在2.0左右。于是我編輯了SBC Bench程序,跳過負載檢查,然后繼續測試。
前往“CNX Software中文站”官網,查看完整信息
性能很好,CPU根本沒有降頻。
待機溫度約為45 ℃(環境溫度為30 ℃),并且在sbc-bench 腳本運行期間始終沒有超過55 ℃。一切都很好。
現在讓我們斷開風扇的連接。但是2針連接器不是很容易取出,所以我用鑷子把它推了出去。
我在開機后關閉了Crowpi2程序,并等待了幾分鐘讓溫度穩定下來,然后再次啟動sbc-bench。
前往“CNX Software中文站”官網,查看完整信息
基準測試結果數據要低得多,并且腳本報告表明CPU已發生降頻,而且達到了頻率使用上限。
我們可以看到待機溫度高于80 ℃,并且主板在基準測試期間溫度高于85 ℃……
讓我們來看看內部是如何進行冷卻的。樹莓派主板是裸露的,沒有任何散熱器,風扇負責了所有的冷卻工作。
如果我們重新插入主板并取出風扇,就可以看到處理器了。
這意味著,通過添加一個厚厚的散熱墊和一個適合28 x 28 x 10 mm左右體積的散熱片,我們也許可以制作一個無風扇的CrowPi2筆記本電腦。
我最近收到了一塊樹莓派 4 兼容板:搭載瑞芯微RK3399處理器的Rock Pi 4C單板計算機,我想如果將它安裝在 CrowPi2 中可能會很有趣。
RockPi 4C(左)與樹莓派 4(右)
兩塊板子很相似,但以太網和USB端口換了位置,其中一個微型HDMI端口被一個迷你DisplayPort連接器取代,RK3399處理器被安裝在板子下面,而Broadcom BCM2711 SoC則安裝在RPi4 SBC的頂部。
RK3399處理器和Broadcom BCM2711 SoC安裝位置示意圖
以太網和USB交換不是什么大問題,但因為扁平電纜太短導致我無法插入微型HDMI適配器板,而且主板會被固定相機電纜的塑料安裝位擋住……雖然可以重新加工,但這并不理想。更重要的是,由于處理器在主板下面,風扇根本不能對它有效地進行冷卻。而我沒有可選Rock Pi 4的散熱器,就算有,也無法固定到主板的安裝孔,而如果將主板安裝在筆記本電腦外殼上,又可能會使整個設備太厚而無法安裝。
如前所述,當時我誤解了USB攝像頭的連接說明,我燒毀了樹莓派 4板。由于我急于進行測試,在離開正在執行其他任務之前,便在左邊的Micro USB端口和右邊的一個USB端口之間連接了一條電纜。然而設備立刻黑屏了。
雖然我可以重新啟動設備,但隨后發現USB端口真的被燒毀了(盡管它們可能有辦法恢復,我以后可能會去查實),用于無線鍵盤和鼠標的射頻接收器也是如此。因此,雖然我可以進入用戶界面,但從那里沒有辦法執行任何操作。
所以我想干脆使用去年收到的樹莓派4 1GB開發板。我插入了CrowPi2的microSD卡,并將主板安裝在筆記本外殼上,雖然板子似乎已啟動,但卻沒有顯示輸出。 于是我試著把microSD卡插入我的筆記本電腦,但仍無法訪問,然后用讀卡器再次嘗試,但仍以失敗告終。甚至顯示根本無法使用Ubuntu中的fdisk或Disks程序。
為了檢查SD卡,我換回了套件中包含的樹莓派4,雖然它可以正確檢測到卡,但它仍完全無法啟動。
我天真地以為從Elecrow網站上下載CrowPi2鏡像就能恢復,但我在Elecrow網站上找不到它。反而找到一個谷歌驅動器的鏈接(按要求不能分享),解壓后就得到一個11.4GB的“crowpi2_release.img”鏡像。所以我才得以繼續測試,然后開始用balenaEtcher工具燒錄這個鏡像……
更換了另一個microSD卡后,我仍然遇到了同樣的錯誤:
出現錯誤提示:如果是壓縮鏡像,請檢查存檔文件沒有損壞。
我把未壓縮文件的MD5sum發給了該公司,但一直沒有得到回復。然而,睡了一覺后,我想到了問題所在,因為我是幾個月前安裝的balenaEtcher程序(v1.5.57),也許是軟件版本太老了, 也許應該把它升級到最新版本(v1.5.106)。安裝新軟件后,問題解決了,我終于可以燒錄鏡像了。
因此,我從這次經歷中得到兩個啟發:
CrowPi2看起來是一個強大的學習電子、編程和人工智能基礎知識的小平臺,這要歸功于一百多個課程和教程。因為可用一個離線賬戶去跟蹤每個學生的進度,而且這臺筆記本電腦可供多個孩子使用。
但該平臺并不完美。有時因為某些說明可能不完整,如果沒有夾雜些命令行操作,示例就無法執行。一些項目示例根本無法按預期執行,但希望這些問題能在發貨給最終使用者之前能夠得到修復。雖然Elecrow確實有一個關于他們其他產品的Wiki網站,但我真的找不到任何關于CrowPi2和早期CrowPi的可用的在線資源。
另一個潛在的問題是,風扇響聲真的很大,特別是當你取掉鍵盤玩下面的電子模塊時。另外,正如在評測中所看到的,也許可以通過一些小步驟將其轉換為無風扇筆記本電腦。
Kickstarter上的眾籌活動現已結束,該公司共計籌集了 652,640美元,您現在可以直接從Elecrow 預訂,沒有搭配樹莓派和一些附帶配件的型號售價為260 美元,而包含樹莓派4 4GB和較多的配件的型號(本次測評的測試樣機)售價則為399 美元。
更多干貨,請點擊:CNX SOFTWARE中文站 — 嵌入式開發者的新聞知識庫!