プログラミング

LEGOの呼吸 壱ノ型 EV3発動機駆動

こんにちは、HiROYUKIです。
LEGO EV3をPythonプログラミングで動くように
勉強をはじめて間もない、超初心者です。

また、漫画『鬼滅の刃』が最終回しましたね。
とてもすばらしい作品で未だ悲しみが癒えておりませんが、
今回もたのしくLEGOを作り続けます!
※『鬼滅の刃』は、本編に関係ありません。

LEGOやロボットが大好きだ!

Pythonに挑戦してみたい!

この記事はこんな人にオススメです!

・LEGOがとっても好き!
・Pythonプログラミング初心者。
・IoTに興味がある。


LEGO MINDSTORMS EV3は、2013年9月に発売されてから
約7年が経過するロングセラーのプログラミングロボットです。

対応プログラミング言語は、LEGO Educationが提供する専用ソフトや、
Scratchなどビジュアルコードでプログラミングができる他、
C、C++、Java、そしてAIによる画像分析などでも良く使われる
Pythonにも対応しています。

冒頭でも述べていますが、私はプログラミング超初心者です。
Pythonは、大好きなLEGOロボットを動かす(自立型)事ができるだけでなく
多くのシーンで今もっとも注目される人気の言語です。

また、デスクトップアプリやスマホアプリ作成、データ処理や
ブログ、Twitterなども自動投稿ができるようになったりもするようです。
とにかく覚えて損のない言語のようです。

僕のような未来の仕事が不安定な非正規社員には、
今後転職や起業するにも、とても役に立つ技術なのです。

今回は、Pythonプログラミングでモーターを動かし
超音波センサーでモーターの動作制御の方法を記載します。

僕のようなプログラミングを初めて間もない方にとって
一緒に成長できるブログになる事を祈ります。

LEGO Pythonプログラミング実施方法

LEGOのPythonプログラミングに関する参考資料を
WEBでは、まだほとんど資料がありません。
できるだけ、お金はかけたくありませんが、やはり頼りになるのは
売っている参考書です。

これからのロボットプログラミング入門 Pythonで動かすMINDSTORMS EV3 (KS情報科学専門書)

<参考元>Amazon

僕は、WindowsのPCにMicrosoft Visual Studio Codeをインストールして
環境構築しました。

<環境構築に必要なモノ>
・パソコン(Windows、Macどちらも大丈夫)
・マイクロSDカード(8ギガ以上32ギガ未満)

<環境構築方法>
LEGO Educationサイト

肝心な動作させるロボットは、自動車タイプのロボットを
とりあえず、動くようにだけしてみました。

EV3のマイコンに接続したモーターはポートB(左側)、ポートC(右側)に
2つ接続しました。
また、超音波センサーをポート1に接続しています。

以下のサンプルプログラムを環境構築した
MicrosoftのVisual Studio Codeで書いて、動作確認をしました。

サンプルプログラム

#!/usr/bin/env pybricks-micropython
from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor, TouchSensor, UltrasonicSensor,
from pybricks.parameters import Port, ImageFile, SoundFile
from pybricks.tools import wait, StopWatch
from pybricks.robotics import DriveBase
ultrasonic_sensor = UltrasonicSensor(Port.S1)
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)
robot = DriveBase(left_motor, right_motor, 50, 360)
robot.drive(100, 0)
while True:
    if ultrasonic_sensor.distance() < 50 :
        break
robot.stop(Stop.BRAKE)


上記サンプルプログラムは、左右のモーターが前進して動くのですが
ポート1に接続された超音波センサーに5センチ以内に障害物など
検知することで、左右のモーターの動作を停止させるプログラミングです。

作成動画

実際に作って気づいたことは、Pythonは普通の英語の文法や
簡単な英単語がわかれば、理解しやすいというところ。

モーター動作の出力パワーの加減や、センサー距離などの
微調整については、上記サンプルプログラムのパラメーターが
どこにあるか、実践しながら試していただくことで、理解が深まるはずなので
詳細は、あえて記載しませんが、参考書には詳しく記載されています。

今後もいろいろとPythonとLEGOに注目したプログラミングやIoTに関する
情報をこのブログから発信していきたいと思います。
こちらの作品に興味を持っていただけましたら、参考にしてみてください。

-プログラミング

Copyright © 2021 block × TECH , All Rights Reserved.