0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kazuedaの活動記録2024Advent Calendar 2024

Day 8

LinuxボードMilk-V Duo上でpythonブロックプログラミング

Last updated at Posted at 2024-12-07

はじめに

 Scratchなどでよく知られるブロックプログラミング環境で用いられる言語には、独自のものが多く、汎用性の高い言語としてArduino IDEで利用される言語が多いようです。
 Pythonのプログラミングをブロックプログラミングで行う環境は、私の調べた限りでは、今回紹介する「Mind+」やMicroPythonを利用するM5Stack用の「uiflow」があります。
 ここでは、安価に入手可能なLinuxボードのMilk-v DuoとMind+との組み合わせでつくる、Pythonブロックプログラミング環境を紹介します。本稿で使用するMilk-v Duoの環境は、「Buildrootでsftpサーバーをビルド」で紹介した、sftpサーバー搭載の環境です。事前に環境構築を行ってください。

 本稿には、「Unagi.py 勉強会57枚目@スイーツバンク」の発表内容を含みます。

Milk-V Duo

 このボードには、CVTEK CB1800BというRisc-vのCPUが搭載されており、RAMは64MB、外部記憶としてマイクロSDカードを利用することが可能です。

image.png

 有線LANのコネクタのついたボードを追加することで、10/100 Mbpsでイーサーネットに接続可能です。 
以下の特徴があります。
・コミュニィティ主体で展開
・情報の鮮度が短い(すぐ、自動でパッチが当てられなくなる、ソースへのマージを待つ方が時間の節約)。
・情報の主な言語が中国語(ソフトはBaidu、ハードはOshwhub、利用にはWeChatのIDが必要)
・Raspberry pi (pico)の情報や周辺機器を転用可能
・オープンハードウェアとオープンソフトウェア
・Linuxのリソース
・pinpongライブラリを介してPythonで制御

Mind+

 ブロックプログラミング環境のMind+のデスクトップ画面です。

image.png

 以下に示すように、中央部分にブロックプログラミング部分があり、そのPythonソースファイルが右上部分に表示されます。Linuxボードとの通信はシェルに表示され、その表示は画面右下に表示されます。
image.png

今回構築したシステム

 Milk-v DuoのLinuxボードにLCDと気温・湿度センサを接続したLinuxサーバーと、Mind+の動作するGUIマシンとは、USBケーブルで接続されています。
image.png

  GUIマシンからLinuxサーバー側は、RNDIS接続されており、TCP/IPで通信します。サーバー上でのプログラムの動作は以下の様になります。

  1. デスクトップマシン上でプログラミング
  2. サーバーにプログラムを転送
  3. サーバー上でプログラムを実行
  4. 実行結果が、サーバー上のディスプレイに表示
    Linuxサーバー側には、以下の機能があります。
    ・SSHサーバー
    ・Sftpサーバー
    ・Pythonで制御できるGPIO端子
    ・RNDIS(あるいはEthernet)
    GUIマシンとして、Windows、MacOS、デスクトップ環境のあるLinuxマシンが利用可能です。

Linuxサーバー側の設定

MIND+との間のファイル転送に必要な設定を行います。
Rootでファイル転送することが前提になっています。
Mind+は、Linuxサーバーの特定のディレクトリにプログラムを転送します。特定のディレクトリである
“/usr/local/lib/python3.7/dist-packages”
を作成します。
あるいはPython3.7をインストールします。上記のディレクトリは、Pythonインストール時に作成されます。

おわりに

 ここまでの設定で、GPIO搭載の安価なLinuxボード「Milk-V Duo」用のPythonプログラムをビジュアルプログラム「Mind+」で実現することができました。
 今回の説明は、USB接続経由でRNDISが利用可能で、ROOTでsftpファイル転送可能なLinuxボードなら適用可能です。
 例えば、Raspberry pi zeroシリーズにも適用可能です。
 また、PythonのプログラムはLinuxサーバー側に保存されます。サーバー起動時に、保存されているPythonプログラムを起動できるよう設定しておくと、GUIマシン無しで動作の実演が可能です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?