横井?

11月9日 raspberry piの初期設定 

  1. 必要なもの
    ・USBキーボード(任意)
    ・USBマウス(任意)
    ・新品またはフォーマット済のmicroSDカード8GB以上(必須)
    ・HDMIケーブル(任意)
    ・LCDモニタ(HDMI入力があるもの)(任意)
    ・ACアダプタ(必須)
    ・PC(必須)
    ・Raspberry pi 3 Model B(必須)
    ・LANケーブル(任意)
  2. Raspbianのダウンロード
    ・下記のリンクからOS(RASBIAN)をダウンロード
    OS(RASPBIAN)の配布元
    ・Raspbian Stretch with desktopの欄にあるDownload ZIPをクリックするとダウンロードが始まる。
    ・ダウンロード後解凍すると、Raspbianのディスクイメージファイルが入手できる。
  3. RaspbianをmicroSDに焼く
    ・今回は、DD for Windows を使う。下記のリンクから最新バージョンを選んでダウンロード&解凍
    DD for Windows の配布元
    ・DL&解凍後、DDWin.exeを右クリックより管理者権限で起動。
    ・ディスクの選択 → OSを焼くSDカードを選択。
    ・ファイルの選択 → OSイメージを選択(ファイルの種類をddi→ALL Filesに)
    ・<<書き込み<< をクリック
    ・しばらく待つと完了
  4. SSHの設定(他のパソコンから操作しないのであれば不要であるが、ディスプレイ無いなら必須)
    ・SDカードを開いて一番上の階層にsshという名前のファイルを作るだけ。(メモ帳などをリネームして拡張子を削る)

    ここまでやって、raspberry piにmicroSDをいれると、起動できるようになる。

  5. raspberry piの起動方法
    ・最初に、OSを入れたmicroSDをraspberry piに入れる。
    ・次に、raspberry piとモニタをHDMIケーブルで繋げる。
    ・次に、USBマウス、キーボードを持っているならraspberry piに繋げる。
    ・最後に、ACアダプタをraspberry piに繋げると起動する。
  6. 各種設定変更
    ・raspberry piにてターミナルを起動する。
    ・raspberry piのターミナルで下記のコマンドを入力すると設定画面が開く
    ・sudo raspi-config
    ・Piユーザーのパスワードの変更
    ・・Chagen User Password より行う
    ・タイムゾーン&Wifiの設定
    ・・Localisation Options → Change Timezone からタイムゾーンの変更をする Asia → Tokyo
    ・・Localisation Options → Change Wi-fi Country から Wifiを使う国の選択 Japan
    ・SDカードの拡張
    ・・Advanced Options → Expand Filesystem
    ・・大容量のSDカードを使用しても、初期設定のままでは先頭の 2GB 程度のみの利用しかできなくなっているため、 Expand Filesystemを使い容量を拡張する。
    ・上記の設定を終えたらFinishを押し再起動する。
  7. Wifi接続方法
  1. パッケージ情報を最新にする

11月16日 温湿度センサ 

11月30日 KY-038 KY-039 

