LEGO MINDSTORMS Education EV3 + MicroPython: 子供向けの組み立てセットを大人の言語でプログラミングする

こんにちは、ハブ!私たちはすでに 言った LEGO MINDSTORMS Education EV3 プラットフォームについて。このプラットフォームの主な目標は、実践的な例を通して学び、STEAM スキルを開発し、エンジニアリング思考を形成することです。力学や動力学を研究する実験室での作業に使用できます。 LEGO ブロックで作られた実験台と、データを記録および処理するためのユーティリティにより、実験がさらに面白く視覚的に表現され、子どもたちが物理学をよりよく理解できるようになります。たとえば、小学生は融点データを収集し、アプリを使用してデータを整理し、グラフとして提示することができます。しかし、これはほんの始まりに過ぎません。今日は、このキットを MicroPython プログラミング環境で拡張し、ロボット工学の指導に使用する方法を紹介します。

LEGO MINDSTORMS Education EV3 + MicroPython: 子供向けの組み立てセットを大人の言語でプログラミングする

EV3でプログラミングを学ぶ

現代の小学生はカラフルな結果を見たいと思っています。はい、プログラムがコンソールに数字を出力するだけでは飽きてしまい、カラフルなグラフやチャートを見たり、コマンドに従って動く本物のロボットを作りたがります。通常のコードも子供には複雑すぎると思われるので、もっと簡単なものから学習を始めるのが良いでしょう。

EV3 の基本プログラミング環境は LabVIEW グラフィカル言語に基づいており、ロボットのアルゴリズムを視覚的に設定できます。コマンドは、ドラッグして接続できるブロックとして表示されます。

LEGO MINDSTORMS Education EV3 + MicroPython: 子供向けの組み立てセットを大人の言語でプログラミングする

この方法は、アルゴリズムの構築方法を示す必要がある場合には有効ですが、ブロックの数が多いプログラムには適していません。シナリオが複雑になるにつれて、コードを使用したプログラミングに進む必要がありますが、このステップは子供にとって困難です。 

ここにはいくつかのトリックがありますが、そのうちの 3 つは、コードがブロックと同じことを実行することを示すことです。 EVXNUMX 環境では、MicroPython との統合によりこれが可能になります。子供たちは、基本的なブロックベースのプログラミング環境と Microsoft の Visual Studio Code の Python で同じプログラムを作成します。どちらの方法も同じように機能しますが、複雑な問題を解決するにはコードの方が便利であることがわかります。

MicroPythonへの切り替え

EV3 環境は ARM9 プロセッサ上に構築されており、開発者は意図的にアーキテクチャをオープンのままにしています。このソリューションにより、代替ファームウェアを展開できるようになりました。その 3 つは、MicroPython で作業するためのイメージでした。 Python を使用して EVXNUMX をプログラムできるため、キットでの作業がさらに実際のタスクに近くなります。 

作業を開始するには、ダウンロードする必要があります EV3 MicroPython イメージ 任意の microSD カードにコピーし、EV3 ブリックに挿入して電源を入れます。次にインストールする必要があります 無料延長 Visual Studio 用。そして仕事に取り掛かることができます。 

MycroPython で最初のロボットをプログラミングする

LEGO MINDSTORMS Education EV3 + MicroPython: 子供向けの組み立てセットを大人の言語でプログラミングする

私たちの オンライン ロボット工学の基本的な概念を習得するためのレッスンがいくつかあります。 EV3 モデルは、自動運転車、工場組み立てロボット、CNC マシンで使用される基礎を子供たちに紹介します。 

パターンや幾何学的図形を描くように教えることができる描画マシンを例に挙げます。このケースは、大人向けのロボット溶接機やフライス盤の簡略版であり、EV3 を MicroPython と組み合わせて使用​​して小学生に教える方法を示しています。また、描画機はお父さんのためにプリント基板に穴を開けることもできますが、それは数学的な計算を必要とする別のレベルです。

仕事には、次のものが必要です。

  • LEGO MINDSTORMS Education EV3 基本セット; 
  • 大きな方眼紙。
  • 色付きのマーカー。 

ロボット自体の組み立ては 説明書プログラミングの例を見てみましょう。

まず、EV3 ブリック ライブラリを初期化します。

#!/usr/bin/env pybricks-micropython
from pybricks import ev3brick as brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Color, ImageFile
from pybricks.tools import wait

ポートBにハンドルを回転させるプラットフォームをモーターとして設置します。20段ギア変速機のギア比をそれぞれ歯数12-28-XNUMXに設定しました。

turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])

ハンドルの昇降機構をポート C のモーターとして設定します。

seesaw_motor = Motor(Port.C)

ポート 2 にスティックの傾斜角度を測定するジャイロスコープをセットアップします。

gyro_sensor = GyroSensor(Port.S2)

ポート 3 にカラー センサーを設置します。このセンサーは、描画機の下の白い紙を検出するために使用されます。

color_sensor = ColorSensor(Port.S3)

ポート 4 にタッチ センサーを設定します。センサーが押されるとロボットは描画を開始します。

touch_sensor = TouchSensor(Port.S4)

ハンドルを上げ下げする関数を定義します。

def pen_holder_raise():
  seesaw_motor.run_target(50, 25, Stop.HOLD)
  wait(1000)

def pen_holder_lower():
  seesaw_motor.run_target(50, 0, Stop.HOLD)
  wait(1000)

ハンドルを指定された角度または特定の角度まで回転させる関数を定義します。

def pen_holder_turn_to(target_angle):
  if target_angle > gyro_sensor.angle():

目標角度が現在のジャイロセンサー角度より大きい場合は、正の速度で時計回りに移動し続けます。

    turntable_motor.run(70)
	
while gyro_sensor.angle() < target_angle:
  	
pass
  elif target_angle < gyro_sensor.angle():

目標角度が現在のジャイロセンサー角度より小さい場合は、反時計回りに移動します。

    turntable_motor.run(-70)
	
while gyro_sensor.angle() > target_angle:
  	
pass

目標角度に達したら回転プラットフォームを停止します。

  turntable_motor.stop(Stop.BRAKE)

ハンドルの初期位置を上の位置に設定します。

pen_holder_raise()

ここで、プログラムの主要部分である無限ループが始まります。まず、EV3 はカラー センサーが白い紙または青いスタート スクエアを検出し、タッチ センサーが押されるのを待ちます。次にパターンを描き、開始位置に戻ってすべてをもう一度繰り返します。

デバイスの準備ができていない場合、コントローラーの LED が赤くなり、LCD 画面に「親指を下に向けた状態」のアイコンが表示されます。

while True:
  brick.light(Color.RED)
  brick.display.image(ImageFile.THUMBS_DOWN)

カラーセンサーが青または白を読み取るまで待機し、LED の色を緑に設定し、LCD 画面に「親指を立てた」画像を表示して、デバイスが操作の準備ができていることを報告します。

  while color_sensor.color() not in (Color.BLUE, Color.WHITE):
	
wait(10)
  brick.light(Color.GREEN)
  brick.display.image(ImageFile.THUMBS_UP)

タッチ センサーが押されるのを待ち、ジャイロ センサーに角度値 0 を割り当てて描画を開始します。

  while not touch_sensor.pressed():
	
wait(10)
  gyro_sensor.reset_angle(0)
  pen_holder_turn_to(15)
  pen_holder_lower()
  pen_holder_turn_to(30)
  pen_holder_raise()
  pen_holder_turn_to(45)
  pen_holder_lower()
  pen_holder_turn_to(60)

ペンホルダーを持ち上げて元の位置に戻します。

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

これは私たちが入手したシンプルなプログラムです。そして今、私たちはそれを起動し、ロボット製図工が動作している様子を見てみましょう。 

このような例は何を示しているのでしょうか?

LEGO MINDSTORMS Education EV3 + MicroPython: 子供向けの組み立てセットを大人の言語でプログラミングする

EV3 は、STEM キャリアのためのキャリア ガイダンス ツールであり、エンジニアリングへの入り口です。実用的な問題を解決できるため、子どもたちは技術開発や産業用ロボットの作成の経験を積み、実際の状況をモデル化すること、プログラムを理解してアルゴリズムを分析すること、基本的なプログラミング構造を習得することを学びます。

MicroPython のサポートにより、EV3 プラットフォームは高校教育に適したものになります。学生は、最も人気のある現代言語の 3 つでプログラマーとしての自分を試し、プログラミングやエンジニアリング設計に関連する職業について知ることができます。 EVXNUMX キットは、コーディングが怖いものではないことを示し、子供たちに本格的なエンジニアリングの課題に備えさせ、技術的な専門分野の習得に向けた第一歩を踏み出す手助けをします。そして、学校に勤務し教育に携わる方々のために、私たちは レッスンプログラム および教材。特定のタスクを実行するときにどのようなスキルが開発されるか、また習得したスキルが学習基準とどのように関連しているかを詳細に説明します。

出所: habr.com

DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster