NUCLEO-L476RGでmicropythonを動かす

# 手順
環境はWindows10を利用しました。
基本的には、@boochowpさんの[こちらのページ](https://blog.boochow.com/article/mp-for-mbed-boards.html)を参照しながら手順通りに進めればできました。

1. 前記のページからファームウェアupy-l476disco.zipをダウンロード
1. ボードとPCをUSBケーブルで接続するとボードがSTLink Virtual COM Portとして認識される。  
  もし認識しない場合は、STMのホームページからDriverをDownloadする。(Win10はインストール不要のようです)
1. ボードのフォルダに解凍したファーム(.bin)をドラッグ＆ドロップするとソフトが書き込まれる。
1. Tera Termを立ち上げて、シリアルポートを選択接続し、設定を115200bps, 8bit ,パリティ無しに設定する。
1. 下記のコマンドを入力するとボードのLEDのON/OFFができる。

```python
>>> import pyb
>>> pyb.LED(1).on()
>>> pyb.LED(1).off()
```

![IMG_0693.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225812/69cc0495-4469-1304-a825-2ed45aac38b0.jpeg)
緑のランプをON/OFFできました。


- 四則演算もできます。

```python
>>> 1+2*3.14/2098-900
-898.997
```
- ```Ctrl+D```でリブートされました。

```python
>>>
PYB: sync filesystems
PYB: soft reboot
MicroPython v1.9.4-691-g4f25a8b-dirty on 2018-12-02; NUCLEO-L476RG with STM32L476RG
Type "help()" for more information.
>>>
```


- ```help()```で簡易マニュアルが表示されました。
 
```python
>>> help()
Welcome to MicroPython!

For online help please visit http://micropython.org/help/.

Quick overview of commands for the board:
  pyb.info()    -- print some general information
  pyb.delay(n)  -- wait for n milliseconds
  pyb.millis()  -- get number of milliseconds since hard reset
  pyb.Switch()  -- create a switch object
                   Switch methods: (), callback(f)
  pyb.LED(n)    -- create an LED object for LED n (n=1,2,3,4)
                   LED methods: on(), off(), toggle(), intensity(<n>)
  pyb.Pin(pin)  -- get a pin, eg pyb.Pin('X1')
  pyb.Pin(pin, m, [p]) -- get a pin and configure it for IO mode m, pull mode p
                   Pin methods: init(..), value([v]), high(), low()
  pyb.ExtInt(pin, m, p, callback) -- create an external interrupt object
  pyb.ADC(pin)  -- make an analog object from a pin
                   ADC methods: read(), read_timed(buf, freq)
  pyb.DAC(port) -- make a DAC object
                   DAC methods: triangle(freq), write(n), write_timed(buf, freq)
  pyb.RTC()     -- make an RTC object; methods: datetime([val])
  pyb.rng()     -- get a 30-bit hardware random number
  pyb.Servo(n)  -- create Servo object for servo n (n=1,2,3,4)
                   Servo methods: calibration(..), angle([x, [t]]), speed([x, [t]])
  pyb.Accel()   -- create an Accelerometer object
                   Accelerometer methods: x(), y(), z(), tilt(), filtered_xyz()

Pins are numbered X1-X12, X17-X22, Y1-Y12, or by their MCU name
Pin IO modes are: pyb.Pin.IN, pyb.Pin.OUT_PP, pyb.Pin.OUT_OD
Pin pull modes are: pyb.Pin.PULL_NONE, pyb.Pin.PULL_UP, pyb.Pin.PULL_DOWN
Additional serial bus objects: pyb.I2C(n), pyb.SPI(n), pyb.UART(n)

Control commands:
  CTRL-A        -- on a blank line, enter raw REPL mode
  CTRL-B        -- on a blank line, enter normal REPL mode
  CTRL-C        -- interrupt a running program
  CTRL-D        -- on a blank line, do a soft reset of the board
  CTRL-E        -- on a blank line, enter paste mode

For further help on a specific object, type help(obj)
For a list of available modules, type help('modules')
>>>
```

- ```Ctrl +E``` 貼り付けモードになります。貼り付けた後、```Ctrl+D```で貼り付けモードを終了します。

``` python
>>>
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== def foo():
===     print('This is a test to show paste mode')
===     print('Here is a second line')
=== foo()
===
This is a test to show paste mode
Here is a second line
>>>
```

- その他基本的な利用方法は[こちらのページ](https://micropython-docs-ja.readthedocs.io/ja/latest/reference/repl.html)に記載されています。