12月6日 Tera termから得られるデータを用いてPCから何かを制御(PC側はC++を使用) 

  1. Tera termの使い方
    ・Tera termのダウンロード方法については、下記のサイトを参考にしてほしい。
    【ゼロからわかる】Teratermのインストールと使い方
    ・ダウンロードしたTera termを起動すると、下記のような画面が表示される。

    #ref(): File not found: "wiki3.png" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ・上の画像の、ホスト(T):の所にraspberry piのIPアドレスを入力し、OKをクリックする。
    ・すると、下記のような画面が表示されるので続行をクリックする。

    #ref(): File not found: "wiki4.png" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ・次に、下記のような画面が表示されるので、raspberry piのユーザー名とパスワードを入力する。
    ・初期設定であれば、ユーザー名はpi、パスワードはraspberryである。

    #ref(): File not found: "wiki5.png" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ・その後、OKをクリックするとraspberry piとSSH接続できる。
  2. Tera term マクロの作成と使用
    ・先ほど、ログイン方法を説明したばかりだが、自動でログインしてraspberry piのログをテキストファイルに書き込むマクロを作成する。
    ・まず下記のコードを入力した拡張子が.ttlのファイルを作る。
    ;接続先ホスト
    HOSTADDR = '133.55.174.76'
    ;ユーザ名
    USERNAME = 'pi'
    ;パスワード設定
    PASSWORD = 'raspberry'
    ;接続コマンド作成
    COMMAND = HOSTADDR
    strconcat COMMAND ':22 /ssh /2 /auth=password /user='
    strconcat COMMAND USERNAME
    strconcat COMMAND ' /passwd='
    strconcat COMMAND PASSWORD
    ;接続
    connect COMMAND
    ;================================================
    ;ログファイル保存
    wait '$'
    logopen "C:\raspberry\Project1\Debug\command.txt" 0 1
    sendln ""
    wait '$'
    sendln "cd DHT11_Python"
    wait '$'
    sendln "python dht11_example.py"
    wait '$'
    logclose
    ;================================================
    ;マクロ終了
    end
    ・133.55.174.76は、自分のraspberry piのIPアドレスに変える。
    ・piは、ユーザー名を変えたならそのユーザー名にする。
    ・raspberryは、パスワードを変えたならそのパスワードにする。
    ・C:\raspberry\Project1\Debug\command.txtの部分はログの保存場所なので、自分の保存したいところに変更する。
    ・cd DHT11_Pythonの部分は、raspberry pi内のdht11_example.pyが入っているフォルダに変更する。
    ・その後、Tera termを起動し上のコントロールをクリックしマクロをクリックする。
    ・すると、ファイルを選択する画面になるのでttlファイルを選択する。
    ・今回は、先程作成したttlファイルを選択する。
    ・すると、マクロが起動し、PC上に温湿度が取得できる。上のコードの場合は、command.txtにログが入力される。
  3. C++を用いて入力されたログの最終行を読み取る方法
    ・あまり理解していないがC++の下記のコードで読み取ることができる。
    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include <windows.h>
    #define STR_MAX 256
    int main(void)
    {
    	FILE *fp;
    	int str_max = STR_MAX;
    	char buf[STR_MAX];
    	int step, kk, n_line;
    	while (1) {
    		Sleep(3000);
    		fp = fopen("command.txt", "r");
    		if (fp == NULL) {
    			printf("can't open file\n");
    			return -1; /*abort();*/
    		}
    		n_line = 0;
    		while (fgets(buf, str_max, fp) != NULL) {
    			n_line++;
    		} //行数のカウント
    		fclose(fp);
    		fp = fopen("command.txt", "r");
    		for (kk = 0; kk < n_line - 1; kk++)//上からn_line-1行は読み飛ばす
    		{
    			fgets(buf, str_max, fp);
    		}
    		fscanf(fp, "%d\n", &step);
    		//printf("%d\n", step);
    		fclose(fp);
    		if (step >= 25) {
    			
    		}
    	}
    }
    ・このコードは、raspberry pi内のdht11_example.pyを温度の数字のみを表示するように変更すると使える。
    ・if文の中に、何か制御を入れると温度が25℃以上の時に実行される。
    ・上記のコードを用いたパソコンのカメラを制御するC++のプロジェクト作成方法を次項から述べる。(環境はVisual Studio2015)
  4. Visual Studio 2015でOpenCVを動かすための環境設定 Windows編
    ・OpenCVをこちらから下記の図のようにダウンロードする。

    #ref(): File not found: "wiki7.png" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    #ref(): File not found: "wiki8.png" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ・ダウンロードしたファイルを起動するとOpenCVの解凍処理に進みます。Cドライブの任意の場所に解凍してください。
    ・解凍が完了すると「opencv」といるフォルダが生成されています。
    ・次は、ソースコード上で静的リンクライブラリの指定が可能にするために「opencv_lib.hpp」を作成しましょう。
    ・作成場所は「C:\任意の場所\opencv\build\include\opencv2\opencv_lib.hpp」となります。
    ・opencv_lib.hppの中身は次のように記述してください。
    #if _DEBUG
    #pragma comment(lib, "opencv_calib3d2411d.lib")
    #pragma comment(lib, "opencv_contrib2411d.lib")
    #pragma comment(lib, "opencv_core2411d.lib")
    #pragma comment(lib, "opencv_features2d2411d.lib")
    #pragma comment(lib, "opencv_flann2411d.lib")
    #pragma comment(lib, "opencv_gpu2411d.lib")
    #pragma comment(lib, "opencv_highgui2411d.lib")
    #pragma comment(lib, "opencv_imgproc2411d.lib")
    #pragma comment(lib, "opencv_legacy2411d.lib")
    #pragma comment(lib, "opencv_ml2411d.lib")
    #pragma comment(lib, "opencv_nonfree2411d.lib")
    #pragma comment(lib, "opencv_objdetect2411d.lib")
    #pragma comment(lib, "opencv_ocl2411d.lib")
    #pragma comment(lib, "opencv_photo2411d.lib")
    #pragma comment(lib, "opencv_stitching2411d.lib")
    #pragma comment(lib, "opencv_superres2411d.lib")
    #pragma comment(lib, "opencv_ts2411d.lib")
    #pragma comment(lib, "opencv_video2411d.lib")
    #pragma comment(lib, "opencv_videostab2411d.lib")
    #else
    #pragma comment(lib, "opencv_calib3d2411.lib")
    #pragma comment(lib, "opencv_contrib2411.lib")
    #pragma comment(lib, "opencv_core2411.lib")
    #pragma comment(lib, "opencv_features2d2411.lib")
    #pragma comment(lib, "opencv_flann2411.lib")
    #pragma comment(lib, "opencv_gpu2411.lib")
    #pragma comment(lib, "opencv_highgui2411.lib")
    #pragma comment(lib, "opencv_imgproc2411.lib")
    #pragma comment(lib, "opencv_legacy2411.lib")
    #pragma comment(lib, "opencv_ml2411.lib")
    #pragma comment(lib, "opencv_nonfree2411.lib")
    #pragma comment(lib, "opencv_objdetect2411.lib")
    #pragma comment(lib, "opencv_ocl2411.lib")
    #pragma comment(lib, "opencv_photo2411.lib")
    #pragma comment(lib, "opencv_stitching2411.lib")
    #pragma comment(lib, "opencv_superres2411.lib")
    #pragma comment(lib, "opencv_ts2411.lib")
    #pragma comment(lib, "opencv_video2411.lib")
    #pragma comment(lib, "opencv_videostab2411.lib")
    #endif
    ・opencv_lib.hpp作成が終わったら、Windowsの環境変数のpathにOpenCVの動的ライブラリを登録しましょう。
    ・動的ライブラリが配置されてる場所は「C:\任意の場所\opencv\build\x64\vc12\bin」ですので、それを以下の図の所に入力してください。
    ・;C:\任意の場所\opencv\build\x64\vc12\binの最初の;を忘れないでください。

    #ref(): File not found: "wiki9.jpg" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    #ref(): File not found: "wiki10.jpg" at page "スマホの加速度をPCで取得する方法(node.js使用)"

  5. Visual Studio 2015でOpenCVを動かすための環境設定 Visual Studio2015編
    ・Visual Studio 2015では、プロジェクトがOpenCVを認識できるようにOpenCVの「includeフォルダ」と「ライブラリフォルダ」を設定します。
    ・まず、「ファイル>新規作成>プロジェクト」をクリックして、Win32コンソールアプリケーションの新しいプロジェクトを生成しましょう。
    ・プロジェクト名は「opencvsample」にします。

    #ref(): File not found: "wiki11.jpg" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    #ref(): File not found: "wiki12.jpg" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ・プロジェクトが生成されたら、x64用アプリケーションを作成するように構成を変更しましょう。
    ・「ビルド>構成マネージャー」をクリックして、アクティブソリューションプラットフォームを「x86」から「x64」に変更します。

    #ref(): File not found: "wiki13.jpg" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    #ref(): File not found: "wiki14.jpg" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ・これからOpenCVの「includeフォルダ」を指定します。
    ・ソリューションエクスプローラーのプロジェクト名を選択し、マウスを右クリックすると、メニューが表示されます。
    ・メニューから「プロパティ」を選択するとプロジェクトのプロパティページが表示されます。
    ・プロジェクトのプロパティページの左側のツリーで「構成プロパティ>C/C++>全般」を選択します。右側の設定画面に「追加のインクルドディレクトリ」が見えますね?そこに「C:\任意の場所\opencv\build\include」を設定します。

    #ref(): File not found: "wiki15.jpg" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    #ref(): File not found: "wiki16.jpg" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ・次は、「ライブラリフォルダ」を指定します。
    ・プロジェクトのプロパティページの左側のツリーで「構成プロパティ>リンカ―>全般」を選択します。
    ・右側の設定画面に「追加のライブラリディレクトリ」が見えますね?そこに「C:\任意の場所\opencv\build\x64\vc12\lib」を設定します。

    #ref(): File not found: "wiki17.jpg" at page "スマホの加速度をPCで取得する方法(node.js使用)"

    ・これで、環境設定は終わりです。
    ・最後に、温度が25℃以上になったらカメラからの画像を保存するコードを載せる。
    ・↓opencvsample.cppのコード
    // opencvsample.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
    //
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include "stdafx.h"
    #include <opencv2/opencv.hpp> // インクルードファイル指定
    #include <opencv2/opencv_lib.hpp> // 静的リンクライブラリの指定
    using namespace cv; // 名前空間の指定
    int main(int argh, char* argv[])
    {
    	FILE *fp;
    	int str_max = 256;
    	char buf[256];
    	int step, kk, n_line;
    	cv::VideoCapture cap(0);//デバイスのオープン
    							//cap.open(0);//こっちでも良い.
    	if (!cap.isOpened())//カメラデバイスが正常にオープンしたか確認.
    	{
    		//読み込みに失敗したときの処理
    		return -1;
    	}
    	while (1) {
    		//Sleep(3000);
    		cv::Mat frame;
    		cap >> frame; // get a new frame from camera
    					  //
    					  //取得したフレーム画像に対して,クレースケール変換や2値化などの処理を書き込む.
    					  //
    		cv::imshow("window", frame);//画像を表示.
    		fp = fopen("command.txt", "r");
    		if (fp == NULL) {
    			printf("can't open file\n");
    			return -1; /*abort();*/
    		}
    		n_line = 0;
    		while (fgets(buf, str_max, fp) != NULL) {
    			n_line++;
    		} //行数のカウント
    		fclose(fp);
    		fp = fopen("command.txt", "r");
    		for (kk = 0; kk < n_line - 1; kk++)//上からn_line-1行は読み飛ばす
    		{
    			fgets(buf, str_max, fp);
    		}
    		fscanf(fp, "%d\n", &step);
    		//printf("%d\n", step);
    		fclose(fp);
    		if (step >= 25) {
    			//cv::Mat frame;
    			//cap >> frame; // get a new frame from camera
    						  //
    						  //取得したフレーム画像に対して,クレースケール変換や2値化などの処理を書き込む.
    						  //
    			//cv::imshow("window", frame);//画像を表示.
    			cv::imwrite("img.png", frame);
    		}
    		int key = cv::waitKey(1);
    		if (key == 113)//qボタンが押されたとき
    		{
    			break;//whileループから抜ける.
    		}
    	}
    	cv::destroyAllWindows();
    	return 0;
    }
    ・stdafx.hのコード
    #pragma once
    #include "targetver.h"
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <tchar.h>
    #include <windows.h>

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS