0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

行空板入門教程第一課:初識行空板

創(chuàng)客生活 ? 來源:創(chuàng)客生活 ? 作者:創(chuàng)客生活 ? 2022-03-30 16:44 ? 次閱讀

行空板是什么?

大家可能在之前都沒聽說行空板,但你可能聽過micro:bit、掌控板亦或者是樹莓派。行空板是一款由DFRobot專為Python編程教育而設計的開源硬件,是一塊有著樹莓派級別性能,如micro:bit一樣簡單易上手,可以運行完整Python程序的神奇的板子!

下面,讓我們來開啟行空板之旅的第一節(jié)課吧!

任務目標
在行空板屏幕上顯示文字和表情。

行空板

知識點
1、認識行空板
2、認識unihiker庫
3、學習使用unihiker庫書寫文字、添加表情的方法
4、學習在行空板屏幕上顯示程序效果的方法

材料清單
硬件清單:

行空板Type-C&Micro二合一USB線


行空板x1
Type-C&Micro二合一USB線x1

**軟件使用:**Mind+編程軟件x1

知識儲備
1、什么是行空板
行空板又稱UNIHIKER,它是一款國產(chǎn)教學用開源硬件,它自帶Linux操作系統(tǒng)和Python環(huán)境,還預裝了常用的Python庫,能夠輕松勝任各種編程相關的開發(fā)場景,如搭建物聯(lián)網(wǎng)系統(tǒng)、體驗人工智能應用、編寫電子游戲、進行科學實驗、設計聲光互動、開發(fā)可穿戴設備等。

同時,行空板作為智能終端設備,其板子本身采用微型計算機架構,集成LCD彩屏、WiFi藍牙、多種常用傳感器和豐富的拓展接口,如下圖所示,

行空板接口介紹

2、什么是Mind+
行空板和電腦間,我們可以用USB線這一硬件構建物理連接,但僅僅做到這一步就好比是買來了各式各樣的硬件、組裝好了電腦,但是沒有軟件無法使用這些硬件。那么要如何建立這兩者之間信息的連接呢?

答案便是Mind+!它為兩者架起了虛擬的橋梁,從而實現(xiàn)代碼的編寫燒錄、文件的傳輸、實時數(shù)據(jù)流的交互等功能。

Mind+是一款擁有自主知識產(chǎn)權的國產(chǎn)青少年編程軟件,集成各種主流主控板及上百種開源硬件,支持人工智能(AI)與物聯(lián)網(wǎng)(IoT)功能,既可以拖動圖形化積木編程,也可以使用Python/C/C++等高級編程語言,讓大家輕松體驗創(chuàng)造的樂趣。

3、什么是unihiker庫
unihiker庫是專門為了便于行空板的使用而開發(fā)的Python庫。我們可以借助unihike庫中的GUI類來實現(xiàn)屏幕顯示和控制,如顯示文字、表情、按鈕等,借助其中的Audio類來使用麥克風和外接喇叭,如錄制語音,檢測環(huán)境音量等。

在這里插入圖片描述

4、unihiker庫GUI類導入方法
當我們使用庫unihiker中的GUI類實現(xiàn)功能時,我們需要先導入庫中的這個模塊并通過實例化類的方式創(chuàng)建一個對象。
from unihiker import GUI # 導入unihiker庫GUI模塊
gui = GUI() # 實例化GUI類

5、unihiker庫GUI類通用知識及功能
(1)坐標系
行空板屏幕分辨率為240 x 320,坐標原點為屏幕左上角,向右為x軸正方向,向下為y軸正方向。為了便于使圖形等屏幕元素能夠顯示在指定位置,編程時我們可以通過設定x和y的坐標來實現(xiàn)。

坐標系

(2)對齊位置origin
行空板屏幕上所有的元素對象我們可稱之為控件。我們可通過設定x和y的坐標來確定它在屏幕上的位置,而為了便于確定控件對象自身在內(nèi)部的相對方位,我們給控件本身設定9個對齊位置點,可以采用東南西北(ESWN)和上下左右(top/bottom/left/right)兩種方法標識。

