質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • Python 3.x

    5318questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

スイッチでサーボモータを動かす

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 242

COCCOP

score 2

ラズベリーパイのGPIOを用いてスイッチを押したらはじめてサーボモータが動くソースコードが知りたいです。
色々検索しても、RUN後すぐサーボが動くようなコードばかりしかなくて困っています。
入力は一応プルダウン回路を組んで動かそうと思います。

希望としては自動/手動切替のセレクトSWで選択して
自動側にした場合、スタートスイッチを押して、はじめてサーボが1サイクル動くコードの書き方(90度いったらー90度にいって止まる的な?)
手動側にした場合、JOG運転がしたいので+側のボタンを押したら+側に動作し、ー側のボタンを押したらー側に動作するコードの書き方

とりあえずは入力されるまでサーボが動かないコードを知りたいのでわかるかたいれば教えてください。

import RPi.GPIO as GPIO
import time

 1サイクル自動化サブルーチンコード

GPIO.setmode(GPIO.BCM)
gp_out = 2
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(0.0)
servo.ChangeDutyCycle(2.0)
time.sleep(1)
GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
gp_out = 4
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(0.0)
servo.ChangeDutyCycle(6.5)
time.sleep(1)
GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
gp_out = 2
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(0.0)
servo.ChangeDutyCycle(6.0)
time.sleep(1)
GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
gp_out = 4
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(5.0)
time.sleep(1)
servo.ChangeDutyCycle(0.0)
time.sleep(1)
GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
gp_out = 3
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(0.0)
servo.ChangeDutyCycle(4.9)
time.sleep(1)
GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
gp_out = 14
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(0.0)
servo.ChangeDutyCycle(11.0)
time.sleep(1)
GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
gp_out = 4
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(0.0)
time.sleep(2)
servo.ChangeDutyCycle(7.3)
time.sleep(1)
GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
gp_out = 2
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(0.0)
servo.ChangeDutyCycle(2.5)
time.sleep(2)
GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
gp_out = 4
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(4.0)
time.sleep(2)
servo.ChangeDutyCycle(7.5)
time.sleep(0.03)
GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
gp_out = 3
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(0.2)
time.sleep(2)
servo.ChangeDutyCycle(2.5)
time.sleep(2)
GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
gp_out = 14
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(0.0)
servo.ChangeDutyCycle(5.2)
time.sleep(2)
GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
gp_out = 2
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50) 
servo.start(0.0)
servo.ChangeDutyCycle(6.0)
time.sleep(2)
GPIO.cleanup()

今、RUNを押した瞬間から1サイクル自動で動いてしまうので、とりあえずは入力の検知がONされてはじめて動くコードを知りたいのです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • 退会済みユーザー

    退会済みユーザー

    2018/01/10 22:07 編集

    3点。まず私はプロフィールにある通りソフト屋ではありません。「書いてあげる」正直理解できません、時々見かけますが皆様売り上げのために質問したり回答しているわけではありません。動かないなりにもアルゴリズムの断片や試したことの汲み取れるアウトプットができるのがエンジニアだと私は思います。最後、コードが書かれましたので私の分のマイナス評価は解除します。時間がありましたら質問の内容を確認しますし、少しでも詳しい方に見てもらえるように+1します。

    キャンセル

  • COCCOP

    2018/01/10 23:46

    正直言いますと全ては結果なのでできなければ返事はいらないです。

    キャンセル

  • 退会済みユーザー

    2018/01/12 10:34

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    raspberrypiのGPIO制御について

    raspberrypiのGPIOを用いて2つのDCモーターの制御を行うためのコードをpythonかcで書きたいです。 ソースコードは落ちてるんですが、pwmoutput.Chang

  • 解決済

    javaのマルチスレッドのカウント待ちについて

    入力されたカウントダウン秒数から、カウントダウンをするプログラムを書きました。 ここに、Threadクラスのjoinメソッドを使用して、 カウントダウン秒数から最大5秒経過まで、

  • 解決済

    pythonのエラー

    testThreadが見つからないというメッセージが出てきたのですが、どこに問題があるのでしょうか? よろしくお願いします コード #-*- coding utf-8-*-

  • 解決済

    webブラウザでled点灯用のリモコン作成

    前提・実現したいこと raspberry pi をwebブラウザから操作する用にブラウザ作成をしています。CSSでボタンを作成し、カスタマイズをしているのですが変更されません。

  • 解決済

    指定日までのカウントダウン

    指定した日をダイアログボックスに入力し、ボタンを押下すると現在から指定までのカウントダウンを行うアプリを開発したいです。 インターネットの情報を参考に作成しようとしているので

  • 解決済

    音声出力の途中で画像を更新する方法

    前提・実現したいこと Raspberry Pi3とpythonを用いて画像出力と音声出力を行っています。そしてその音声が5秒間あり、音声出力開始から3秒後に(音声を出力したまま)

  • 解決済

    Pythonのthreadingにおける、終了時の処理

    前提・実現したいこと Pythonを使って、動画や画像を表示するGUIを作っています。その中で、みなさまのご支援を頂ながらカメラの画像を取り込んで再生できるところまで来ました。

  • 解決済

    RaspberryPiで動かすPythonプログラムを強制終了した場合

    RaspberryPiで人感センサーで動きをとって、写真を映すアプリをPythonで書いて動かしています。 while Trueでずっと監視させているのですが、コントロールZで

同じタグがついた質問を見る

  • Python 3.x

    5318questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。