2014年9月10日水曜日

Raspberry Pi にPostgisをインストールする

とある方の手乗りGISに憧れてPostgresqlをインストールしてみた。
その際に、激しくつまづいて3日ほどはまってしまったので、今回は成功した方法を書いておく。

とりあえず、いつも通りにコマンドラインから以下のコマンドを発行。

Sudo useradd postgres #postgresqlの管理ユーザーを作成
sudo passwd postgres #postgresに対する新しいパスワードを設定する
Sudo apt-get install postgresql-9.1-postgis
この時点でPostgreSQLlとPostGISがインストールされることになる。
それぞれのバージョンは次のとおり。
ソフトバージョン
PostgreSQL9.1
PostGIS1.5
postgresにログインしてデータベースを確認してみると分かるのですが、この時点ではPostGISのテンプレートファイルはインストールされていない。
本当ならば、テンプレートファイルを作成していくところだが、今回は面倒くさいので放棄。
su - postgres #postgresに移行
[PASSWORD]:******
createdb postgis
createlang plpgsql postgis #もしかするとすでにインストールされてるかも
psql -d postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
psql -d postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql
よし、これでPostGIS特有のSQL構文が使えるようになった。

テンプレートが作りたい場合は、このへんを参考にするといい

2014年8月15日金曜日

トラ技のディスクリートアンプ

トランジスタ技術2014年8月号に掲載されたディスクリートアンプを作ってみました。

今回は、作った感想(考察ができるほどの技術を持ち合わせていないため)と、使った感想を書きたいと思います。


 

  • 作ってみて

実際に作ってみると、非常に難しいと思いました。なぜなら、ディスクリートアンプである以上、基本素子を組み合わせて作成するので、パーツ選びが大変大変(汗
抵抗やコンデンサ、トランジスタの選別が地味に大変です。抵抗値も出来るだけこだわりたかったので、一本ずつ計測して近い数値のものを選び出しました(ただし、カーボン皮膜抵抗)。

コンデンサは、オーディオ初心者の私にはよくわからなかったので、無極性のフィルムコンデンサを使いました。

トランジスタは、熱結合する都合上マチットペアのものを見つけ、下準備だけで合計3日ほどかかりました。

ブレッドボードでの試作は必ずします。そのとき、大き目のブレッドボードを使ったほうがいいでしょう。

いざ、蛇の目を使って配線を始めると部品点数の多さから、うまく線を引っ張ることが出来ずはじめは手こずりましたが、だんだん慣れていくときれいに作れるようになりました。


 

  • 使ってみて

使ってみて思ったことは、高音域から低音域までほとんど味付けの薄いアンプに仕上がったと思います。

立ち上がりも、無音状態に近くクラシックなどの音楽を聴くのに適しているかなぁと思いました。

ドンシャリでなかったことには好感が持てました。ただ、入力する音量を大きくすると高音域では音割れが目立ちました。


 

今回の製作を通して、オーディオの深さと楽しさを味わうことが出来ました。専用基盤を作ればもっと簡単に、さらによい音に改良できると思います。

次は、opアンプをつかってみたいです。

2014年7月19日土曜日

Raspberry Pi カメラモジュールを使って監視カメラを作る – 其の二

この投稿は、2014/07/19 0:00:39 に 趣味と技術のノート に再発行されました
Raspberry Pi カメラモジュールを使って監視カメラを作る – 其の二


前回の更新から非常に間隔があいてしまいました。まとめるのって無づかしいです。
それでは、今回の内容はmotion-mmal(以下motionとする)の起動スクリプトと、ホームサーバーとの同期です。

motionを起動するのは簡単です。いつものように適当なディレクトリに移動します。
私はめんどっちぃので、ホームディレクトリに作ってしまいました。

sudo nano start_with_args
と打ち込んで、起動ファイルを作成します。中身はこんな感じです
pi@PI01 ~ $ cat start_with_args
cd /opt/motion-mmal
sudo ./motion -n -c motion-mmalcam.conf
cd ~/
移動先などは、前回インストールしたディレクトリに設定してください。
起動ファイル単体では、自動起動を実現できませんので、設定を変更します。

以下のように設定してみてください。※1
sudo nano /etc/ rc.local
#exit 0 の手前に以下を追加。スクリプトのディレクトリを確認すること
/home/pi/start_with_args&
exit 0
こんな感じで追加できたら再起動してサービスを確認してみてください。Motionが動いていると思います。

設定ができたら次は、ホームサーバーとの自動同期です。
Raspberry Pi本体に大量の記憶領域がある人は、意味がないかもしれません。私のように、最低限の容量しかない場合、SDカードの容量を節約したいと思うはずです(一日稼動していると1GB超えますんで・・・)。というわけで、cronとsambaを使って自動バックアップを行いたいと思います。
取り合えず、スクリプトをシコシコ書いていきます。
ただし、今回は元ファイルを削除してしまいます。注意してください。
下準備をします。
#適当なディレクトリにスクリプトを置きます。
sudo mkdir  /opt/common-scrypts
sudo nano daily_work_scrypts.sh
次に、スクリプト本体を書きます。
pi@PI01 /opt/common-scrypts $ cat daily_work_scrypts.sh
#!/bin/sh
FILENAME=`date +%Y-%m-%d`.zip
#prevent command
cd /home/pi/motion
mkdir  `date +%Y-%m-%d`

#move files into data folder
for var in *.jpg
do
     mv $var `date +%Y-%m-%d`
done

for arr in *.avi
do
     mv $arr `date +%Y-%m-%d`
done

#Compress folder into zip-file for reduce size
zip -T -r ${FILENAME} `date +%Y-%m-%d`

#Mount SAMBA server as samba on /home/pi/
mount -t cifs -o username='USER',password='PASS' //SERVER(IPアドレスなど)/(マウントしたいディレクトリ)/ /home/pi/samba
cp ${FILENAME} /home/pi/samba/
cp `date +%Y-%M-%d` /home/pi/samba/

#Un-mount samba server
umount //SERVER(IPアドレスなど)/(マウントしたいディレクトリ)/

#delete not in need zip file and folder
rm -rf ${FILENAME}
rm -rf `date +%Y-%m-%d`

#exit scrypt
exit
と、こんな感じにスクリプトを書きます。勿論、マウントするサーバーなどは、自分の環境に合わせて書き換えてください。
スクリプトを自動実行するに当たって、実行権を付与しなければなりませんので、以下を実行。
#スクリプトと同じディレクトリで
sudo chmod +X dail_work_scrypt
次に、cronの設定をします。詳しい設定は外部サイトなどを参考にしてください(個人的には日経LINUXなどを買うのが一番かと思いますが、この程度なら必要はないでしょう)。
sudo crontab –e

#一番最後に以下を追加。

#Sync server scrypt.
59 23 * * * /opt/common-scrypts/dail_work_scrypt&

これで、毎晩23時59分に同期処理が行われます。
どうですか?簡単でしょうか。僕は、結構苦労しました。実行権とかぜんぜん知らなかったので、よい勉強になったとおもいます。

次回はHC-06を使ったワイヤレスRS232C(9pinじゃないよ・・・)通信を実現したいと思います。

つづく。
参考サイト
※1 : 「http://homebrew.jp/show?page=1445

2014年7月18日金曜日

近況報告 - 2014/7/18

ここのところ非常に時間が割きづらくなっております。

院生さんに頼まれている課題をこなす方法も考えているのですが、いまいちです。

そうこうしているうちに、名古屋大学さんは雲同定の方法を見つけたようで、先を越されてしまったなぁと、非常に苦い思いをする羽目に。
どういう方法をとっているかは、定かではありませんが、おそらくは形状マッチングなどを使用しているのではないかと思われます(他にも、ハード面でいくつかの方法が考えられるが・・・)。

他にも、雲の中心を求める方法を考えているのですが、これには彩度が有効そうだなぁと思っています。雲が中心に行くにつれて日光が遮られる割合が高くなるならば、閾値を設定してやれば簡単にわかりそう。

他に、面積から中心を求められるんじゃないかとか、いろいろ考えましたが、彩度を使った方法が一番有効そうです(保障なしw)。

ていうか、研究室のみんなもうちょっとがんばってくださいよ!DSPで止まってないで、最低でもFPGAやろうよ!ラズパイぐらい安いんだから、買ってこようよ!!!

愚痴ばっかり言ってもしょうがないですけどね。

2014年5月10日土曜日

Raspberry Pi カメラモジュールを使って監視カメラを作る

RaspberryPiのカメラモジュールをつかって監視カメラを作る。

  1. どうしてUSBカメラなの!カメラモジュールも使わせて!!

    Internet上のあちこちのサイトにRaspberry Piを使った監視カメラの設定方法が公開されています。しかし、悲しいことにRaspberryPiに本来備わっているカメラモジュールのポートを使わず、安価なWebカメラをUSBポートに挿してwebカメラにしようというものばかりで、私がほしかった情報にはたどり着けませんでした。そこでカメラモジュールを使った監視カメラの作り方を記事に起こしたいと思います。
  2. カメラをくっつけて・・・の前に設定!

    カメラモジュールをマウントする。心躍りますね!でも、ちゃんと使ってあげるにはちゃんと設定しないといけません。以下の操作にしたがって設定してみてください。

    カメラモジュールを使えるようにする
    sudo raspi-config
    と打ち込んでカメラを有効にします。
    Enable Camera -> Enable
    カメラモジュールを有効にしたら raspi-config を完了して再起動します。
  3. IPアドレスを固定する

    一例として自分のRaspberry Piの設定を載せておきます。
  4. pi@PI01 ~ $ sudo cat /etc/network/interfaces
    auto lo
    
    iface lo inet loopback
    iface eth0 inet static
    address 192.168.0.123
    netmask 255.255.255.0
    gateway 192.168.0.1
    
    allow-hotplug wlan0
    iface wlan0 inet manual
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
    #iface default inet dhcp
    
    iface wlan0 inet static
    address 192.168.0.123
    gateway 192.168.0.1
    netmask 255.255.255.0
    
  5. sambaを導入する
    sambaの導入方法については以前の記事にまとめましたので、そちらのリンクを張っておきます。

    sambaの導入は必須ではありませんが、導入しておけば撮影されたファイルをLAN内の外部から簡単に見ることができます。
    Raspberry Pi にSamba4を導入する
  6. さぁ、細かい設定だ!
    細かい設定に移る前にカメラモジュールがしっかり使えるかどうか、検証する必要があります。
    以下のコマンドをうってみてください。

    raspistill -o image.jpg

    保存された画像を確認して問題がなかったら、次に進みましょう。

    以下、コマンドを打ち込んでいきます。
    sudo apt-get update
    sudo apt-get install motion
    sudo apt-get remove motion
    cd /tmp
    sudo wget https://www.dropbox.com/s/xdfcxm5hu71s97d/motion-mmal.tar.gz
    sudo tar -zxvf motion-mmal.tar.gz
    sudo mkdir /opt/motion-mmal/
    sudo mv  motion /opt/motion-mmal/
    sudo mv motion-mmalcam.conf /opt/motion-mmal/
    cd /opt/motion-mmal/
    sudo chmod  X  motion
    
  7. 次に、motion-mmalcam.confを設定するのですがこのあたりは本家のmotionの設定方法に譲ります。  motion-mmalを起動します。以下のコマンドを入力。
    sudo ./motion -c motion-mmalcam.conf
    自分の環境において正常に動作しているか確認してみてください。 起動できない場合は必要なファイルを追加したりする必要があります。 私の場合"libjpeg62"が足りませんでした。たとえば、こんな風に足せる場合もあります。
    sudo apt-get install libjpeg62
    それでは、カメラの状況を見て見ましょう。 "<あなたのPiのIPアドレス>:8081" にアクセスしてみてください。

    どうでしょうか、何か映っていますか?灰色の画面で何も表示されない場合は失敗です。
    とりあえず今回はここまでとします。次回はホームサーバーと連携して画像をバックアップするシステムや、起動時にmotionを自動起動するスクリプトを公開したいと思います。

    つづき「Raspberry Pi カメラモジュールを使って監視カメラを作る – 其の二

2014年4月10日木曜日

キャラクター LCD を Arduinoで使う

キャラクタLCDについて実物を知らない人はこんな記事読まないと思うんだけど、一応ちょこっと説明しておくことにする。

たとえばこんなものがそうだったりする。 ←クリック!

これはバックライトが付いてるけど、ついて無いのもあるよ。
今回はSC1602BS*Bを使う。
Arduinoで液晶を扱うのは非常に簡単で、"LiquidCrystal.h"をインクルードして使うピンを宣言してあげればすぐに動く。

たとえば、今回の液晶モジュールだとインクルーして宣言するまではこんな感じ。

#include 

LiquidCrystal lcd(12,11,5,4,3,2); //それぞれのピンアサインを参考に適宜変更。


よく使う関数とか、というかこれ使わないと液晶が使えない。大体こんな感じでsetup()を書く
void setup(){
 lcd.begin(16, 2);
 lcd.clear();
 lcd.setCursor (0, 0);
}
あとは、printとかを使えば文字が出る。

2014年2月11日火曜日

クリックした位置を保存するソフト。

今回は研究室の先生に依頼されて、画像をクリックしたポイントのログを取るソフトを作りました。
ライセンスはGPLとしますので、ソースコードともに公開します。

ほかの大学の方や、研究職の方は使うときに一応メールかコメント書いてください。
別に書かなくてもいいのですが、僕の自己満足につながるので(笑)

使い方は特に書かなくてもいいようになっています。
以下にリンクを置いておきます。
https://db.tt/pNwNE00S

2014年2月2日日曜日

アクセス数が伸びてきた☆

こんなちゃちくて、あんまり役に立てないかもしれない僕のブログも遂に毎日PVがつくようになりました。

とはいっても平均して一日あたり8PVほど・・・とほほ・・・

で、でも、今まではPVないときとかあったんだから!
何気にYahooでフルカラーLED検索すると一ページ目あたりに出てくるんだから!
結構がんばったな、俺。っておもえる。

これからも、がんばるよ。

とりあえず、初音ミクが現在位置を教えてくれるシステムをラズパイで作ったら、今度はArduinoでオシロスコープ作ろう。

2014年1月30日木曜日

テスト

明日は愛しの電磁気学のテストです。しかし、他のテストも重なっていて多忙です(笑)
秀目指して頑張ります!

2014年1月23日木曜日

GPS壊れた。。。orz

久々です。どうぞ2014年もよろしくお願いいたします。

さて、ここのところPostgreSQLとラズパイとGPSモジュールを使った遊びをしておりまして、ブレッドボード上で現在位置をしゃべらせるという @meketen さんの試みを自分もやっておりました。
何とか、SQL文を理解しつつデータベースを組み、GPIOからNMEA文を切り出しと必死こいていたわけです。

しかしそんななか、ついに完成。早速ブレッドボードを卒業してユニバーサル基盤にお引越し使用という計画のもと、夜中の一時から半田付け。
これがいけなかった。

まさかのPIN番号を間違えて短絡。GPSモジュールを破壊してしまいました。
秋月電気で買ったGT720-F(\2700)はあえなく、一月といかずにスクラップという涙ぐましい結果に。。。とほほ。。

今度は大学の研究費で買ってもらって、横流ししてもらおう。

なぜそんなことが可能かというと、なんと1年生の分際で研究室のセミメンバー的な存在となってしまい、ソフト開発からハードまで任されることが多くなってきたので、教授に必要なパーツを注文しておいてもらうことができるようになったからです。

またその話は今度にしますね!
今日は眠いからもう寝る。おやすみ。

2014年1月4日土曜日

TFTでデジタル時計を作るという地獄

久しぶりの投稿になります。
私自身、不本意ながらアルバイトを始めることとなり、少しずつお金がたまってきたので新しいArduinoのシールドを買ってしまいました!
買ったのはこの商品です。

Adafruit 1.8" 18-bit Color TFT Shield w/microSD and Joystick -


(画像をきれいに挿入する方法がBloggerではよくわからない!!だから画像なし!)

商品が届いてふたを開けると、ピンヘッダと本体とがばらばらの状態で鎮座しています。
しかしながら、箱の大きさを考えれば『ピンヘッダ取り付け済みかな?』と思ってしまう代物です。

手軽に購入できるのでぜひ購入してみてください。夢が広がります。