開発環境として最新のNetBeansをインストールします。

1.下記サイトからNetBeansをダウンロードします。
NetBeans IDE ダウンロードサイト
IDEの言語を日本語にしプラットフォームをOSに依存しないZIPにします。
すべてでダウンロードボタンを押下し、ダウンロードします。
netbeans_inst_01

2.ターミナルからダウンロードしたZIPファイルを解凍します。


# unzip netbeans-8.2-201609300101.zip

3.解凍したファイルを任意のディレクトリに移動します。


# mv netbeans /usr/local/netbeans

4.メニューに追加します。
メニューにて「システム」→「コントロール・センター」→「Main Menu Editor」
で、「プログラミング」にて「新しいアイテム」をクリックしNetBeansフォルダ内の
bin/netbeansを登録します。
netbeans_inst_02

今回は、RaspberryPiのソフトウェアをWindows上でリモート開発する環境を作ります。

1.Winsdows上にNetBeans with JDKのインストール

① NetBeasns with JDK8のダウンロード
http://www.oracle.com/technetwork/java/javase/downloads/index.htmlからNetBeans with JDK8のインストーラーをダウンロードします。
② インストーラーファイルをダブルクリックして実行します。
rasp1-1
③ JDKとNetBeansIDEをインストールします。
rasp1-2
④ JDKのインストール先を選択します。
rasp1-3
⑤ NetBeansIDEのインストール先を選択します。
rasp1-4
⑥ インストールを開始します。
rasp1-5
⑦ インストールが開始されます。
rasp1-6
⑧ インストール終了
rasp1-7

2.Raspberry Pi設定

① RaspberryPiをネットワークに接続し、rootユーザーで「raspi-config」を実行、「Advanced Options→SSH」をEnableに設定します。
raspi2-1

3.Windows上のNetBeansIDEに「C/C++プラグイン」をインストール

① メニューにて「ツール」→「プラグイン」をクリック
raspi3-1
② 「使用可能なプラグイン」タブにより「C/C++」をチェックし「インストール」ボタンをクリック
raspi3-2
「次>」ボタンをクリック
raspi3-2-1
「すべてのライセンス契約条件に同意する」にチェックをし、「インストール」ボタンをクリック
raspi3-2-2
インストールが実行される
raspi3-2-3
「C/C++プラグイン」のインストール終了、NetBeansIDEを「今すぐIDEを再起動」にチェックし「終了」ボタンをおうかすることによりNetBeansIDE再起動
raspi3-2-4

4.Raspberry Piの登録

① Raspberry Piと同一ネットワークにWindowsパソコンを接続NetBeansを起動し、メニューにてウィンドウ->サービスをクリックしサービスタブを表示の「C/C++ビルド・ホスト」を右クリック、「新規ホストの追加」をクリックします
raspi4-1
② RaspberryPiのIPアドレスを「ホスト名」に入力し、「次>」ボタンをクリックします
raspi4-2
③ 識別の「ログイン」にログインユーザーを入力し、認証の「パスワード」を選択し、「次>」ボタンをクリックします
raspi4-3
④ 「パスワード」を入力し、「OK」ボタンをクリックします
raspi4-4
⑤ 「終了」ボタンを押下し終了します
raspi4-5
⑥ 「C/C++ビルド・ホスト」にRaspberryPiが登録されます
raspi4-6

5.プロジェクトの作成

① 「ファイル」→「新規プロジェクト」をクリックします
raspi5-1
② カテゴリにて「C/C++」を選択し、プロジェクトにて「C/C++アプリケーション」を選択し、「次>」ボタンをくりっくします
raspi5-2
③ 「プロジェクト名」を入力し、「ビルド・ホスト」に作成したホストを選択し、「ツール・コレクション」に「GNU」を選択し、「終了」ボタンを押下することによりプロジェクトを作成する。
raspi5-3

