ありぎりす の徒然日記

アクセスカウンタ

zoom RSS RaspberryPiで鉄道模型を動かしてみる その1

<<   作成日時 : 2016/07/17 16:27   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 1 / トラックバック 0 / コメント 0

RaspberriPi とゆうのは名刺サイズの超小型コンピュータのことです。

ありぎりす はこの春ころに Rasoberry Pi2 Model B を購入
いろいろ弄くりまわして遊んでました。
画像


で、
 『ラズパイを使って鉄道模型を動かしてみよう』
と思い立ったですよ。

このブログでは、その過程を失敗も含めて
書き留めてみようと思います。 (^-^;

まずは下準備:
OS(Raspbian)のインストールや日本語表示設定、
インターネット接続などは、他所に譲るとして、
ここでは、C言語でラズパイの入出力信号を
制御するための準備から話を始めます。

ラズパイで電子工作をする場合、どちらかとゆうと
Python(パイソン)とゆう言語を使うのが
一般的らしいのですが、いまさら新しいプログラミング言語
を覚えるのも面倒なので、なんとかC言語でやろうと思います。

で、ラズパイではC言語で入出力信号を制御する
ライブラリー関数群(wiringPi)のソースプログラムが
提供されています。

では、ネットから”wiringPi”を入手しましょう。
コンソールターミナルから

$ git clone git://git.drogon.net/wiringPi

するとホームディレクトリの下に”wiringPi”とゆうディレクトリが作られて
そこにソースプログラムが収められます。
つぎに、以下のように入力して、ソースをコンパイルして
オブジェクトファイルを作成します。

$ cd wiringPi
$ ./build


Lチカ:
それでは、実際にC言語プログラムでデジタル信号を出力してみましょう。

電子工作では定番、LEDを点滅させる(Lチカ)をやってみましょう。

で、以下のようなテストプログラムを作ってみました。
ファイル名は”ledtest.c”です。


#include <stdio.h>
#include <wiringPi.h>

#define GPIO19 19

int main(void) {
 int i;

 if(wiringPiSetupGpio() == -1) return 1;

 pinMode(GPIO19, OUTPUT);

 for(i=0; i<10; i++){
  digitalWrite(GPIO19, 0);
  delay(950);
  digitalWrite(GPIO19, 1);
  delay(50);
 }

 digitalWrite(GPIO19, 0);

 return 0;
}


ポイントは、
 wiringPi.h
とゆうヘッダファイルをインクルードすること、
それと、
 wiringPiSetupGpio()
 pinMode()
 digitalWrite()

は、wiringPi が提供するライブラリ関数です。

このプログラムをコンパイル、リンクして
実行ファイル(ledtest)を作ります。
$ gcc -o ledtest ledtest.c -I/usr/local/include -L/usr/local/lib -lwiringPi

 -lwiringPi
でwiringPiライブラリをリンクしているのがミソです。

これで実行ファイル、ledtest ができます。

このプログラムを実行する前に、
ラズパイにLEDをつなげましょう。
画像


GPIO19  -------|330Ω|----
             |
           ------
           |LED|
           ------
            |
GND  ---------------------

注意する点は、LEDには極性があるとゆうこと。
+、ーを間違えないように注意しましょう。

あと、電流が流れ過ぎないように抵抗を加えます。
LEDによりますが、流せる電流は20〜30mAくらいでしょうか。
で、ラズパイのGPIO出力は3.3Vなので、オームの法則から
 3.3/(20/1000) = 165Ω
165Ω以上の抵抗なら過電流でLEDを壊すことはないでしょう。
とゆうことで、今回は手持ちの330Ωを使用しました。

これで、ledtestを実行します。
$ sudo ./ledtest
すると・・・LEDが点滅しました。 ヽ(´▽`)ノ
画像


sudo とゆうのは、スーパーユーザー(管理者)権限で
プログラムを実行する、とゆうことです。

外部への入出力を利用するので、これが必要になるのです。

今回はここまで。
次回は車両を動かしましょう。


関連ブログ一覧:

 『RaspberryPiで鉄道模型を動かしてみる その1
   まずは下準備 』


 『RaspberryPiで鉄道模型を動かしてみる その2
   車両を動かす(ON/OFF制御) 』


 『RaspberryPiで鉄道模型を動かしてみる その3
   PWMで速度制御 』


 『RaspberryPiで鉄道模型を動かしてみる その4
   DACで速度制御その1 』


 『RaspberryPiで鉄道模型を動かしてみる その5 追記あり
   DACで速度制御その2 』


 『RaspberryPiで鉄道模型を動かしてみる その6
   ポイントを動かす 』


 『RaspberryPiで鉄道模型を動かしてみる その7
   駅で停める 』


 『RaspberryPiで鉄道模型を動かしてみる その8
   効果音を鳴らす 』


 『RaspberryPiで鉄道模型を動かしてみる その9
   制御プログラムの話』

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 1
なるほど(納得、参考になった、ヘー)

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
RaspberryPiで鉄道模型を動かしてみる その1 ありぎりす の徒然日記/BIGLOBEウェブリブログ
文字サイズ:       閉じる