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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Raspberry Pi

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4814閲覧

raspberrypiのGPIO制御について

wayaya

総合スコア30

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Raspberry Pi

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2014/12/14 12:38

raspberrypiのGPIOを用いて2つのDCモーターの制御を行うためのコードをpythonかcで書きたいです。
ソースコードは落ちてるんですが、pwmoutput.ChangeDutyCycle等の関数の使い方、前提となるおまじないが詳しくのってるサイト、書籍はありますか?

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

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

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

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

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

mt08

2016/08/09 17:15

"2つのDCモーターの制御を行う"というのだけだと、漠然としてるので、 - どういったハードウェア構成か(どんなモータ、モータドライバを使うか) - どういうPWMの制御信号が必要か、(nn Hzで、Dutyいくついくつなど) - 具体的な用途 などあると、回答してくれる方もアドバイスしやすいのでは、思います。
guest

回答1

0

ベストアンサー

Raspberry PiでGPIO 関連のURLは、下記が役に立ちそうですね。

※私はRaspberry Piもっていませんので、詳しい回答ができずにすみません。

最初から書かれているので、とてもいい資料です。
https://tool-lab.com/make-course/raspberrypi/

疑似的にアナログ信号を出力する方法が良く書かれています。今回は、ここが
役にたつかもしれません。
http://ag.hatenablog.com/entry/2015/07/31/013013

擬似的なアナログ出力 (PWM)
Raspberry Pi はアナログ出力できません。PWM (Pulse Width Modulation) で擬似的にアナログ出力します。

python

1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3import RPi.GPIO as GPIO 4import time 5 6# 初期設定 7GPIO.setmode(GPIO.BCM) 8 9# GPIO 14 を出力に設定 10GPIO.setup(14, GPIO.OUT) 11 12# PWM 設定 13freq = 50 # Hz (PWM のパルスを一秒間に 50 個生成) 14duty = 0.0 # デューティー比 0.0 で出力開始 (パルス内に占める HIGH 状態の時間が 0.0 %) 15pwm = GPIO.PWM(14, freq) 16pwm.start(duty) 17 18try: 19 # デューティー比 (duty cycle) を 0..100 の範囲で変化 (Ctrl-C 待ち) 20 while True: 21 duty = (duty + 1) % 101 22 print "%s GPIO 14 duty cycle %d%%" % (time.strftime("%Y/%m/%d %H:%M:%S"), duty) 23 pwm.ChangeDutyCycle(duty) 24 time.sleep(0.1) 25except: 26 print "interrupted" 27finally: 28 # 後片付け 29 pwm.stop() 30 GPIO.cleanup()

投稿2016/11/13 12:57

nagaetty

総合スコア1106

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問