RaspberryPi用のカメラモジュールとしてSWITCHSIENCEのPiNoir V2がありますので、今回はこれを使用します。

プログラムを作成するうえで使うライブラリとしてRaspiCam C++ APIを使います。
AVA
から最新版を取得しインストールしてください。

あと、OpenCVを
# apt-get install libopencv-dev
でインストールしてください。

必要モジュールのインストールが終わったら、ソースを作りましょう。
test.cpp

#include <stdio.h>
#include <ctime>
#include <iostream>
#include <raspicam/raspicam_cv.h>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

using namespace std; 
using namespace cv;

int main ( int argc,char **argv ) {
    raspicam::RaspiCam_Cv Camera;
    Mat image;

    //set camera params
    Camera.set( CV_CAP_PROP_FORMAT, CV_8UC3 ); //カラー
    Camera.set( CV_CAP_PROP_BRIGHTNESS, 50);
    Camera.set( CV_CAP_PROP_GAIN, 80);
    Camera.set( CV_CAP_PROP_FRAME_WIDTH, 640);
    Camera.set( CV_CAP_PROP_FRAME_HEIGHT, 400);
 
    //Open camera
    if (!Camera.open()) {cerr<<"Error opening the camera"<<endl;return -1;}

    // **************************************************
    //display image
    // **************************************************
    const char szWindow[] = "Image Data";
    namedWindow(szWindow, cv::WINDOW_AUTOSIZE);

    // **************************************************
    // イメージの取得
    // **************************************************
    Camera.grab();
    Camera.retrieve ( image);

    // **************************************************
    //save image 
    // **************************************************
    cv::imwrite("test2.bmp",image);

    // **************************************************
    // イメージの表示
    // **************************************************
    imshow(szWindow, image);
 
    // **************************************************
    // wait
    // **************************************************
    waitKey();
 
    Camera.release();
}

下記コマンドでコンパイルすればあとは実行あるのみ。


g++ test.cpp -o test2 -I/usr/local/include/ -lraspicam -lraspicam_cv -lmmal -lmmal_core -lmmal_util -lopencv_core -lopencv_highgui -L/opt/vc/lib

ちょっと画面が汚いですが写真が撮れます。
OpenCVとあわせて色々使ってみましょう。

さて、Raspberry Pi3の特徴といえば」、まずCPUがARM Cortex-A53が採用され64bitとなったこと。
動作クロックが1.2GHzになりRaspberry Pi2と比べ1.5倍のパフォーマンスになりました。
また、Wi-Fi及びBluetoothが内蔵され無線LAN接続が可能になり、Bluetooth機器が接続可能になりました。

メモリはRaspberry Pi2から変わらず1GB。
PIO、CSIカメラポート、DSIビデオポートなど内部インターフェースもRaspberry Pi2から変更なし。
Raspberry Pi 3の推奨電源の出力が、2.5Aに増大。

やはり、見どころは64BitになりWi-Fi,bluetoothが内蔵されたことでしょう。

やっと、我が研究所にもRaspberry Pi3がやってきました。
DSC_0347

さっそく、ケースに入れ組み立て。
ファン付きです。
DSC_0361

Raspbianをmicro SDに入れ、起動。。。。
起動しない。よくばって64GBのmicro SDがあかんかったみたい。。。

再び、32GBのmicro SDをAmazonで注文し、起動確認は明日micro SDが届いてからに。

64ビットへ進化したRaspberry Pi 3を購入して検証したいが、予算が無く、
未だ購入できずにいる。
勉強用にしてはスペックがよすぎると思う。
これはもう実用マシンだ。
無線LANそしてBluetoothまで付いている。
これを使わない手は無いでしょう。
近いうちに購入して検証したいと思う。

今回はRaspbianでActiveDrirectoryDomainControllerを構築します。
前提として
Domain : E-MAYBE.NET
REALM : SMB.E-MAYBE.NET
HOST : smb.e-maybe.net
とします。