對齊位置

方法一是以絕對的方位(東南西北)作為對齊位置點。

對齊位置點

例如,我們想以控件的北邊作為對齊點,使文字“行空板”顯示在南邊,方位就可以通過“origin=‘n’ ”指令來設置。
gui.draw_text(x = 120,y=160,text=“行空板”, origin=‘n’ )
方法二是以屏幕上相對的方位(上下左右)作為位置點。

相對方位位置點

例如,我們想以控件的頂端作為對齊點,使文字“行空板”顯示在底部,方位就可以通過“origin=‘top’ ”指令來設置。
gui.draw_text(x = 120,y=160,text=“行空板”, origin=‘top’ )

6、unihiker庫GUI類中的常見方法
GUI類中的方法有很多,我們只使用其中的一部分,在編程時,通過“對象.方法名()”的形式來實現(xiàn)功能。
(1)draw_text()方法顯示文字
GUI類中的draw_text()方法可以實現(xiàn)在行空板屏幕上顯示文字。
gui.draw_text(x=30, y=88, color=“red”, text=“你”, font_size=20, origin=‘top_left’ ) # 在(30,88)坐標位顯示文字“你”,顏色為red,大小為20,對齊方式為左上對齊”
其中,參數(shù)x和y分別表示文字所顯示的橫縱坐標位置,text指代要顯示的文字內(nèi)容,font_size表示字體大小,origin指代對齊位置,默認左上角,color表示相應的字體顏色,這里的各個參數(shù)并非必須,僅在需要時添加。同時,在設置字體的顏色時有三種表示方法,如設置紅色,
?設置RGB值: color = (255,0,0)
?設置16進制值: color = “#ff0000”
?設置固定顏色: color = “red”

(2)draw_emoji()方法顯示表情

Gui類中的draw_emoji()方法可以實現(xiàn)在行空板屏幕上顯示表情。
gui.draw_emoji(x=120, y=230, w=100, h=100, emoji=“Wink”, duration=0.1,origin=“center”)
# 在(120,230)坐標位顯示內(nèi)置表情“Wink”,圖片切換時間為0.1秒,中心對齊
其中,參數(shù)x和y分別表示表情所顯示的橫縱坐標位置,w和h表示表情的寬度和高度,按照長寬最小邊等比例縮放,emoji表示要顯示的具體表情名,可以使用內(nèi)置表情(Angry,Nerve,Peace,Shock,Sleep,
Smile,Sweat,Think,Wink),duration表示圖片切換間隔時間,origin表示對齊位置,默認左上角。

動手實踐
任務描述1:顯示文字和表情
在行空板屏幕上顯示文字和表情。

1、硬件搭建
STEP1:通過USB連接線將行空板連接到計算機

USB連接行空板

2、程序編寫
在正式編寫程序代碼之前,我們首先要創(chuàng)建一個項目文件及Python程序文件。

STEP1:創(chuàng)建與保存項目文件
(1)啟動Mind+軟件,點擊右上角的“Python模式”,

Mind+軟件選擇Python模式

(2)點擊左上角“代碼”選擇編程方式,

選擇代碼編程方式

之后我們會看到下面這樣的屏幕,右側是文件目錄區(qū),左側分別是代碼編寫區(qū)和終端區(qū)。

在這里插入圖片描述

(3)完成后,點擊左上方項目菜單中的“保存項目”,

在這里插入圖片描述

(4)在彈出的界面中選擇保存位置,輸入文件名“001、初識行空板”,保存類型“Mind+”
Tips:文件名稱可自取。

在這里插入圖片描述

經(jīng)過上述四步,我們就成功創(chuàng)建并保存好項目文件啦,但是我們的項目是使用Python語言來實現(xiàn)的,因此,接下來我們還需要在項目文件中再創(chuàng)建Python程序文件。

STEP2:創(chuàng)建與保存Python文件
(1)找到文件目錄區(qū)域

在這里插入圖片描述

(2)新建Python程序文件,命名為“main.py”

在這里插入圖片描述

Tips:Python程序文件一定要以“.py”格式結尾才能進行編程,否則無法打開。

(3)打開文件
創(chuàng)建完成后,我們雙擊“main.py”文件即可對該文件在程序編寫區(qū)內(nèi)進行編程,圖示如下。

在這里插入圖片描述

Step4:程序編寫
(1)導入所需功能庫
在這個任務中,我們需要使用unihiker庫中的GUI模塊來在屏幕上顯示文字,因此,我們首先需要導入它,代碼如下。同時,由于后續(xù)在保持程序運行時需要一定的延時,因此,我們還需導入time時間庫。
from unihiker import GUI # 導入unihiker庫GUI 模塊
import time # 導入時間庫

(2)實例化GUI類
在使用unihiker庫中的GUI模塊顯示文字和表情前,我們需要先實例化GUI類,來創(chuàng)建一個對象,以便使用該類中的各種方法。
gui = GUI() # 實例化GUI類,創(chuàng)建對象

(3)顯示文字
在屏幕上顯示文字時,我們可以設定各個文字的坐標位、顏色、內(nèi)容、字體大小等不同的屬性參數(shù),以使效果更佳。
gui.draw_text(x=30, y=88, color=“red”, text=“你”, font_size=20) # 在(30,88)坐標位顯示文字“你”,顏色為red,字體大小為20
gui.draw_text(x=60, y=88, color=“orange”, text=“好”, font_size=20,)
gui.draw_text(x=90, y=88, color=“yellow”, text=",", font_size=20)
gui.draw_text(x=120, y=88, color=“green”, text=“行”, font_size=20)
gui.draw_text(x=150, y=88, color=“cyan”, text=“空”, font_size=20)
gui.draw_text(x=180, y=88, color=“blue”, text=“板”, font_size=20)
gui.draw_text(x=210, y=88, color=“purple”, text="!", font_size=20)

gui.draw_text(x=15, y=150, color=(255,105,180), text=“Hello,”, font_size=20)
gui.draw_text(x=95, y=150, color=(0,191,255), text=“UNIHIKER!”, font_size=20)

(4)顯示表情
行空板屏幕可顯示的表情有很多,這里,我們選擇“Wink”將其呈現(xiàn)在文字下方。
gui.draw_emoji(x=120, y=230, w=100, h=100, emoji=“Wink”, duration=0.1,origin=“center”) # 在(120,230)坐標位顯示內(nèi)置表情“Wink”,圖片切換時間為0.1秒,中心對齊

(5)保持內(nèi)容顯示
最后,為了能夠保持屏幕內(nèi)容的長久顯示,我們使程序處于運行狀態(tài)。
while True: # 循環(huán)
time.sleep(1) # delay1秒

Tips:完整示例程序如下:
from unihiker import GUI # 導入unihiker庫GUI 模塊
import time # 導入time庫

gui = GUI() # 實例化GUI類,創(chuàng)建對象

gui.draw_text(x=30, y=88, color=“red”, text=“你”, font_size=20) # 在(30,88)坐標位顯示文字“你”,顏色為red,字體大小為20
gui.draw_text(x=60, y=88, color=“orange”, text=“好”, font_size=20,)
gui.draw_text(x=90, y=88, color=“yellow”, text=",", font_size=20)
gui.draw_text(x=120, y=88, color=“green”, text=“行”, font_size=20)
gui.draw_text(x=150, y=88, color=“cyan”, text=“空”, font_size=20)
gui.draw_text(x=180, y=88, color=“blue”, text=“板”, font_size=20)
gui.draw_text(x=210, y=88, color=“purple”, text="!", font_size=20)

gui.draw_text(x=15, y=150, color=(255,105,180), text=“Hello,”, font_size=20)
gui.draw_text(x=95, y=150, color=(0,191,255), text=“UNIHIKER!”, font_size=20)

