ラベル C の投稿を表示しています。 すべての投稿を表示
ラベル C の投稿を表示しています。 すべての投稿を表示

2014年2月7日金曜日

Raspberry Pi の超簡単設定2 C言語 wiringPi

目次
Raspberry Pi Noobsで簡単リモートデスクトップ
WiringPiのセットアップ・・・C言語でGPIOを動かしてみる
Pythonのセットアップ・・・人気のPythonで動かしてみる

WebからPHPで簡単アクセス・・・PHP、Pythonで遠隔GPIO

                                      

update こちらのサイトに新型があります。
mille-feuille(ミルフィーユ)


ここでは、wiringPi というC言語で開発ができる環境を入れます。
プログラム用のテキストエディタはいくつかありますが、今回はgeanyという物を入れます。

まず、midoriというアプリケーションで、このブログの画面を開いてください。
青い文字の部分を順番にコピー&ペーストしてインストールしてください。(shellスクリプトにしてもよいのですが、GPIOの設定部分で失敗することがあるようです。注意してください。

デスクトップにある LXTerminal.exe を開いてください。
$マークの後に以下の青いコマンドを入れていきます。
まずgeanyを使いたい方は
sudo apt-get install geany
と入れます。

次にwiringpiを入れてみましょう。

sudo apt-get install git-core
sudo apt-get update
sudo apt-get upgrade
git clone git://git.drogon.net/wiringPi
cd wiringPi
git pull origin
./build

完了したら動作確認をします。

gpio -v
gpio readall

と入れ、以下のように表示されているかを見てください。



一旦終了します。
sudo halt


次に組み立てたMCUGearを取り付けます。
Raspberry Pi と接続するには以下のボードが最低限必要です。
TypeB board --- Raspberry Pi とベースボードを接続します。
Baseboard --- MCU Gear のコアです。
Power Module --- USBかアダプタ電源からMCU Gearに簡単に電源を供給でします。
他のモジュールはお好みで積層してください。
MCUGearの電源はハードウェア部分を再起動できるように別系統で取っています。

RaspberryPiに電源を入れます。
MCU Gearのサンプルプログラムを入れてみます。
cd /home/pi/Desktop/
wget http://www.mcugear.org/RPitest/MCUGearRPwp.tar
tar xvf MCUGearRPwp.tar

解凍されたフォルダに、それぞれモジュールごとにサンプルプログラムが入っています。
デスクトップにダウンロードされたサンプルプログラムを実行してみます。
(注意:ユニバーサルモジュールは0、1番がスイッチ入力2番はLEDを点滅させる、残りはLEDで出力を確認できます。)

gpio load i2c 1000
gpio load spi

cd MCUGearRPwp

g++ -Wall -o main main.c MCUGear.cpp MCUGearBase.cpp -lwiringPi

(wiringPi の LCDのライブラリ (#include <lcd.h>)等を使う時は、
g++ -Wall -o main main.c MCUGear.cpp MCUGearBase.cpp -lwiringPi -lwiringPiDev
としてください。)

コンパイルに成功したら。
MCU Gear側にも電源を入れて。

sudo ./main

で実行できます。



Raspberry Pi の超簡単設定1 起動とリモートデスクトップ編

目次
Raspberry Pi Noobsで簡単リモートデスクトップ
WiringPiのセットアップ・・・C言語でGPIOを動かしてみる
Pythonのセットアップ・・・人気のPythonで動かしてみる

WebからPHPで簡単アクセス・・・PHP、Pythonで遠隔GPIO


                                      

update こちらのサイトに新型があります。
mille-feuille(ミルフィーユ)


Raspberry Piのセットアップから、リモートデスクトップについてです。
今回はWindows7 で実行しています。

1、初期設定
NOOBS (offline and network install)をダウンロードして、4GB 以上の空のSDカードに解凍してください。

TVにHDMIケーブル、USBキーボード、USBマウス、インターネット接続されたLANケーブルをRaspberry Pi を接続し、先ほどのSDカードを差し込みます。



2、OSのインストール
NOOBSを入れると、まずOSの選択画面と言語の選択ができるメニューが現れます。
ここではRaspbian を入れ、言語は日本語を選択しました。
右上のInstallを押すとインストールを開始します。



成功すると以下のように表示されます。



この後、初期設定をします。



特に気にしないのであれば、そのままFinishしてください。
その際の
ID:pi
pass:raspberry
です。


$マークの後ろに次のコマンド入れます。
まず、リモートデスクトップを入れます。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install xrdp

途中で[Y/N]と質問されるのでYを入力して次に進んでください。

sudo apt-get install avahi-daemon

を入れて、インストールが終わったら
sudo halt
と入れ赤いLEDのみの状態になったら電源を切ります。(デスクトップ画面を表示したい場合はstartxと入れると出ます)

USBキーボードやマウス、HDMIケーブルを外して、SDカードとLANだけの状態にしてください。

Windows側には以下のソフトをインストールすると、Windows搭載のリモートデスクトップから簡単にアクセスできます。
Bonjour Print Services for Windows

Windows付属のリモートデスクトップを起動します。
同じルーターにPCを接続し、raspberrypi.local というアドレスでリモートデスクトップが使えるようにします。





先ほどのID、パスワード
ID:pi
pass:raspberry
でログインできます。IPアドレスを調べる必要はありません。





※ログインできない場合
ルーターにすでに名前でアクセスできるデバイスがつながっている場合
IPアドレスを直接入力してログインしてください。割り当てられたIPアドレスを調べるには、ターミナルで
ifconfig
と入れると 192.168.***.*** という番号が見れます。

2013年10月19日土曜日

Raspberry Pi で多くのモジュールを接続してみる(LCDモジュールは対象外)

RSコンポーネンツさん等で市販されている Raspberry Pi がMCU Gearと接続できましたので報告です。

今回は2013年10月19日に用意できているモジュール類を複数個
接続して見ようと思います。
・12bit 2ch ADモジュール(距離センサー)
・12bit 8ch ADモジュール(ボリューム抵抗)
・12bit DAモジュール(黄色LED出力)
・ユニバーサルモジュール(スイッチ入力と赤LED出力)
・出力信号保持モジュール(モジュールを切り替えても出力信号を保持できます)
・マルチファンクションモジュール(PWMモード)

SPIのモジュールを複数接続していますが、CE0番ピンは一つしか使っていないのが特徴です。


サンプルプログラムはこちら


プログラムの基本動作はこちらの説明を参考にしてください。










2013年10月16日水曜日

Raspberry Pi でC言語 ADコンバーター(ADC) と DAコンバーター(DAC) を簡単に使ってみる

最新情報の目次はこれです
Raspberry Pi Noobsで簡単リモートデスクトップ
WiringPiのセットアップ・・・C言語でGPIOを動かしてみる
Pythonのセットアップ・・・人気のPythonで動かしてみる

WebからPHPで簡単アクセス・・・PHP、Pythonで遠隔GPIO

                                        

以下、昔の記事です。

RaspberryPiで簡単にADC、DACを使ってみたいと思います。

MCU Gearを使うと、例えば8chADモジュールを10個積めば80chのAD変換基板になるお化けな拡張ボードです。

RaspberryPi用接続ボードとMCU Gearを使用します。

MCU Gear にはSPI通信による 12bit ADC、12bit DACを簡単に複数構成することができるモジュールが存在します。

サンプルプログラムではCE0 1つで、複数のSPIデバイスを動かしています





サンプルプログラムの説明です。
12bit 2ch ADの0chから距離センサーの信号を読み取り、それを12bit DAから出力しています。
またユニバーサルモジュールからスイッチの読み取り、LEDの出力(LOWでLEDがONになる)を行っています。

main.cファイルを見てください。
まず、wiringPiをセットアップしたりSPI通信のセットアップなどを行います。

1、initBase(); はMCU Gear の丸い基板、ベースボードを初期化しています。

2、拡張モジュール基板(扇形の基板)の設定をします。
MCUGear AD2chM = MCUGear(N_SCL_SCL_SCL, 4);

 AD2chM :モジュールに好みの名前を付けます
 N_SCL_SCL_SCL : 拡張モジュール裏面にあるアドレス設定回路の任意設定値を入れます。
 (AD2、AD1、AD0の順番に並んでいます。)
 4:はADモジュールの場合はSPIの4ピンを使いますという予告です。(MISO,MOSI,SCK,CE0)

3、IOSimpleSPI(&AD2chM);
 好みの名前を付けたADモジュールにSPIの端子を割り振ります。IOSimpleSPI関数はmain関数の下に記述しておきました。

中身は
unsigned char fio[12];
detect_module(fio);
これはモジュールの位置情報を取ってこいという命令です。
この情報により、モジュールをどの位置に取り付けても自動的に探し出すことができます。

savePinSetting(0, IO_13, IO_REG_IN_DIR, fio[0]);

これはwiringpi の設定で拡張モジュールの0番端子に、IOの13番をRaspberry Pi 側に入力する方向に割り振れ という命令を記録しています。

BOOST_MODE は追々説明しますが、配線の切り替え処理を高速化するためのものです。

4、main関数のwhile(1)ループ内では、拡張モジュールにアクセスするには

AD2chM.connectModule();
とすると回路が再構築されます。

AD2chM.disconnectModule();
とすると、回路が切断されます。

これを連続的に繰り返して、様々なデバイスを少ピンでもたくさん取り付けることができるようになります。

サンプルプログラムを動かすにはターミナルで
gpio load i2c 1000
gpio load spi
を事前に実行する必要があります。

コンパイルは作業ディレクトリに移動して

g++ Wall -o main main.c MCUGear.cpp MCUGearBase.cpp -lwiringPi
 コンパイルに成功したら

sudo ./main

で実行できます。


2013年9月15日日曜日

Raspberry Pi 入門 2:C言語エディタ編

最新情報の目次はこれで、最終的に動画のような物も作れます。
Raspberry Pi Noobsで簡単リモートデスクトップ
WiringPiのセットアップ・・・C言語でGPIOを動かしてみる
Pythonのセットアップ・・・人気のPythonで動かしてみる

WebからPHPで簡単アクセス・・・PHP、Pythonで遠隔GPIO


                                        

以下、昔の記事です。

前回のブログで、Rasberry Pi の準備ができたので、次はCコンパイラをテストしてみましょう。


その前に、C言語を書くためのエディタを手に入れたいと思います。
個人的に気に入っている geany というエディタソフトを入れてみようと思います。
このエディタを使うと、make fileというものを作れば1クリックでC言語をコンパイル出来るので、エラーの発見などが便利です。Windowsから移った人はviエディタよりも便利に感じると思います。

インストールはターミナルから
sudo apt-get install geany
と入力してください。




geanyはスタートメニューのプログラムという項目に入っていると思います。
起動して以下のプログラムを入力します。

#include <stdio.h>

int main(void) {
  printf(“hello world!\n”);
  return 0;
}

今回はDesktopにC_testというフォルダを作って保存しました。
では、はじめはターミナルを起動して、実行します。
.cファイルのあるディレクトリまでコマンドで移動してみましょう。

まずターミナルを起動します。
2つのコマンド
ls : 現在のディレクトリにあるファイルを見るコマンド
cd:はディレクトリを移動するためのコマンド

最初にlsと入れると Desktopフォルダと表示されるので、Desktopフォルダに移動するため、cd Desktopとコマンドを入れて移動します。
これを繰り返して保存したフォルダまで移動します。



helloworld.cを見つけたらコンパイルする以下2行のコマンドを入れます。
$ gcc helloworld.c

$ ./a.out
すると hello world! っと表示されるはずです。


このコマンドを毎回入れるのは面倒です。
そのためgeanyではmakefileを作ることで、歯車ボタン1クリックで実行することができるようになります。

makefileというファイルをgeanyで作り、helloworld.cファイルと同じフォルダに保存します。
以下のような内容を書いて上書き保存してください。

helloworld: helloworld.c
  gcc -Wall -o helloworld helloworld.c

と書いておき、一度だけターミナルでC_testフォルダに移動して「make」というコマンドを入れます。それ以降は、Geanyのビルドをして、実行をすれば動くようになります。


さらに簡単に以下のように代入すると、makefileを毎回簡単に書き換えることができます。

Target = helloword

$(Target): $(Target).c
  gcc -Wall -o $(Target) $(Target).c


Geany から実行すると、このような画面が出ます。