pdf-icon

UnitV2 Jupyter Notebookの開発

ドライバーのインストール

使用中のOSに基づいて、適切なSR9900ドライバーをダウンロードしてください。

Windows10

ドライバーの圧縮ファイルをデスクトップに解凍->デバイスマネージャー中の未認識のデバイス(名称はUSB 10/100 LANまたはSR9900文字を含む)を選択->右クリックでカスタム更新を選択->解凍した圧縮ファイルのパスを選択->確認をクリックし、更新を待ちます。

MacOS

ドライバーの圧縮ファイルを解凍->SR9900_v1.x.pkgファイルをダブルクリックして開く->提示に従って次へをクリックしてインストールを開始。(圧縮包内には詳細版のドライバーのインストール手順pdfが含まれています)

  • インストールが完了した後、NICが正常に起動できない場合は、ターミナルを開き、下記のコマンドを入力してNICを再起動できます。
sudo ifconfig en10 down
sudo ifconfig en10 up

デバイス接続

USBを接続して電源を供給すると、UnitV2は自動的に起動します。電源指示灯は赤と白の表示を繰り返し、起動が完了した後は消灯します。UnitV2の出荷時のLinuxイメージは、多種多様の基礎外設と開発ツールを統合し、ユーザは内蔵のJupyter Notebookを用いて開発を行うか、SSHを通じてデバイスに直接アクセスしてプログラムファイルを編集、実行することができます。UnitV2とネットワーク接続を確立するには、下記の2つの接続方法があります。

  • Ethernetモード接続: UnitV2は有線NICを内蔵し、TypeCインタフェースをPCに接続すると、UnitV2と自動的にネットワーク接続が確立されます。

  • APモード接続: UnitV2起動後、既定のAPホットスポット(SSID: M5UV2_XXX: PWD:12345678)を開設し、ユーザはWiFiを通じてUnitV2とネットワーク接続を確立することができます。

Jupyter Notebook

UnitV2の出荷時LinuxイメージはJupyter Notebook開発デバッグツールを統合し、Jupyter Notebookはウェブ形式の開発ツールで、ユーザはウェブページ上直接にコードを編集と実行することができます。プログラミングの過程中に説明書を記述する必要がある場合は、同じページ上直接に記述することができ、即時の説明と解釈を容易に行うことができます。デバイスのオンライン運行デバッグに非常に便利です。 Jupyter Notebookの公式ウェブサイトを訪問して詳細を確認 。本チュートリアルでは、Jupyter Notebookを用いていくつかの単純なサンプルプログラムを編集と実行し、UnitV2上の基礎外設ハードウェアの制御方法を紹介します。UnitV2はPython 3.8と共にJupyter Notebookを運行し、Pythonのすべての高度な特性と構文糖をサポートします!

PCとUnitV2の接続が確立後、ブラウザを通じて域名unitv2.pyまたはIP:10.254.239.1を訪問し、認識機能のプレビューページを開く->右上の設定ボタンをクリック->Jupyter Notebookに切り替え、ページの提示に従ってリフレッシュを行います。

Jupyter Notebookのページに入力すると、ファイルシステム中に01-Introduction to M5Stack UnitV2.ipynbプログラムファイルが内蔵されています。该文件は基礎外設ハード

プログラムのコメントに沿ってプログラムを選択し、上部の実行ボタンをクリックして、オンラインデバッグ機器を体験してください。

サンプルプログラム

LED


import time

def control_white_led(value):
    open('/sys/class/gpio/export', 'w').write('0') # Export the GPIO0
    open('/sys/class/gpio/gpio0/direction', 'w').write('out') # Set the direction of the GPIO
    open('/sys/class/gpio/gpio0/value', 'w').write(str(value)) # Set the calute, '1' or '0'
    
def control_red_led(value):
    open('/sys/class/gpio/export', 'w').write('1') # Export the GPIO0
    open('/sys/class/gpio/gpio1/direction', 'w').write('out') # Set the direction of the GPIO
    open('/sys/class/gpio/gpio1/value', 'w').write(str(value)) # Set the calute, '1' or '0'


for i in range(10):
    control_white_led(0)
    time.sleep(0.5)
    control_white_led(1)
    time.sleep(0.5)

Microphone


import subprocess
import audioop
import time

audio_cmd = ['arecord', '-D', 'plughw:0', '-f', 'S16_LE', '-c', '1', '-r', '48000', '-t', 'raw', '-q', '-']
audio_source = subprocess.Popen(audio_cmd, stdout=subprocess.PIPE)

while True:
    audio_source.stdout.flush()
    data = audio_source.stdout.read(512)
    rms = audioop.rms(data, 2)
    print(rms)
    time.sleep(0.1)
  • コマンドラインで次のコマンドを実行し、音声を録音してファイルに保存してください。

arecord -d 20 -r 48000 -c 2 -f S16_LE audio.wav

UART


import serial

# Open the serial port, and set the baudrate to 115200
uart_grove = serial.Serial('/dev/ttyS1', 115200, timeout=0.5)

# Send Something
uart_grove.write('hello'.encode('utf-8')) 
# encode is for converting the string to bytes, or you can directly send bytes
uart_grove.write(b'hello') 


# Receive soemthing
x = uart_grove.read()          # read one byte
s = uart_grove.read(10)        # read up to ten bytes (timeout)
line = uart_grove.readline()   # read a '/n' terminated line

Camera

M5Stack UnitV2の内蔵カメラは /dev/video0 にあります。静止画像フレームをキャプチャしてみることができます。


import cv2

camera = cv2.VideoCapture(0)
ret, frame = camera.read()

if ret:
    print('Capture Successful!')
else:
    print('OOps, we get some trouble!')

matplotlibライブラリを使用して、Jupyter notebookのページ上に画像を表示します。


from matplotlib import pyplot as plt

# Magic to tell matplotlib display the image in jupyter notebook
%matplotlib inline 

# Let show the image! 
plt.imshow(frame)

OpenCVで使用するBGRをRGBに変換し、matplotlibで正常な色の画像を表示します。

# Convert from BGR to RGB
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

plt.imshow(frame_rgb)

灰階調に変換してみる

# Convert from BGR to RGB
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# We need to tell matplotlib it is a grey image. You can try to change to other cmap, refer here: https://matplotlib.org/stable/tutorials/colors/colormaps.html
plt.imshow(frame_gray, cmap='gray') 

撮影し、画像を保存

import cv2
camera = cv2.VideoCapture(0)
ret, frame = camera.read()

if ret:
    print('Capture Successful!')
    cv2.imwrite('test2.png',frame)
else:
    print('OOps, we get some trouble!')

SSHログイン

コマンドラインターミナルを開き、下記の指令を入力し、デフォルトのパスワードを入力して、デバイスにsshでアクセスしてください。


ssh m5stack@10.254.239.1 

//user: m5stack
//pwd: 12345678


//user: root
//pwd: 7d219bec161177ba75689e71edc1835422b87be17bf92c3ff527b35052bf7d1f

ユーザのデフォルトディレクトリ構造


//存储Jupyter Notebook中编辑的文件
/home/notebook

//存储识别功能服务文件资源,和一些模型文件
/home/m5stack 

OpenCVの関連チュートリアル

On This Page