DreamerDreamのブログ

夢想家の夢です。〜揚げたてのモヤっとしたものをラフレシアと共に〜

3Dスキャナーを自作する ①ソフトウェアのインストール

 以前に3Dスキャナーって自作できるらしいという記事を書きました。

dreamerdream.hateblo.jp

 

今回、実際にソフトをインストールしてみました。

 

その前に、ラズパイ用のラズパイカメラは必用不可欠ですので予め準備しておきましょう。

 

ソフトのインストール方法は簡単です。

こちらのFreeLSSというプロジェクトから

FreeLSS: The Free 3D Printable Laser Scanning System For the Raspberry Pi

Githubに飛び、Readmeファイルの内容をそのまま実行するだけです。

 

まずは、お決まりのRaspbianを最新状態にします。

sudo apt-get update
sudo apt-get upgrade

 

次に依存関係のあるパッケージをインストールします。

sudo apt-get install libpng-dev libjpeg-dev git-core gcc build-essential unzip sqlite3 libsqlite3-dev libmicrohttpd-dev libcurl4-openssl-dev libiw-dev libssl-dev wiringpi

 

FreeLSSをダウンロードします

sudo git clone https://github.com/hairu/freelss

 ダウンロードしたディレクトリに移動します

cd freelss/src

 

ビルドします

sudo make

 

以上でインストールは完了です。

 

実行します。

sudo ./freelss

 

これで80番ポートが開いてWebサービスとして起動します。

ブラウザでラズパイのアドレスへアクセス、もしくはラズパイ自身のブラウザから「localhost」アドレスを開いてみましょう。

f:id:DreamerDream:20181206105000p:plain

なんともシンプルなフォームです。これで起動成功です!

 

カメラを起動させるとラズパイカメラの映像が映ります。

f:id:DreamerDream:20181206105034p:plain

 

さて、ここから注意点です!

ラズパイを起動するたびに自動的にFreeLSSを開始するには下記コマンドを実行します。

sudo make startup

 

と、書かれていますが、↑これをやると、設定でエラーが出てしまって任意のGPIOポートやステップ角の設定が出来ない事態に陥ることが判明!

実は、freelssのデフォルトで設定されているGPIOと回路図に記載されているGPIOポートが違うのでポートが設定出来ないとなると致命的なのです。

ERROR

Error opening properties file for writing:

 

 

コミュニティでも問題ありということで、その理由と解決策が挙がっています。

FreeLSS:Error saving settings (and wrong pin defaults?) (Page 1) — ATLAS 3D & FreeLSS — SoliForum - 3D Printing Community

 

どういうことかというと、piユーザーで実行した場合、/home/pi/に任意のpropertiesファイルを作られるんだけど、自動起動のサービスはrootから実行されるので/home/root/にpropertiesファイルが見つからないから無理だよー!

ということだそうです。

試しに/home/rootディレクトリを作ってfreelssを入れてみたんだけどそういう問題じゃないらしい。

公式のReadmeには「FreeLSSはroot(またはハードウェアのピンにアクセスできる別のユーザ)として実行する必要があります。」

と書かれているのでsudo権限のあるユーザーで実行すれば問題ないと思ったんですけどね。

 

さて、解決策としてはコミュニティに書かれている通りなんですけど、

既にmake startupをしちゃった場合には

sudo update-rc.d freelss remove

を実行して自動起動を取消ます。

piのホームディレクトリ、/home/pi に

cd /home/pi

sudo nano freelss.sh

としてfreelss.shというスクリプトを作ります。

freelss.shの中は

#!/bin/bash
sudo freelss

と、sudo freelssを実行するというコマンドを書きます。

 

そのまま

sudo bash freelss.sh

としてfreelssが立ち上がればスクリプトはOKです。

 

次に、起動時にこのスクリプトを読み出すようにします。

/home/pi/.config/autostart ディレクトリにfreelss.desktopファイルを生成します。

 

通常、.から始まる隠しファイルを見るにはls に-aオプションを付けてみましょう。

sudo ls -a /home/pi/

.configディレクトリはデフォルトで存在していると思います。

もし、存在していなければ以下の方法が実行できるかどうかは解りません。

sudo ls /home/pi/.config/

で既にautostartディレクトリがあるか確認します。なければmkdirコマンドで作りましょう。

sudo mkdir /home/pi/.config/autostart

freelss.desktopファイルを作ります。

sudo nano /home/pi/.config/autostart/freelss.desktop

 

freelss.desktopの中には

[Desktop Entry]
Type=Application
Exec=bash /home/pi/freelss.sh
Terminal=false
Notify=false

と書き、保存します。

 

再起動してブラウザで確認しましょう。

「SEttings」メニューの中から「setup」を選択して

f:id:DreamerDream:20181207105802p:plain

Unit of lengthで単位をInchesからMillimetersに変更してSaveしてみましょう。

エラー無く正常に保存されれば成功です。

f:id:DreamerDream:20181207105906p:plain

 

無事にソフトウェアがインストール出来たのであとはポートの設定と回路の作成をしてカメラとレーザーを固定すれば使えます。 (先が長い・・・)

 続↓

dreamerdream.hateblo.jp