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

2014年2月11日火曜日

Raspberry Pi の超簡単設定4 遠隔操作ApacheサーバーとPHPから操作する

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

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

                                      

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


前回までにPythonまでインストールしました。今回はwebからのアクセスです。
リモートデスクトップでも遠隔操作が可能ですが、HTMLやPHPなどを組み合わせて簡単にアクセスしたいときがあります。
今回のサンプルではタブレットから簡単にブラウザからアクセスできるように、PHPを使うことにしました。
(PHPからPythonのプログラムを叩きますが、C言語でも同じことができるはずです。)




そのためにはRaspberry Pi にサーバーを用意して動かします。
Pythonだけの簡易サーバーもありますが、ハードを動かすGPIOを動かすにはApacheとPHPを組み合わせて動かした方が簡単でストレスなく動かせます。

ブラウザが動作する端末でプログラムを動かすことができるので、利用価値は高いと思います。
他のwebアプリを組み合わせると使いやすくなると思います。
また、Pythonコード内のprintもHTMLに反映させることができるので、Pythonでwebページを記述することも簡単にできるはずです。

まずApatchとPHPをインストールします。


sudo apt-get update

sudo apt-get upgrade
sudo apt-get install apache2 php5
sudo chown pi -R /var/www
sudo update-rc.d apache2 defaults

この時点で/var/www/フォルダにHTMLファイルを入れると閲覧できます。

sudo nano /etc/sudoers

テキストエディタが起動するので、sudoersの最後の行に

www-data ALL=(root) NOPASSWD: ALL
と入れます。
ctrl + x で保存するか尋ねて来るので、Yを押し、最後にファイル名を確認してきますが上書き保存するのでそのままエンターを押して終了します。



これでWebでアクセスした人もsudoコマンドが必要なプログラムを使用できます。外部に公開するときはセキュリティ等に気を付けてください。(最低でもアクセスにパスワードで制限を付けるなどしてください)


sudo wget http://mcugear.org/RPitest/MCUGear.tar

tar xvf MCUGear.tar
sudo mv -f MCUGear /usr/lib/cgi-bin

一旦再起動します。

sudo reboot

基本的にcgi-binフォルダでroot権限は変えたくない場合は、/home/pi/フォルダ以下で編集してから

sudo mv [filename] /usr/lib/cgi-bin/[folder] と移動させてください。
削除するときは
sudo rm -rf /usr/lib/cgi-bin/[folder]/[filename]
とすると消せます。
権限を変えると簡単に編集ができます。

手持ちのパソコンやタブレットのブラウザに
http://raspberrypi.local/cgi-bin/MCUGear/index.php
または
http://[IPアドレス]/cgi-bin/MCUGear/index.php
と入れるとアクセスできるはずです。





操作方法

1、MCU Gearの電源を入れる。
2、Init Baseboardボタンを押して、ベースボードを初期化します。

以下のsystem関数を組み合わせてPHPを操作すると、ハードウェアをPHPから動かすことができます。PHPのfor やif 等と組み合わせることで複雑な連続動作ができるはずです。


・Read Input Pins はUniversal Moduleのすべての端子を読みます。


・Write Output Pins はSignal Hold Moduleから出力します。


・Read AD 2ch はAD2chモジュールから信号を受け取ります。(HTML5が対応しているブラウザから動かすとメーターが表示されます。)


・Read AD 8ch はAD8chモジュールから信号を受け取ります。・Read DA はDAモジュールから信号を受け取ります。(HTML5が対応しているブラウザから動かすとメーターが表示されます。)


・Move RC Servo はマルチファンクションモジュールにPWMモードのプログラムを書き込んで使用します。



仕組み等

一番下ではPythonがハードを動かしています。
PHP側からsysteコマンドでPythonファイルを動かす仕組みになっているので、Pythonの中でprint するとその内容もすべて表示されます。表示したくないときはprintをコメントアウトするか、PHPのsystem関数周辺をHTMLのコメントアウト<!--  -->で囲ってください。

PHPからはsystem関数で

sudo python ~.py [address] [command]
という順番で実行しています。
モジュールアドレスはモジュール基板裏面の設定と、ゲート開閉に利用しているPCA9674のデータシートを見てください。

オリジナルの基板などで複雑な処理が必要なときは、取り付ける場合はハードに合わせてPython側を書き換えてください。


2014年2月8日土曜日

Raspberry Pi の超簡単設定3 Python

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

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

                                      


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


今回はロボットや画像処理など、多くの分野で人気が高まっているPython、importを使って豊富なライブラリを気軽に利用することができ非常に便利なスクリプト言語を利用してみましょう。
ます、Pythonでハードウェアが扱えるようにしましょう。

ターミナルを開いて

sudo nano /etc/modprobe.d/raspi-blacklist.conf

blacklistに#を付けてコメントアウトします。

ctrl + x で保存するか尋ねて来るので、Yを押し、最後にファイル名を確認してきますが上書き保存するのでそのままエンターを押して終了します。




次にnanoを実行します。

sudo nano /etc/modules



最後に i2c-dev と追記します。

同じく ctrl + x で保存するか尋ねて来るので、Yを押し、最後にファイル名を確認してきますが上書き保存するのでそのままエンターを押して終了します。

sudo apt-get update

sudo apt-get upgrade
sudo apt-get install python-smbus
sudo adduser pi i2c
sudo reboot

と入れて再起動します。


MCU Gear の電源を入れてI2Cのテストをします。

何か数字が表示されればI2Cが動いていることがわかります。

i2cdetect -y 0

といれます。RaspberryPiのVerによっては i2cdetect -y 1 と入れてください。






次にSPIを設定します。


sudo apt-get install python-dev

sudo reboot
再起動したら

lsmod


で spi-bcm2708 の表示があることを確認します。







次にPythonのspidevを準備します。


mkdir python-spi 

cd python-spi 
wget https://raw.github.com/doceme/py-spidev/master/setup.py 
wget https://raw.github.com/doceme/py-spidev/master/spidev_module.c 
sudo python setup.py install 

$ cd
$ git clone git://github.com/doceme/py-spidev 
$ cd py-spidev
$ sudo python setup.py install
...

Writing /usr/local/lib/python2.7/dist-packages/spidev-3.0.egg-info


cd /home/pi/Desktop/
wget http://mcugear.org/RPitest/MGPyVer1_1.tar
tar xvf MGPyVer1_1.tar

※追記(中級者向け)
二つのモジュールを同時に開く場合のサンプルはwget http://mcugear.org/RPitest/SampleProgramsVer1_1_0.tar
を使用してください。サンプルではモータードライバとエンコーダをつないだユニバーサルモジュールを同時につなぐという事を想定しいています。MCUGearModule.py の割り当て端子数を増やしています。sample.pyで、配線情報はコネクタの若い番号順に並べて2つのモジュール(16端子分)を同時につなぐことが出来ます。


MGPyVer1_1というフォルダがデスクトップにダウンロードされ、ダブルクリックするとモジュールごとにサンプルプログラムが入ったフォルダが入っています。


それぞれのプログラムは cd コマンドを使って移動し

sudo python sample.py

で実行できます。

サンプルプログラムはsample.pyに動作や配線方法が記述されています。

例)LEDblinkフォルダ
ユニバーサルモジュールが対象です。

N_VDD_VDD_VDD
モジュール裏面のアドレスを AD2 = VDD(+3V3) AD1 = VDD(+3V3) AD0 = VDD(+3V3) に設定しているという意味です。詳しくはモジュールのゲート開閉に利用しているPCA9674のデータシートを見てください。




ユニバーサルモジュールの2番端子が点滅するように設定されています。

サンプルプログラムのp.NC は何も接続しないという意味です。(もちろん入力も出力も割り当てられますが、今回はサンプルで用意しました。)

p.outpin[ ]は出力端子 [0]~[5]まであり、Raspberry Pi のGPIOがどれかを考える必要が無いようにプログラムで抽象化してます。(p.pyで実際のピン配置を参照できます)

p.inpin[ ]は入力端子 [0]、[1]

ベースボードのコネクタ1つごとに、4つの信号端子が来ているので、ユニバーサルモジュールでは8端子まで接続することができます。

下はLED接続時の参考図です。必ず抵抗を取り付けてください。



他にSPIはMISO MOSI SCK CE0

UART はTX RX などと記載します。

プログラムの端子配置を変えれば、簡単に配線しなおすことができます。



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年12月12日木曜日

Raspberry Pi :Apache、PHP その1

前回は、Raspberry Pi に Apacheをインストールし、バッシュのCGIを実行しました。
今回はついでに入れたPHPを試してみます。


基本的にはCGIのフォルダにPHPファイルを入れるだけで動きます。

まず、次のようにファイルを作ります。

su コマンドを実行し、/usr/

su
password: *****

cd /var/www/ (または cd /usr/lib/cgi-bin/)
touch test.php
vi test.php

viエディタは起動時にコマンドモードです。
「i」を押すと編集ができるようになります。「ESC」でコマンドモードに戻れます。

<?php
echo 'Hello PHP!';
?>

として、コマンドモードで :wq と入力して保存します。

パソコンから192.168.***.***/test.php (または、192.168.***.***/cgi-bin/test.php)

と入力すると

Hello PHP!

と表示されます。

2013年12月3日火曜日

MCU Gear を高速化させる(概要)

MCU Gearにはマイコンの配線情報をベースボードに8つ記憶できるBANKというものを持っています。(レイヤーのような物だと考えておいてください)

モジュール複数を同時に接続状態にしておき、配線の切り替え頻度を減らすことで高速化できます。BANKを切り替える命令だけで、あらかじめ作っておいた配線情報が再現できます。





※BANKを使って動かすときの利点・注意点

1、同じBANKのモジュール同士が縦に積まれると、混線する可能性が出てくるため同じモジュール同士を縦に積層しないようにする必要があります。(プログラムのやり方によっては、モジュールの接続位置情報から自動的に危険を回避することも可能)

2、「配線は分岐できない」ので、たとえばSPIを一つのBANKで複数使いたいときは、同じ配線のSPIモジュールを縦に積み上げて、モジュールのゲート信号だけ変更して使います。(Raspberry Piのように、自動で動くチップセレクトピンが少なくても、1つのチップセレクトピンで複数積層できるのが利点です。)

3、パソコンのPCIバスのような物との違いは、基板(BANK)ごとに回路と配線情報が後から自由に入れ替え可能だということです。

EX)
 a、移動時はこの回路構成でマイコンに接続、定点観測時にはモータ部分の回路のみ切り他の回路は流用する等
 b、故障しやすいモジュールを見越してあらかじめ搭載しておき、壊れたら遠隔地から切替
 c、回路のリサイクル性が高いので、別の回路構成に切替可能


現状のサンプルプログラムではユーザーにとって安全のために一つのモジュールごとに配線しなおしていますが改造可能です。

また、mbedでは自動的に高速化するための #define boost というものが用意されています。積層の仕方によって、配線が混戦しないように自動的にBANKを使い分けてくれます。
(上記注意点2、に関しては自動的には行っていません)


2013年11月2日土曜日

Raspberry Pi :解像度の変更

高画質なモニターなどをHDMIで取り付けても、意外と文字が見えにくいときもあります。
解像度を自分に合った設定にしてみましょう。

今回は1024x768  60Hz に合わせてみようと思います。

ターミナルで

sudo vi /boot/config.txt

とします。


まず、ここにあるオーバースキャンを無効にします。
disable_overscan=1

次に
hdmi_group=2
hdmi_mode=16
hdmi_ignore_edid=0xa5000080

とします。
viエディタで[esc]ボタンを押して:wqと上書き保存し、Raspberry Piを再起動すると完成です。

この

hdmi_group=2
hdmi_mode=16

このサイトの中間あたりに設定一覧が出ています。
お好みの設定を探してみてください。

Raspberry Pi :Apache、CGI、root

root権限を使うことで、より自由に色々なことができます。
ここではroot権限で色々なことをやってみようと思います。

・sudo
これはあるroot権限の操作をターミナルで実行するときに使います。一回だけ使うイメージです。
ではsudoを使ってApacheというサーバーソフトを入れてみましょう。(PHPも後で使うかもしれないので一応入れました)

ターミナルを開いて
sudo apt-get update

sudo apt-get upgrade

sudo apt-get install apache2 php5

sudo chown pi -R /var/www

sudo update-rc.d apatche2 default

とコマンドを打ちます。途中で続行するか聞かれるのでYを押してください。

これですでにサーバーとして機能しているので

ターミナルで

ifcofig

を押して、割り当てられたIPアドレスを調べます。
同じルーターにつながったPCからhttp://192.168.***.***/
と入れるとIt's work!と表示されると思います。
このHTMLファイルは/var/www/に存在しますので書き換えれば色々なページが作れます。


次にCGIを使えるようにしようと思います。
まず、Apacheを止めます。
apachectl -k graceful-stop

ちなみに再開する時は
sudo /etc/init.d/apache2 start
とします。


CGIを使えるようにする前にroot権限でファイルを扱えるようにしたいと思います。

sudo passwd root

と入れるとパスワードを入れてくれと出てきます。忘れないようなパスワードを入れます。
忘れるとRaspberry Piを再インストールする必要があります。

次に
su
 と入れるとパスワードを聞かれます。
先ほど入れたパスワードを入れるとroot権限でターミナルが使えるようになります。
suをやめたいときはexitと入れると元に戻ります。

vi /etc/apache2/mods-available/mime.conf

で設定ファイルを開きます。
vi エディタはコマンドモードと文章書き込みモードがあります。
左下に「挿入」とあれば書き込みモードです。[esc]キーでモードを変えられます。
左下に「挿入」と無ければコマンドモードです。[i]を押すとモードを変えられます。

mine.config の219行目の#マークを削除します。
AddHandler cgi-script .cgi
コマンドモードにして:wqで上書き保存して終了します。(失敗した時は:qとすると保存しないで終了できます。)

次に

vi /etc/apache2/sites-available/default

を入力し、ファイルを開きます。
今度は<Directory /var/www/>という項目に
 +ExecCGIを追記します。

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews +ExecCGI
AllowOverride None
Order allow,deny
allow from all
</Directory>

同様にviエディタのコマンドモードにして:wqで上書き保存して終了します。(失敗した時は:qとすると保存しないで終了できます。)

次にテスト用のCGIを書きます。

vi /usr/lib/cgi-bin/mycgi.cgi

として、

#!/bin/bash

echo “Content-type:text/html”
echo “”


echo Hello!

として:wqで保存します。

最後にCGIの権限を変更します。

sudo chmod 755 /usr/lib/cgi-bin/

sudo chmod 755 /usr/lib/cgi-bin/mycgi.cgi

最後にApacheを再開します。

sudo /etc/init.d/apache2 start


これでブラウザから

http://192.168.***.***/cgi-bin/mycgi.cgi

とすると

Hello!

と表示されます。


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

で実行できます。