1.インストール

# aptitude -y install samba krb5-config

(REALMを設定)
SMB.E-MAYBE.NET
(HOST指定)
smb.e-maybe.net
(Kerberos REALMを設定)
smb.e-maybe.net

2.Sambaの設定

# mv /etc/samba/smb.conf /etc/samba/smb.conf.org

# samba-tool domain provision

Realm: SMB.E-MAYBE.NET
Domain [SMB]: E-MAYBE.NET
Server Role (dc,member,standalone)[dc]: (そのままEnter)
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: (そのままEnter)
DNS forwarder IP address (write ‘none’ to disable forwarding) [10.0.0.10]: (そのままEnter)
Administrator password: (管理者のパスワードを入力)
Retype password: (管理者のパスワードを入力)
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=smb,DC=server,DC=world
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=smb,DC=server,DC=world
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: smb
NetBIOS Domain: E-MAYBE.NET
DNS Domain: smb.e-maybe.net
DOMAIN SID: S-1-5-21-2000157900-855438458-128221064

(再起動)

# reboot

3.ドメインの機能レベルを上げておく

# samba-tool domain level raise –domain-level 2008_R2 –forest-level 2008_R2

Domain function level changed!
Forest function level changed!
All changes applied successfully!

4.ドメインの機能レベルの確認

# samba-tool domain level show

Domain and forest function level for domain ‘DC=smb,DC=server,DC=world’

Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2

5.ドメインにユーザ登録

# samba-tool user add user01

New Password: (パスワード設定)
Retype Password:(パスワード設定)
User ‘user01’ created successfully

 サーバーマシンをDOS/V機に移したはいいが、メモリー不良となってしまった。
不良メモリーは交換したものの、電気代が結構いってしまったので、家族からブーイングが
出てしまった。
 
 ってことで、サーバーを再びRasberryPiに移すことに。
(何やってんだ俺)
今度は、Pi ModelB+とPi2 ModelBの2台体制とした。
まず、Pi ModelB+には、メールサーバー、DNSサーバー、
Active Directory Domain Controller
にした。
そして、Pi2 ModelBは、WEBサーバー、ownCloudサーバー
にした。

今のところ順調に稼働しているが、また1週間に一回は再起動が必要になってしまうのか・・・・・
RaspberryPiだと電気代安いしね。
そのうち、もう一台Pi2 ModelBを買って、Pi2 2台体制にしたいと思う。

初代RaspberryPiサーバーは、一週間に一度はダウンしていた。
しかもレスポンス悪いし。
やっぱ、RaspberryPiでは、サーバーとして動かすのにはきついのかな・・・・
メールサーバー、Webサーバー、クラウド環境 etc・・・
ってことで、RaspberryPi2に変えたのだけど、
やっぱり一週間に一度はダウンする。
レスポンスは良いけどね。

先日、RaspberryPi2につないでいたHDDが壊れてしまった。
これをきっかけに、RaspberryPi2には、サーバーの座から降りてもらった。
サーバーはDOS/VのFedoraサーバーに移した。
やっぱ、RaspberryPiそのものが、学習用、実験用、なので
サーバーにはふさわしくなかったのかも。
まあ、サーバーから引退してもらったけど、遊ぶには事欠かないマシンだ。
なんせいいよね。5000円以下で買えるマシンって。
コストパフォーマンスは断然よい。

ってことで、RaspberryPi2は実験用にします。
なんかわくわくするよね。

Web ServerとMail ServerをRaspberry Pi Model BからRaspberry Pi 2 Model Bに変えました。
やっぱ、レスポンスが良くなりストレスなくなりました。
すべて載せ換えるのに少々手こずりましたが、なんとか動きました。
やっぱ、Quad Coreメモリ1GBは伊達じゃないですね。
もう一個、Raspberry Pi 2 Model Bを買い足さなくては。
実験用に使っていたのを使ってしまったので。
IMG_0989