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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

如何使用MicroPython控制單片機(jī)

Q4MP_gh_c472c21 ? 來(lái)源:嵌入式ARM ? 作者:武國(guó)平 ? 2020-11-12 18:15 ? 次閱讀

1. 摘要

本文檔主要介紹,在python環(huán)境下,如何開(kāi)發(fā)嵌入式應(yīng)用程序,以STM32H43板卡為例介紹. 從系統(tǒng)環(huán)境搭建,到編譯,到用python實(shí)現(xiàn)硬件控制??勺鳛槿腴T(mén)教程。

2. 準(zhǔn)備工作

2.1 開(kāi)發(fā)環(huán)境搭建

2.1.1 Win10自帶linux系統(tǒng)

開(kāi)發(fā)環(huán)境可以自己使用虛擬機(jī)然后安裝ubuntu系統(tǒng),而Win10系統(tǒng)自帶有l(wèi)inux系統(tǒng),只需要使能就可以使用,比較方便,所以我們以win10自帶的linux子系統(tǒng)為例。

在控制面板中啟用linux子系統(tǒng),點(diǎn)擊啟用或關(guān)閉Windows功能。

如下圖勾選適用于linux的windows子系統(tǒng),然后重啟電腦

點(diǎn)擊立即重新啟動(dòng)

重啟后進(jìn)入windows 10 應(yīng)用商店,搜索Ubuntu,可以選擇18.04或者20.02進(jìn)行安裝

下載安裝完畢,點(diǎn)擊啟動(dòng)

設(shè)置用戶名和密碼,

安裝的默認(rèn)路徑是

C:Usershpp19AppDataLocalPackagesCanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgscLocalState ootfshome

路徑不能修改,至此linux環(huán)境就好了,可以輸入一些常用命令看看,如ls,cp, rm等命令。

Win10地下安裝的linux子系統(tǒng)只支持命令行, 沒(méi)有自己用虛擬機(jī)安裝的功能全面,但是對(duì)于開(kāi)發(fā)micropython 足夠。

2.1.2 虛擬機(jī)安裝

如果不想用windows10 安裝的,想自己搭建也是可以,需要安裝虛擬機(jī)和下載ubunut的iso鏡像文件,進(jìn)行安裝,這種安裝網(wǎng)上很多,我們就不詳細(xì)列出了,推薦第一種安裝。

2.1.3 依賴(lài)軟件安裝

Git安裝,git用來(lái)獲取軟件包

使用克隆micropython的軟件包,也可以去官網(wǎng)自己下載,拷貝到linux環(huán)境的home目錄下。

使用git 克隆軟件包

如果網(wǎng)絡(luò)不好,要等一段時(shí)間,比較慢。也可以自己到官網(wǎng)下載,我已經(jīng)下好,大家可以找我索取當(dāng)前最新板micropython-1.13

http://www.micropython.org/download/

2.1.4 Micropython 目錄結(jié)構(gòu)

目錄結(jié)構(gòu)比較重要,只有清除目錄結(jié)構(gòu)了,你才能移植到不同的板卡。

詳細(xì)的目錄結(jié)構(gòu)介紹可以參考README.md

主要關(guān)注下目前micropython支持的ST開(kāi)發(fā)板,和我們關(guān)系比較大的是H7系列,可以看到目前支持很多的ST芯片。

3. 交叉編譯工具鏈

在終端輸入sudo apt install gcc make 命令安裝 gcc, make

安裝完后可以查看下版本

輸入 sudo apt-get install gcc-arm-none-eabi 安裝針對(duì)ARM的編譯器

如果你的交叉工具鏈安裝下載比較慢的話,請(qǐng)按以下步驟修改,因?yàn)閘inux自帶的軟件源地址都是國(guó)外的,國(guó)內(nèi)更新下載安裝的話會(huì)比較慢,需要將列表更新為國(guó)內(nèi)

將打開(kāi)的文件內(nèi)容全部刪除掉,替換為以下鏡像源

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

修改完軟件源后,更新軟件列表和軟件:

sudo apt update

sudo apt upgrade

如果對(duì)vim編輯器命令不熟悉,可以自己百度,或者直接在以下目錄

C:Usershpp19AppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgscLocalState ootfsetcapt 下將sources.list文件替換為以下阿里云鏡像源,這樣速度會(huì)很快。

編譯mpy-cross, mpy-cross是一個(gè)micropython的輔助工具,在編譯過(guò)程中會(huì)用到,在micropython的源碼根目錄中輸入命令make -C mpy-cross

至此交叉編譯工具鏈就安裝完畢,可以編譯STM32的程序了。

4. 編譯程序

在源碼根目錄下輸入命令make -C ports/stm32 如果不指定BOARD,則默認(rèn)編譯的是ports/stm32下的PYBV10板子,而我們需要的是能在H743上跑,所以需要裁剪移植一個(gè)對(duì)H743的板子,查看下可以看到micropython目前支持的STM32板卡有F091, F401,F429,F446,F(xiàn)746,H743等,

復(fù)制NUCLEO_H743ZI命名為BODEBOARD

輸入命令ls查看下已經(jīng)有BODEBOARD文件夾和文件,進(jìn)入查看下

主要有5個(gè)文件,而我們就需要修改這里面的文件

首先修改時(shí)鐘為25000000,主要是修改stm32h7xx_hal_conf.h文件

修改mpconfigboard.h

將時(shí)鐘修改為如下配置,可以復(fù)制我們之前IAR工程下的時(shí)鐘配置。

修改其他管腳,這一節(jié)我們只以修改三個(gè)LEDUART1等管腳為例,在文檔的下一個(gè)版本更新中,會(huì)更新所有用到的硬件管腳,還是在這個(gè)文件中繼續(xù)修改對(duì)應(yīng)的硬件管腳

保存退出

修改pins.csv文件

添加LED和UART1的管腳

保存退出。

因?yàn)槲覀兪菂⒄盏腘UCLEO_H743ZI,所以mpconfigboard.mk文件不用修改。至此修改完畢,可以編譯,在micropython根目錄下輸入命令 make -C ports/stm32 BOARD=BODEBOARD

等待編譯完成。

可以看到生成了.hex和.dfu固件,任選一種下載入H743板子,這樣板卡里就有了python解析器,可以識(shí)別python語(yǔ)言

編譯好的固件怎么樣復(fù)制到windows主機(jī)呢,當(dāng)然你可以直接去生成的目錄底下拷貝,在win10 的linux子系統(tǒng)中默認(rèn)已經(jīng)將windows分區(qū)掛載好了,我們可以在/mnt目錄下看到

這樣我們就可以直接使用命令cp拷貝到windows了,當(dāng)然如果你不習(xí)慣命令行操作,可以安裝midinight commander 軟件,可以方便的管理文件,輸入命令sudo apt install mc 進(jìn)行安裝,安裝完后,輸入mc可以直接打開(kāi)軟件。

不管用那種方法,將Hex文件下載到硬件板卡,下載完畢后,給板子重新上電,可以看到出現(xiàn)一個(gè)PYBFLASH類(lèi)似U盤(pán)的盤(pán)符,打開(kāi)里面有boot.py

main.py 等四個(gè)文件,我們最后的應(yīng)用程序直接寫(xiě)在main.py就可以運(yùn)行了。

5. 測(cè)試

我們先來(lái)演示使用putty來(lái)控制板子上的LED燈,打開(kāi)putty,配置波特率和串口號(hào),

導(dǎo)入LED庫(kù),就可以控制LED了

可以觀察H743的板子三個(gè)LED燈依次點(diǎn)亮,通過(guò)Putty可以控制硬件就完成了,那么如何讓板子上電就三個(gè)LED燈點(diǎn)亮,而不需要通過(guò)Putty控制呢。?

這就要編輯我們前面提到的main.py文件,使用任何文本編輯器打開(kāi),寫(xiě)入python代碼,保存退出,就可以運(yùn)行了。

通過(guò)以上代碼就實(shí)現(xiàn)了LED的點(diǎn)亮控制,實(shí)現(xiàn)用python控制單片機(jī)。至此就可以用python編寫(xiě)很多好玩的東西在單片機(jī)上跑了。

6. 參考文檔

序號(hào) 文獻(xiàn)
1 www.micropython.org

責(zé)任編輯:xj

原文標(biāo)題:嘗嘗MicroPython控制單片機(jī)

文章出處:【微信公眾號(hào):嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628421
  • STM32
    +關(guān)注

    關(guān)注

    2258

    文章

    10828

    瀏覽量

    352497
  • Micropython
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    4681

