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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

2回答

888閲覧

sg90がraspberrypiを動かしたい

oinari03

総合スコア59

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2020/03/08 09:30

環境

・windows10
・raspberrypi-zero
・sg90

したいこと

単純にサーボモータを回したい

回路図(写真)

イメージ説明
接続;windows→raspi→sg90→外部電源
gpio24番とgndを接続

コード

python

1import RPi.GPIO as GPIO 2from time import sleep 3 4# PLACE 5SV_PORT = 24 6SV_FREQ = 50 # 50Hz 7SV_DUTY_OFFSET = 0.025 8SV_DUTY_RES = (2.4 - 0.5) / 20 / 180 9 10GPIO.setmode(GPIO.BCM) 11GPIO.setup(SV_PORT, GPIO.OUT) 12 13#pwm 14servo = GPIO.PWM(SV_PORT, SV_FREQ) 15servo.start(0) 16 17# roll angle function 18def set_angle(angle): 19 degree = angle + 90 20 duty = (SV_DUTY_OFFSET + SV_DUTY_RES * degree)* 100 21 print("angle=", angle,"duty=",int(duty)) 22 servo.ChangeFrequency(SV_FREQ) 23 servo.ChangeDutyCycle(duty) 24 25# actually roll 26while True: 27 try: 28 set_angle(90) 29 sleep(1) 30 31 set_angle(0) 32 sleep(1) 33 34 set_angle(-90) 35 sleep(1) 36 37 set_angle(0) 38 sleep(1) 39 except KeyboardInterrupt: 40 break 41 42GPIO.cleanup() 43

結果

('angle=', 90, 'duty=', 12) ('angle=', 0, 'duty=', 7) ('angle=', -90, 'duty=', 2) ('angle=', 0, 'duty=', 7) ('angle=', 90, 'duty=', 12) ('angle=', 0, 'duty=', 7) ('angle=', -90, 'duty=', 2) ('angle=', 0, 'duty=', 7) ('angle=', 90, 'duty=', 12) ('angle=', 0, 'duty=', 7) ('angle=', -90, 'duty=', 2) ('angle=', 0, 'duty=', 7) ('angle=', 90, 'duty=', 12)

特にエラーが出るわけではなくサーボが回りません

試したこと

・sg90を複数を持っているのでいろいろためしました。
・ky66でも試しましたがだめです。
・電力供給がたりないと思い外部電源もつなげましたがだめでした
参考にした記事
こちら

解決したいこと

コードのレビューまたは、回路図の指摘をしていただいて、サーボが回るよなアドバイスをしてほしいです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

サーボモータに必要な抵抗が5kΩでした。

投稿2020/03/24 11:23

oinari03

総合スコア59

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2020/03/24 11:39

通常サーボモータに抵抗は必要じゃありませんが、どこの抵抗の話ですか?
oinari03

2020/03/25 06:10

制御線とラズパイをつなぐところに5kΩの抵抗をつなぎました。その結果、ネットに上がっているようなサンプルコードはどれも動きました。このとき、自分の書いたコードでも動いたので抵抗が問題だったと推測しています。また、1kΩでも動きませんでした。
oinari03

2020/03/25 06:12

自分の知識と考えが足りず、このような試行錯誤の末の結果ですので、納得いくような答えがでずに申し訳ありません。
thkana

2020/03/25 13:14

ちゃんとした説明を探しておいたほうがいいような気がするなぁ...
guest

0

GPIO.setmode(GPIO.BCM)

GPIO.setmode(GPIO.BOARD)
との違いは大丈夫ですか?


てもとのRaspberry Pi2BとSG90で動かしてみましたが、とりあえず動きます。(サーボの電源はRaspberry Piの5V=USBから)

となると、ブレッドボードのフラットケーブルの圧着不具合とかを疑うことになるかと思います。

  • 24ピンでLED点滅などを試してみる(ちゃんと繋がっているか?)
  • 他のピンに置き換えて試してみる

ではどうなるでしょう?

(実はRaspberry Piでサーボ動かしてみたのは初めてなのですが、噂?通りにピタリ止まらないですね。Linuxでソフト制御の限界か)

投稿2020/03/08 11:39

編集2020/03/08 23:49
thkana

総合スコア7703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oinari03

2020/03/08 12:50

違いをあまり認識していなくて、ちがいによって変わるんでしょうか。書き換えてみます。
oinari03

2020/03/08 13:06

書き換えてみましたが、変化がえられず、サーボモータも動きませんでした。
thkana

2020/03/08 13:44

大丈夫ですか、というのは意味もわからずに書き換えてみろ、ということじゃないんですけれど... サーボの制御ピンはどこに繋いでいますか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問