2018年11月22日

bpi-bit mycropython記事


安裝picocom

sudo apt-get install picocom
sudo pip install adafruit-ampy --upgrade

確認 esptool安裝完成

sudo apt-get install esptool
sudo pip3 install esptool

燒錄硬體

下載網址:https://github.com/BPI-STEAM/BPI-BIT-MicroPython/releases
 下載:firmware.bin、AutoErase.py、AutoFlash.py三個檔案。
開啟終端機,輸入:
python3 AutoErase.py
python3 AutoFlash.py

連線到bpi-bit

picocom /dev/ttyUSB0 -b 115200

關閉wifi AP

wifi.close()

執行.py檔案

ampy --port /dev/ttyUSB0 run led.py

Ctrl+A在空行上,輸入原始REPL模式
Ctrl+B在空行上,進入正常的REPL模式
Ctrl+C中斷程序
Ctrl+D軟體重啟
Ctrl+E進入複製貼上程式碼模式,做完貼上使用Ctrl+D執行貼上程式碿
按Ctrl+A 再按Ctrl+Q離開終端機
如果要燒錄進去,則把xx.py程式,改成main.py
sudo ampy --port /dev/ttyUSB0 put main.py
刪除板子上的文件
ampy --port /dev/ttyUSB0 rm led.py
下載檔案到電腦中
ampy -p /dev/ttyUSB0 get xx.py
列出文件
ampy -p /dev/ttyUSB0 ls
清除micropyton重新燒入 
sudo esptool.py --port /dev/ttyUSB0 erase_flash
sudo esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20180511-v1.9.4.bin

點亮GPIO 18 LED燈

載入machine裡的Pin類別
from machine import Pin
載入時間物件
import time
設定GPIO 18為輸出,GPIO18在bpi-bit正面wf32晶片旁bpi:bit的正方方LED燈
LED = Pin(18, Pin.OUT)
亮燈
LED.value(1)
熄燈
LED.value(0)
 

呼吸燈作法

import machine,time
LED = machine.PWM(machine.Pin(18), freq=1000)
tick = 0 # counter variable
while True:
    if tick < 40:
        # self.tick % 20 gives a number 0 to 19
        # subtracting 9 makes it -9 to 10
        # abs maps it 9 to 0 to 10
        # subtracting from 10 maps it 1 to 10 to 0
        # multiplying by 25 scales it 25 to 250 to 0
        LED.duty((10 - (abs((tick % 20) - 9))) * 25)
        tick = (tick + 1) % 40
        time.sleep(0.1)
注意程式碼階層,python以階層決定程式碼位置。
可以貼在文件編輯器中存成led_pwm.py檔,放終下列執行指令
 ampy --port /dev/ttyUSB0 run led_pwm.py

沒有留言: