RspberryPiの初期設定

色々とあり何もできていなかったが

久しぶりにRaspberryPiを使って遊んでみることにする。

 

やることは電子工作。

OSはubuntuMATEを選択(メインPCでubuntuを使っているので)。

直接操作するのは面倒なのでssh接続。

GPIO制御はwiringPiを使いC言語でやっていく。

ホストOSはubuntu

 

■OSのインストール

公式サイト(https://ubuntu-mate.org/raspberry-pi/)からイメージをダウンロード

公式に記載されている通りSDにイメージをリストア(gnome-disk-utilityを使用)

(windowsの場合は Win32 Disk Imager を使用するらしい)

RaspberryPiにSD入れて起動すると自動的にインストールが始まる。

インストールが完了するとたぶんSDカードの容量を全部使わず

4GBほどしか割り当てられていないはずなので容量を拡張する。

ubuntuでGPartedを使うと楽。

 

 

ssh接続設定

ubuntuMATEには最初からOpenSSHがインストールされていたので設定だけ変更する。

/etc/ssh/sshd_config を編集、設定は「#」でコメントアウトされている

 

Port 番号

デフォルトのポート22番は危険らしいので適当な番号に変更

PermitRootLogin no

rootでログインできないように制限をかける

ListenAddress

私の設定が悪いのかIPを設定するとssh自体が起動しなくなったので設定無しで

 

本当はパスワードでログインするより鍵認証のほうがいいらしい

今回は面倒なのでパスワード方式

 

ホストのクライアントは Remmina を使い接続。

 

 

 ■wiringPiのインストール

公式サイト(http://wiringpi.com/)にインストール方法は記載されているので参考。

 

sudo apt-get install git-core

  --git-coreのインストール

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

  --ファイルのコピー

cd wiringPi

  --wiringPiへ移動して

./build

  --ビルド

インストール完了後に動作テスト

gpio -g mode 17 out

  --GPIO17のモードをアウトへ

gpio -g write 17 1

  --GIPO17へ電圧(3.3V)を出力

これで出力されていれば成功。


以上でRaspberryPiの個人的な初期設定はすべて完了

電源を入れればホスPCからRaspberryPiを操作し色々と遊べます。
さて、電子工作と言っても何を作るか具体的に考えていないのでどうしようかな。

WiringPi 関数メモ

RaspberryPiのGPIOをC言語で制御するにあたりWiringPiライブラリの関数まとめ

 

●Setup Functions

 どれか一つはプログラムの最初に呼ばなければならない

 初期化処理に失敗した場合、戻り値-1が返される

 

int wiringPiSetup(void)    ---wiringPiピンナンバーを利用する

wiringPiSetupGpio(void)    ---Broadcom GPIOのピン番号を直接利用

wiringPiSetupSys(void)   ---/sys/class/gpioインターフェースを使い初期化

 

 

●General wiring functions

 

void pinMode(int pin,int mode)  ---ピンのmode(INPUT、OUTPUT、PWM_OUTPUT)を設定

void digitalWrite(int pin,int value)  ---ピンにHIGH(1)かLOW(0)を設定

void digitalWriteByte(int value)  ---8つのGPIOに、8bitで設定した値を設定

void pwmWrite(int pin , int value)  ---PWMレジスタに値を書き込む、0~1024

                                                         ※PWMをサポートしているのはGPIO18のみ

int digitalRead(int pin)  ---引数で与えられたpinの値を戻り値とし返す

void pullUpDnControl(int pin,int pud)  ---引数のピンのプルアップ、プルダウンを設定

                                                         ※該当のピンをINPUTに設定しておくこと

 

 

●PWM Control

 Sys modeの時はPWMコントロールはできない

 

pwmSetMode(int mode)  ---balanced,mark:spaceの選択デフォルトは前者

pwmSetRange(unsigned int range)  ---PWMジェネレータ内の範囲レジスタを設定

pwmSetClock(int divisor)  ---PWMクロックの除数を設定

 

 

●Timing functions

 

unsigned int millis(void)  ---wiringPiSetup関数を呼んでからミリ秒を示す数値を返す

void delay(unsigned int howLong)  ---howLong数値のm秒分、処理をポーズ

void delayMicroseconds(unsigned int howLong)  ---howLong数値のμ秒分、処理をポーズ