gui.draw_emoji(x=120, y=230, w=100, h=100, emoji=“Wink”, duration=0.1,origin=“center”) # 在(120,230)坐標位顯示內(nèi)置表情“Wink”,圖片切換時間為0.1秒,中心對齊

while True: # 循環(huán)
time.sleep(1) # delay1秒

程序運行
STEP1:遠程連接行空板
(1)確認板子處于連接且開機狀態(tài)

在這里插入圖片描述

(2)開啟遠程連接終端

在這里插入圖片描述


在這里插入圖片描述

(3)連接行空板

在這里插入圖片描述


在這里插入圖片描述

Tip1:“遠程連接終端”只在開啟后可見。
Tip2:“10.1.2.3”為USB直連時的固定IP地址。

STEP2:點擊右上方的運行按鈕

在這里插入圖片描述

STEP3:觀察效果
觀察行空板,可以看到在屏幕上呈現(xiàn)出“你好,行空板!”以及“Hello,UNIHIKER!”的字樣,而在文字下方,則是一個“Wink”的表情。

在這里插入圖片描述

挑戰(zhàn)自我
1、試一試,用其他表情替換“Wink”,看看效果如何吧!
2、除了上述內(nèi)容,你還有什么話想向行空板說呢,將它添加到屏幕上吧!

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開源硬件
    +關注

    關注

    8

    文章

    204

    瀏覽量

    29705
  • DFRobot
    +關注

    關注

    4

    文章

    1156

    瀏覽量

    9404
收藏 人收藏

    評論

    相關推薦

    易道科技與中國科學院天信息創(chuàng)新研究院達成合作

    科技有限公司在車載雷達等領域的產(chǎn)業(yè)資源優(yōu)勢,進步加強雙方在科學研究、產(chǎn)業(yè)轉化和人才培養(yǎng)領域的合作,實現(xiàn)資源共享,加快科技創(chuàng)新及成果產(chǎn)業(yè)化,決定合作共建“天院-易道車載成像雷達技術聯(lián)合實驗室”(以下簡稱“聯(lián)合實驗室”)。
    的頭像 發(fā)表于 11-09 10:38 ?201次閱讀

    篇文章,徹底看懂ATG(地通信)

    廢話不多說,我們直奔主題!█到底什么是ATG?ATG,就是AirToGround,空對地通信,也叫地通信。它是種非常特殊的通信技術,專門為天上的飛機提供服務。簡單來說,就是沿著飛機的航線,設置
    的頭像 發(fā)表于 06-27 08:04 ?1097次閱讀
    <b class='flag-5'>一</b>篇文章,徹底看懂ATG(地<b class='flag-5'>空</b>通信)

    芯光纖,為什么這么火?

    很多讀者對空芯光纖技術很感興趣,問這個芯光纖到底有什么特別。今天這篇文章,我就給大家詳細科普下。█什么是芯光纖芯光纖,網(wǎng)上很多文章也稱之為“空心光纖”,英文名
    的頭像 發(fā)表于 05-26 08:04 ?393次閱讀
    <b class='flag-5'>空</b>芯光纖,為什么這么火?

    什么是接口?接口代碼示例

    這是因為每個接口的內(nèi)存布局都占用兩個機器字長的內(nèi)容。對于長度為N的接口slice來說,它的每個元素都是以2機器字長為單元的連續(xù)空間,共占用N*2個機器字長的空間。
    的頭像 發(fā)表于 04-30 12:59 ?633次閱讀

    為什么需要芯光纖?芯光纖是如何工作的

    為了克服傳統(tǒng)光纖在傳輸過程中的問題,提高光通信的效率和性能,芯光纖應用而生。
    發(fā)表于 03-29 14:23 ?876次閱讀
    為什么需要<b class='flag-5'>空</b>芯光纖?<b class='flag-5'>空</b>芯光纖是如何工作的

    星際飛船駕駛艙模擬器、創(chuàng)意數(shù)字時鐘、智能騎行氣象助手

    LED燈帶直觀展示;另個是“風向標”,利用和云雀氣象儀采集風向信息,并通過物聯(lián)網(wǎng)平臺傳遞給另
    發(fā)表于 03-22 10:59

    星際飛船駕駛艙模擬器、創(chuàng)意數(shù)字時鐘、智能騎行氣象助手|DF創(chuàng)客周刊(第75期)

    /Geneva-Digital-Clock/ 智能騎行氣象助手與遠程風向指示器 這個創(chuàng)客項目來自DF創(chuàng)客社區(qū)云天老師之手——包含兩個腦洞創(chuàng)意,個是“風速車”,將自行車轉變?yōu)?/div>
    發(fā)表于 03-15 11:46

    讓“聾人”看到聲音 —“AI助聽器”

    ,包括弱聽、重聽、老化聾等。因為各種不方便讓其在這個世界上生活極為不方便。比如有人敲門,水龍頭忘關、孩子在臥室里啼哭,可是“聽障人”他們聽不見。利用人工智能,讓模型學習各種聲音,使用開源硬件-采集聲音,通
    的頭像 發(fā)表于 01-12 13:12 ?383次閱讀

    什么是芯光纖?為什么需要芯光纖?

    芯光纖(Hollow-core fiber)—— 種新型傳輸媒介 。
    的頭像 發(fā)表于 12-27 09:22 ?838次閱讀

    驅動的物聯(lián)網(wǎng)農(nóng)業(yè)監(jiān)測系統(tǒng) 監(jiān)測農(nóng)作物生長環(huán)境的利器

    ,監(jiān)測環(huán)境參數(shù)還可以幫助我們預防病蟲害的發(fā)生,及時采取措施進行防治。 本篇文章介紹了款物聯(lián)網(wǎng)農(nóng)業(yè)監(jiān)測系統(tǒng),它采用開源硬件(Unihiker)為核心,配備RS485土壤傳感器、溫
    的頭像 發(fā)表于 12-15 13:09 ?377次閱讀

    +大模型”——基于ChatGLM的多角色交互式聊天機器人

    模型,結合了深度學習技術和大量中文語料的訓練成果。它在自然語言理解和生成方面展現(xiàn)了出色性能,為國內(nèi)的自然語言處理研究與應用提供了有力支持。 通過使用和UGB喇叭,你可以制作個有
    的頭像 發(fā)表于 12-08 14:11 ?579次閱讀

    bigdecimal轉string類型避免指針

    在Java中,BigDecimal是用于處理高精度數(shù)字計算的類。它提供了種有效的方法來避免使用浮點數(shù)的精確度損失問題。然而,在將BigDecimal對象轉換為String類型時,需要特別小心以避
    的頭像 發(fā)表于 11-30 11:12 ?2493次閱讀

    商湯科技回應做機構灰熊的報告并無依據(jù)

    商湯科技回應做機構灰熊的報告并無依據(jù) 美國做機構灰熊發(fā)布了份專門針對商湯科技的做報告,做報告稱商湯通過高度可疑的收入往返計劃夸大了
    的頭像 發(fā)表于 11-28 18:50 ?663次閱讀

    python如何定義二維數(shù)組

    在Python中,可以通過使用列表嵌套的方式來定義二維數(shù)組。具體步驟如下: Step 1: 創(chuàng)建的二維列表 要創(chuàng)建的二維數(shù)組,
    的頭像 發(fā)表于 11-21 15:12 ?1651次閱讀

    DIY智能露營小助手:與云雀氣象儀的實時天氣預測

    的最佳時機。因此,及時了解露營地的氣象情況,對于露營者至關重要。 這篇文章將介紹如何使用開源硬件和云雀氣象儀及空氣監(jiān)測傳感器來DIY露營小助手,為露營者提供暴風雨和天氣轉晴的預測與建議。 任務目標 ? 使用云雀氣
    的頭像 發(fā)表于 11-16 15:42 ?477次閱讀