2020年4月30日 星期四

利用MicroPython線上模擬器來學習控制伺服馬達


模擬器內建範例:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Using the Servo
# Make sure you have the Servo checkbox marked!

import machine
import pyb

# The pyboard has four simple servo connections
servo = pyb.Servo(1)

servo.angle(90, 100)

用ADC來控制伺服馬達的角度:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# Using the Servo
# Make sure you have the Servo checkbox marked!

import machine
import pyb
import time


# The pyboard has four simple servo connections
servo = pyb.Servo(1)
y4 = machine.Pin('Y4')
adc = pyb.ADC(y4)

while True:
  value = adc.read() / 255 * 180-90

  servo.angle(int(value), 5000)
  
  time.sleep_ms(100)


利用MicroPython線上模擬器實作小夜燈


模擬器提供的ADC範例程式:
# Using the ADC (Analogue to Digital Converter)
# Make sure you have the ADC checkbox marked!

import machine
import pyb

# The slider is connected to pin Y4, try adjusting it
y4 = machine.Pin('Y4')

adc = pyb.ADC(y4)

print(adc.read())

模擬器提供的LED範例程式:

# four LEDS numbered 1 to 4

import time
import pyb

for i in range(1000):
    pyb.LED((i%4) + 1).toggle()
    time.sleep_ms(100)

組合後的程式:
# Using the ADC (Analogue to Digital Converter)
# Make sure you have the ADC checkbox marked!

import machine
import pyb
import time

# The slider is connected to pin Y4, try adjusting it
y4 = machine.Pin('Y4')

led = pyb.LED(4)

while True:
  adc = pyb.ADC(y4)

  print(adc.read())

  if adc.read() > 128:
    led.on()
  else:
    led.off()
  time.sleep_ms(100)


改成PIN LED

程式如下:(要特別注意PIN宣告的地方)

import machine
import pyb
import time

# The slider is connected to pin Y4, try adjusting it
y4 = machine.Pin('Y4')

led = machine.Pin('Y12')

while True:
  adc = pyb.ADC(y4)

  print(adc.read())

  if adc.read() > 128:
    led.on()
  else:
    led.off()
  time.sleep_ms(100)

2020年4月5日 星期日

使用ESP32/8266晶片的MicroPython範例

一、uPyCraft工具安裝
(1) Install uPyCraft IDE – Windows PC Instructions
(2) Install uPyCraft IDE – Mac OS X Instructions
(3) Install uPyCraft IDE – Linux Ubuntu Instructions

二、工具
(1) Flash/Upload MicroPython Firmware to ESP32 and ESP8266
三、基本篇


四、感知篇

五、通訊篇

六、應用篇





2020年4月3日 星期五

[MicroPython模擬器] Unicorn使用方法簡介

沒有硬體但想學MicroPython怎麼辦?就用MicroPython on Unicorn!
模擬器的網址:http://micropython.org/unicorn/
主畫面如下圖,可分成四大區域:
(1) 命令列(左上):提供一個可以互動可輸入命令的介面。
(2) 程式區(右上):可以用來編輯程式,提供一些程式範例。
(3) 硬體選項區(左下):提供可以選擇硬體種類、重置以及週邊的選項。
(4) 模擬硬體板子(右下):可以展示硬體設備的功能。


如上圖的左上方有個命令列,一開使用就說明unicorn with Cortex-M3,Cortex-M3是ARM公司推出的微控器的CPU,其內核主要是應用於低成本和低功耗的場合,因具有極高的運算能力和極強的中斷響應能力,目前應用非常廣泛。在第二行有提示要我們鍵入help(),其執行後的畫面如下:


由於Unicorn採用REPL (read-eval-print-loop)操作模式,中文為 讀取﹣求值﹣輸出循環,是一個簡單的,交互式的編程環境。其控制命令有5種,分別為
(1) CTRL-A:進入raw REPL模式。
(2) CTRL-B:進入正常REPL模式。
(3) CTRL-C:中斷執行中的程式。
(4) CTRL-D:軟體重置。
(5) CTRL-E:進入張貼模式。
預設值是正常REPL模式,有看到>>>符號,raw REPL則只有一個>符號,在這個模式下不會有回應值。

相關模式說明可以參考:The MicroPython Interactive Interpreter Mode (aka REPL)
在正常REPL模式下輸入:
for i in range(30):
      print(i)
就能印出0到29的整數。
for i in range(30):
      if i > 3:
            break
      print(i)
就僅能印出0到3的整數。

dir()命令可以看到目前使用到的變數值