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

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

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

ESP8266上的MicroPython入門-3

汽車電子技術(shù) ? 來源:云深之無跡 ? 作者:小懟懟 ? 2023-02-27 14:16 ? 次閱讀

這節(jié)簡單的介紹一下:


MicroPython REPL位于UART0(GPIO1 = TX,GPIO3 = RX)上,波特率為115200。制表符補(bǔ)全有助于找出對象具有哪些方法。粘貼模式(Ctrl-E)可用于將大量Python代碼粘貼到REPL中。

importmachine
machine.freq()          # 獲取CPU頻率
machine.freq(160000000) # 設(shè)置160 MHz


import network
wlan=network.WLAN (network.STA_IF ) #創(chuàng)建站接口
WLAN .active (True )      #激活接口
wlan .scan ()             #掃描訪問點(diǎn)
wlan .isconnected ()      #檢查工作站是否連接到AP 
wlan .connect ('essid' , 'password' ) #連接到AP 
wlan .config ('mac' )     #獲取接口的MAC地址
wlan .ifconfig ()         #獲取接口的IP /網(wǎng)絡(luò)掩碼/ gw / DNS地址

ap  =  network.WLAN (網(wǎng)絡(luò)。AP_IF ) #創(chuàng)建接入點(diǎn)界面
AP.active (True )                   #激活接口
ap.config(essid = 'ESP-AP')         #設(shè)置接入點(diǎn)的ESSID(就是熱點(diǎn)名字)

pYYBAGP8SkmAXPPYAAMrxi2vYyA500.png

pYYBAGP8SlWADHsYAACNmFgow8g534.png

ESP-yunswj就是熱點(diǎn)


輸入 help():

歡迎使用MicroPython!

有關(guān)在線文檔,請?jiān)L問

http:// docs.micropython.org/en/latest/esp8266/。

要使診斷信息包含在錯(cuò)誤報(bào)告中,請執(zhí)行“

import port_diag

”。

sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.scan()                             # Scan for available access points
sta_if.connect("", "")  # Connect to an AP
sta_if.isconnected()                      # Check for successful connection
# 更改ESP8266 AP的名稱/密碼:
ap_if = network.WLAN(network.AP_IF)
ap_if.config(essid="", authmode=network.AUTH_WPA_WPA2_PSK,
             password="")

控制命令:

CTRL-A-在空白行上,進(jìn)入原始REPL模式

CTRL-B-在空白行上,進(jìn)入常規(guī)REPL模式

CTRL-C-中斷正在運(yùn)行的程序

CTRL-D-在空白行上,對電路板進(jìn)行軟復(fù)位

CTRL-E-在空白行上進(jìn)入粘貼模式

有關(guān)特定對象的更多幫助,請鍵入

help(obj)

延時(shí)于時(shí)間:

import time

time.sleep(1)           # 休眠一秒
time.sleep_ms(500)      # 休眠 500 milliseconds
time.sleep_us(10)       # sleep for 10 microseconds
start = time.ticks_ms() ##獲取毫秒計(jì)數(shù)器
delta = time.ticks_diff(time.ticks_ms(), start) # 計(jì)算書簡差


這些東西,是讓你在寫程序的時(shí)候?qū)戇M(jìn)去的,命令行輸入的話,效果不是太大

from machine import Pin

p0 = Pin(0, Pin.OUT)    # create output pin on GPIO0
p0.on()                 # set pin to "on" (high) level
p0.off()                # set pin to "off" (low) level
p0.value(1)             # set pin to on/high

p2 = Pin(2, Pin.IN)     # create input pin on GPIO2
print(p2.value())       # get value, 0 or 1

p4 = Pin(4, Pin.IN, Pin.PULL_UP) # 使能內(nèi)部上拉電阻
p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation

可用的引腳為:0、1、2、3、4、5、12、13、14、15、16(11個(gè)),它們對應(yīng)于ESP8266芯片的實(shí)際GPIO引腳編號。請注意,許多最終用戶板使用自己的臨時(shí)引腳編號(例如,標(biāo)記為D0,D1等,自己來取名的)。由于MicroPython支持不同的板卡和模塊,因此選擇了物理引腳編號作為最低的公分母。有關(guān)板邏輯引腳和物理芯片引腳之間的映射,請看我昨天發(fā)的映射圖.

請注意,引腳(1)和引腳(3)分別是REPL UART TX和RX。另請注意,Pin(16)是一個(gè)特殊的引腳(用于從深度睡眠模式喚醒).

PWM(脈沖寬度調(diào)制)



可以在引腳(16)以外的所有引腳上使能PWM。

所有通道都有一個(gè)頻率,范圍在1到1000之間(以Hz為單位)。

占空比在0到1023之間(包含端點(diǎn)值)。

machine.pwm

from machine import Pin, PWM

pwm0 = PWM(Pin(0))      # create PWM object from a pin
pwm0.freq()             # 現(xiàn)在頻率
pwm0.freq(1000)         # 設(shè)置頻率
pwm0.duty()             # 獲取當(dāng)前占空比
pwm0.duty(200)          # 設(shè)置占空比
pwm0.deinit()           # 關(guān)閉引腳上的PWM

pwm2 = PWM(Pin(2), freq=500, duty=512) # #一次性創(chuàng)建和配置,寫法上的便利,不需要一次配置一個(gè)


ADC模擬到數(shù)字轉(zhuǎn)換)

ADC在專用引腳上可用。請注意,ADC引腳上的輸入電壓必須在0v至1.0v之間。

使用machine.ADC類:

from machine import ADC

adc = ADC(0)            # create ADC object on ADC pin
adc.read()              # read value, 0-1024(10bit的精度)

軟件SPI總線

有兩個(gè)SPI驅(qū)動(dòng)程序。一種是通過軟件實(shí)現(xiàn)的(位敲打)并在所有引腳上工作,并且可以通過機(jī)器訪問.SPI類:

frommachineimportPin,SPI
# construct an SPI bus on the given pins
# polarity is the idle state of SCK
# phase=0 means sample on the first edge of SCK, phase=1 means the second
# 構(gòu)造給定的銷SPI總線
# 極性是SCK的空閑狀態(tài)
# 相位= 0表示樣品在SCK的第一邊緣,相位= 1個(gè)裝置中的第二
spi = SPI(-1, baudrate=100000, polarity=1, phase=0, sck=Pin(0), mosi=Pin(2), miso=Pin(4))

spi.init(baudrate=200000)  #設(shè)置波特率

spi.read(10)            # read 10 bytes on MISO
spi.read(10, 0xff)      # read 10 bytes while outputing 0xff on MOSI

buf = bytearray(50)     # create a buffer
spi.readinto(buf)       #讀入給定的緩沖區(qū)(在這種情況下,讀取50個(gè)字節(jié))
spi.readinto(buf, 0xff) #讀入給定的緩沖區(qū),并在MOSI上輸出0xff

spi.write(b'12345')     # write 5 bytes on MOSI

buf = bytearray(4)      # create a buffer
spi.write_readinto(b'1234', buf) # write to MOSI and read from MISO into the buffer
spi.write_readinto(buf, buf) # write buf to MOSI and read MISO back into buf

硬件SPI總線

硬件SPI速度更快(最高80Mhz),但僅適用于以下引腳:MISOGPIO12,MOSIGPIO13和SCKGPIO14。它具有與上面的bangbanging SPI類相同的方法,但構(gòu)造函數(shù)和init的pin參數(shù)(固定的)是:

from machine import Pin, SPI

hspi = SPI(1, baudrate=80000000, polarity=0, phase=0)

SPI(0)用于FlashROM,對用戶不可用,別用了。)

I2C總線

I2C驅(qū)動(dòng)程序是通過軟件實(shí)現(xiàn)的,并且可以在所有引腳上工作,并且可以通過machine.IC(class):

from machine import Pin, I2C

# construct(構(gòu)造) an I2C bus
i2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000)

i2c.readfrom(0x3a, 4)   #從地址為0x3a i2c的從設(shè)備讀取4個(gè)字節(jié)
i2c.writeto(0x3a, '12')  #將'12'寫入地址為0x3a的從設(shè)備
buf = bytearray(10)     #創(chuàng)建一個(gè)具有10個(gè)字節(jié)
i2c.writeto(0x3a, buf)  #將給定的緩沖區(qū)寫入從屬設(shè)備
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • ESP8266
    +關(guān)注

    關(guān)注

    50

    文章

    959

    瀏覽量

    44542
收藏 人收藏

    評論

    相關(guān)推薦

    ESP8266 MicroPython移植流程分享!

    微控制器及受限的環(huán)境優(yōu)化以可以運(yùn)行。下載固件:首先到MicroPython的官網(wǎng)下載基于ESP8266MicroPython固件。目前最新的穩(wěn)定版本是「esp8266-2017110
    發(fā)表于 07-25 01:32

    esp8266microPython如何調(diào)用Arduino庫?

    esp8266microPython如何簡單的調(diào)用Arduino庫,本人C++不是太熟練,想把ATmega328p的一個(gè)LCD屏驅(qū)動(dòng)移植到esp8266 microPython ,不
    發(fā)表于 10-30 07:42

    ESP8266和Node MCU掃盲與開發(fā)入門

    ESP8266-EX芯片和flash芯片等封裝在一起便得到ESP8266模塊。ESP8266模塊的品牌一般分為樂鑫和安信可。這是淘寶的圖,此WiFi模塊廠商為樂鑫這是本人根據(jù)上圖開發(fā)
    發(fā)表于 10-26 09:06 ?30次下載
    <b class='flag-5'>ESP8266</b>和Node MCU掃盲與開發(fā)<b class='flag-5'>入門</b>

    VScode嵌入式開發(fā)之ESP32以及ESP8266入門

    VScode嵌入式開發(fā)之ESP32以及ESP8266入門1.適用與有部分C語言的開發(fā)者或者學(xué)生學(xué)習(xí)ESP系列的開發(fā)入門2.
    發(fā)表于 11-03 12:51 ?29次下載
    VScode嵌入式開發(fā)之<b class='flag-5'>ESP</b>32以及<b class='flag-5'>ESP8266</b><b class='flag-5'>入門</b>

    視頻教程-micropython基礎(chǔ)入門esp32/esp8266單片機(jī)開發(fā))-物聯(lián)網(wǎng)技術(shù)

    micropython基礎(chǔ)入門esp32/esp8266單片機(jī)開發(fā)) 10...
    發(fā)表于 11-13 15:36 ?55次下載
    視頻教程-<b class='flag-5'>micropython</b>基礎(chǔ)<b class='flag-5'>入門</b>(<b class='flag-5'>esp</b>32/<b class='flag-5'>esp8266</b>單片機(jī)開發(fā))-物聯(lián)網(wǎng)技術(shù)

    MacOSESP8266開發(fā)板刷microPython教程

    MacOSESP8266開發(fā)板刷microPython教程
    發(fā)表于 11-30 17:36 ?8次下載
    MacOS<b class='flag-5'>上</b><b class='flag-5'>ESP8266</b>開發(fā)板刷<b class='flag-5'>microPython</b>教程

    arduino / VScode+platformIO搭建esp32/esp8266編譯環(huán)境(一篇足矣)

    arduino/VScode+platformIO 搭建esp32/esp8266開發(fā)環(huán)境(一篇足矣)前言:入門開源硬件開發(fā),在搭建編譯環(huán)境的時(shí)候碰了一臉灰,特意寫下此博客,以供參考!制作不易,來個(gè)
    發(fā)表于 12-05 14:06 ?31次下載
    arduino / VScode+platformIO搭建<b class='flag-5'>esp</b>32/<b class='flag-5'>esp8266</b>編譯環(huán)境(一篇足矣)

    NodeMCU ESP8266開發(fā)入門

    NodeMCU ESP8266開發(fā)入門傳送門
    發(fā)表于 12-07 17:06 ?26次下載
    NodeMCU <b class='flag-5'>ESP8266</b>開發(fā)<b class='flag-5'>入門</b>

    ESP8266入門博客---記錄

    暫時(shí)也沒弄清楚怎么玩,網(wǎng)上收錄一些自己看的,算是一個(gè)心路歷程。是什么玩意 :ESP8266使用入門教程_Q_xr-CSDN博客_esp8266教程開始測試一些AT指令:爛大街的ESP8266
    發(fā)表于 12-07 17:06 ?36次下載
    <b class='flag-5'>ESP8266</b><b class='flag-5'>入門</b>博客---記錄

    ESP8266和Node MCU掃盲與開發(fā)入門

    ESP8266和Node MCU掃盲與開發(fā)入門
    發(fā)表于 12-15 13:50 ?20次下載

    ESP8266燒寫micropython固件

    0 背景今天翻出了很久沒有使用的ESP8266開發(fā)板,還記得是當(dāng)時(shí)同學(xué)做IOT開發(fā)的時(shí)候推薦給我的,可以基于micropython進(jìn)行開發(fā),就順便入手了幾塊。然后試了網(wǎng)上很多先用esptool擦除
    發(fā)表于 12-20 19:37 ?13次下載
    <b class='flag-5'>ESP8266</b>燒寫<b class='flag-5'>micropython</b>固件

    如何在ESP32/ESP8266使用MicroPython

    在本教程中,我們將了解 MicroPython,它與 Python 有何不同,以及如何在 ESP32/ESP8266 開始使用 MicroPyth
    發(fā)表于 08-19 15:09 ?1.3w次閱讀
    如何在<b class='flag-5'>ESP</b>32/<b class='flag-5'>ESP8266</b><b class='flag-5'>上</b>使用<b class='flag-5'>MicroPython</b>

    ESP8266 DevKitC入門指南

    電子發(fā)燒友網(wǎng)站提供《ESP8266 DevKitC入門指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-23 10:14 ?11次下載
    <b class='flag-5'>ESP8266</b> DevKitC<b class='flag-5'>入門</b>指南

    ESP8266初次如何實(shí)現(xiàn)無線通信(基于電腦與ESP8266)

    的且集成的國產(chǎn)WIFI模塊,它有很多種型號,但是使用方法沒什么太大的區(qū)別,也可以說沒區(qū)別,有些看起來引腳比較多的ESP8266模塊只是將這個(gè)芯片的IO口拓展出來了而已。還有 一種原因就是它采用的是Micropython編程的ESP826
    發(fā)表于 05-30 09:53 ?21次下載
    <b class='flag-5'>ESP8266</b>初次如何實(shí)現(xiàn)無線通信(基于電腦與<b class='flag-5'>ESP8266</b>)

    使用ESP8266MicroPython支持MQTT的滾動(dòng)文本

    電子發(fā)燒友網(wǎng)站提供《使用ESP8266MicroPython支持MQTT的滾動(dòng)文本.zip》資料免費(fèi)下載
    發(fā)表于 06-13 15:49 ?0次下載
    使用<b class='flag-5'>ESP8266</b>和<b class='flag-5'>MicroPython</b>支持MQTT的滾動(dòng)文本