0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[ev3dev×Python] 単一モーターの制御

Last updated at Posted at 2020-06-15

この記事はPythonでev3を操作してみたい人のための記事です。
今回はLモーターとMモーターをそれぞれ制御していきたいと思います。

#目次
0 . 用意するもの
1 . Lモーターの制御
2 . Mモーターの制御
3 . プログラムの実行について

#0.用意するもの
◯ ev3(インテリジェントブロック)
◯ Lモーター/Mモーター
◯ パソコン(VSCode)
◯ bluetooth
◯ microSD
資料(これをみながら進めていくのがオススメです。)
 

#1.Lモーターの制御

####1-0 . Lモーターをずっと回転させるプログラム

lmotor00.py
#!/usr/bin/env python3

#必要なものだけをimportする。
from ev3dev2.motor import LargeMotor, OUTPUT_A

#インスタンスの生成
L_A = LargeMotor(OUTPUT_A)

#無限ループ
while True:
    #スピード50で、ずっと回転させる
    L_A.on(50)

Point : #!からはじまる1行目はプログラムをインテリジェントブロックから実行するために必要なので、全てのプログラムに書く必要があります。
※シバンについて詳しく知りたい方はこちらの記事がわかりやすいのでみてみてください。

Point : プログラムを終了する方法
① VSCodeの画面上部に出てくるオレンジ色の四角い停止ボタンを押す
 or
② インテリジェントブロックの左上のボタンを押す

Point : MINDSTORMSでプログラムすると下のようになります。
スクリーンショット 2020-06-15 18.41.03.png

####1-1 . Lモーターを一定時間回転させるプログラム

lmotor01.py
#!/usr/bin/env python3
#必要なものだけをimportする。
from ev3dev2.motor import LargeMotor, OUTPUT_A

#インスタンスの生成
L_A = LargeMotor(OUTPUT_A)

#3秒間回転させる
L_A.on_for_seconds(50,3)

Point : この場合、50のスピードで3秒間回転して止まる

Point : on_for_seconds(speed, seconds, brake=True, block=True)
指定した秒数回転させる

Point : on_for_seconds(スピード,秒数,~~)などは関数といいます。
関数は、()のなかの情報を使って決められた出力をする出力装置のようなものです。
この場合はev3devが用意してくれた関数をそのルールに従いながら使っています。

Point : MINDSTORMSでプログラムすると下のようになります。
スクリーンショット 2020-06-15 20.16.50.png

####1-2 . Lモーターを一定角度回転させるプログラム

lmotor02.py
#!/usr/bin/env python3

#必要なものだけをimportする
from ev3dev2.motor import LargeMotor, OUTPUT_A

#インスタンスの生成
L_A = LargeMotor(OUTPUT_A)
#モーターを1080度回転させる
L_A.on_for_degrees(50,1080)

Point : この場合、50のスピードで1080度回転して止まる

Point : on_for_degrees(speed, degrees, brake=True, block=True)
指定した角度回転する

Point : MINDSTORMSでプログラムすると下のようになります。
スクリーンショット 2020-06-15 20.29.16.png

####1-3 . Lモーターを一定数回転させるプログラム

lmotor03.py
#!/usr/bin/env python3

#必要なものだけをimportする
from ev3dev2.motor import LargeMotor, OUTPUT_A
#インスタンスを生成する
L_A = LargeMotor(OUTPUT_A)
#5回転する
L_A.on_for_rotations(50,5)

Point : この場合、50のスピードで5回転して止まる

Point : on_for_rotations(speed, rotations, brake=True, block=True)
指定した回数回転する

Point : MINDSTORMSでプログラムすると下のようになります。
スクリーンショット 2020-06-15 20.37.15.png

#2.Mモーターの制御

import するのが MediumMotor に変わるだけです。
on_for_rotaions()などの関数もLモーターの時と同様に使えます。

####2-0.Mモーターをずっと回転させるプログラム

mmotor00.py
#!/usr/bin/env python3

#必要なものだけをimportする
from ev3dev2.motor import MediumMotor, OUTPUT_A
#インスタンスの生成
m_A = MediumMotor(OUTPUT_A)
#無限ループ
while True:
    #ずっと回転させる
    m_A.on(50)

Point : while〜: は繰り返しの処理をする時に使います。
while True: は「真の間ずっと〜する」 といういわゆる 無限ループです。

Point : Pythonではブロック処理はインデント(字下げ)で指定します。
詳しく知りたい方はこちらの記事がわかりやすいのでみてみてください!

Point : インスタンス
この場合の m_A をプログラムではインスタンスといいます。
m_A = MediumMotor(OUTPUT_A) を、インスタンスの生成といいます。

インスタンスについての参考記事
[Python入門]クラスの基礎知識

 
Point : MINDSTORMSでプログラムすると下のようになります。
スクリーンショット 2020-06-15 18.04.27.png

#3.プログラムの実行について

もしやり方を忘れてしまったら、前回書いた記事を参照してください!

#最後に

読んで頂きありがとうございました!!
次回は複数のモーターの制御について書いていきたいと思います!

より良い記事にしていきたいので
 ◯こうした方がわかりやすい
 ◯ここがわかりにくい
 ◯ここが間違っている
 ◯ここをもっと説明して欲しい
などの御意見、御指摘のほどよろしくお願い致します。

0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?