原文標(biāo)題:嘗嘗MicroPython控制單片機(jī)

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于STM32單片機(jī)的智能冰箱控制系統(tǒng)設(shè)計(jì)

    基于單片機(jī)設(shè)計(jì)的一款智能冰箱控制系統(tǒng),可以控制冰箱的制冷裝置,可以采集冰箱的異味濃度,超過(guò)閩值之后控制紫外燈進(jìn)行消毒工作單片機(jī)采用
    的頭像 發(fā)表于 06-25 09:21 ?616次閱讀
    基于STM32<b class='flag-5'>單片機(jī)</b>的智能冰箱<b class='flag-5'>控制</b>系統(tǒng)設(shè)計(jì)

    基于單片機(jī)控制的交通燈設(shè)計(jì)

    本課程設(shè)計(jì)是在學(xué)完單片機(jī)原理及課程之后綜合利用所學(xué)單片機(jī)知識(shí)完成一個(gè)單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)并在實(shí)驗(yàn)室實(shí)現(xiàn)。
    的頭像 發(fā)表于 01-22 15:31 ?1692次閱讀
    基于<b class='flag-5'>單片機(jī)</b><b class='flag-5'>控制</b>的交通燈設(shè)計(jì)

    單片機(jī)編程實(shí)例介紹

    是指使用特定的編程語(yǔ)言編寫(xiě)控制單片機(jī)工作的程序。 在本文中,將為您提供一些常見(jiàn)的單片機(jī)編程實(shí)例,包括基礎(chǔ)應(yīng)用、傳感器應(yīng)用、通信應(yīng)用等方面的案例。 一、基礎(chǔ)應(yīng)用 LED流水燈 流水燈是最基本的單片機(jī)實(shí)例之一,可以通過(guò)依次點(diǎn)亮不同的
    的頭像 發(fā)表于 01-16 09:37 ?2399次閱讀

    基于51單片機(jī)的云梯逃生控制設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的云梯逃生控制設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-12 10:24 ?0次下載

    基于51單片機(jī)的鍋爐控制設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的鍋爐控制設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-12 10:22 ?3次下載

    基于51單片機(jī)的電機(jī)控制設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的電機(jī)控制設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-12 09:31 ?11次下載

    基于51單片機(jī)的鍋爐控制設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的鍋爐控制設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-07 09:32 ?1次下載

    基于51單片機(jī)的電機(jī)控制設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的電機(jī)控制設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-03 11:19 ?4次下載

    單片機(jī)控制和plc控制的優(yōu)缺點(diǎn)

    單片機(jī)控制和PLC控制是工業(yè)自動(dòng)化領(lǐng)域中常用的兩種控制方式。它們各自具有一定的優(yōu)缺點(diǎn),下面將對(duì)它們的優(yōu)缺點(diǎn)進(jìn)行詳細(xì)的分析和比較。 一、單片機(jī)
    的頭像 發(fā)表于 12-30 11:14 ?4494次閱讀

    單片機(jī)boot腳干嘛的

    單片機(jī)boot腳是單片機(jī)的引導(dǎo)腳,用于控制單片機(jī)的啟動(dòng)和引導(dǎo)過(guò)程。在單片機(jī)系統(tǒng)中,boot腳的作用十分重要,它影響著整個(gè)單片機(jī)的工作狀態(tài)和功
    的頭像 發(fā)表于 12-19 09:47 ?7930次閱讀

    如何通過(guò)串口向stm32發(fā)送一串指令,從而控制單片機(jī)進(jìn)行一系列操作?

    如何通過(guò)串口向stm32發(fā)送一串指令,從而控制單片機(jī)進(jìn)行一系列操作? 在控制單片機(jī)進(jìn)行一系列操作時(shí),我們需要先將指令傳遞給單片機(jī)。常見(jiàn)的通信方式有SPI、I2C、并口、串口等。其中,串口通信是最簡(jiǎn)單
    的頭像 發(fā)表于 10-26 11:27 ?1646次閱讀

    手機(jī)控制單片機(jī)該如何去實(shí)現(xiàn)?

    想用嵌入式(單片機(jī))做一個(gè)LED屏幕的萬(wàn)年歷,希望能用手機(jī)控制調(diào)節(jié)時(shí)亮度等,應(yīng)該怎樣去做呢!
    發(fā)表于 10-24 07:04

    請(qǐng)問(wèn)如何利用電腦控制單片機(jī)的閉合?

    如何利用電腦控制單片機(jī)的閉合??
    發(fā)表于 10-20 06:11

    單片機(jī)控制的汽車(chē)啟動(dòng)保護(hù)控制

    電子發(fā)燒友網(wǎng)站提供《單片機(jī)控制的汽車(chē)啟動(dòng)保護(hù)控制器.doc》資料免費(fèi)下載
    發(fā)表于 10-12 09:28 ?1次下載
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>控制</b>的汽車(chē)啟動(dòng)保護(hù)<b class='flag-5'>控制</b>器

    請(qǐng)問(wèn)如何使用單片機(jī)控制DVI信號(hào)線的通斷?

    大家好,想請(qǐng)教一個(gè)問(wèn)題:如何通過(guò)單片機(jī)控制DVI信號(hào)線的通斷?是想在DVI上加一個(gè)單片機(jī)作為控制器,并且單片機(jī)是通過(guò)串口或USB口連接到電
    發(fā)表于 09-26 06:09