2013年7月5日金曜日

レガボンドについて

たまたま会社でちらりと見せてもらったのですが、レガボンドという面白い素材があるようです。

最近、駅でポスターを固定している板が画鋲も糊も使わず固定しているように見えて疑問に思っていたのですが、一つ謎が解明したかも。
ポスターを貼っていない掲示板を見つけたら、ちょっと触って確認してみたいところです。

こういったのをクローラにして壁面のぼらせるとかどうなんでしょうね?
ちょっとデータの読み方がわかりませんが、50mm*50mmで300gぐらいを保持できるとみればよいのかな?
夢膨らむ素材です!

2013年5月23日木曜日

RaspberryPi で Canon EOS をコントロールする

この記事はまだ途中です。

Raspberry PIでCanon EOSのシャッターを制御します。
gphoto2というソフトがあり、こちらを使うとカメラのコントロールが行えます。
まずは、apt-getで試してみましたが、インストールされるのは少し古いバージョンでした。
そのため、EOS7Dは動作させられましたが、EOS KISS X7は動作しません。
EOS7Dで、以下を実行しました。
gphoto2 --capture-image-and-download
カメラとraspberryをUSBケーブルで接続し、上記コマンドを入力するとシャッターが押され画像がraspberryに転送されます。
ただ、画像転送できるのは1枚目のみ。ちょっと使えないかも。

やはり最新のgphoto2を使ったほうがよさそうです。

まずは、ソースを取得します。
で、ついでに2.5.2のRelease Notesを見ると、RaspberryPIについても記述があり対応しているようです。
さらに、EOS100D(Kiss X7)も対応とのこと!
以下を取得しました。
gphoto2-2.5.2.tar.gz
libgphoto2-2.5.2.tar.bz2
取得したソースを展開します。

インストール前にいくつか、必要なものを入れておきます。
sudo apt-get install automake autoconf
sudo apt-get install gettext libtool

libgphoto2からmakeしていきます。
 cd libgphoto2-2.5.2/
 env CFLAGS="-I/usr/local/include" CPPFLAGS="-I/usr/local/include"   LDFLAGS="-I/usr/local/lib" ./configure
エラーなく完了したら、次にmakeです。
 make
無事に完了したら、
 sudo make install
これで、とりあえずlibgphotoのインストールが完了しました。

次に、gphoto2をインストールしていきます。
 cd ../gphoto2-2.5.2/
 ./configure
とすると、popt.hが無いと怒られます。
 sudo apt-get install libpopt-dev

もういくつかの設定がありました。
 export LD_LIBRARY_PATH=/usr/local/lib

とりあえず、以下も。
 cd /usr/bin/
 sudo ln -s /usr/local/bin/gphoto2-config
たぶんいらないです。

これで、以下のように./configureをすると無事に通りました。
 ./configure --prefix=/usr/local/  --with-libgphoto2=/usr/local/

後はmakeです。
 make
 sudo make install
これで、インストールは完了です。

ただ、X7をつないでも認識してくれないです。。。なんでだろ?
もうちょっと調べてみます。

2013年4月26日金曜日

EOS Kiss X7を買いました

先日発売になったCanonのEOS kiss X7を買ってしまいました。
とりあえずこの小ささに惚れた!
一眼レフなのに、400グラムを切るサイズ(407gでした!)。すばらしい!
カメラとしてのレスポンスも軽快で良いです。
いやぁ、これは良い買い物しました!
で。CanonのEOSシリーズはパソコンから色々弄れるソフトがありますよね。EOS utilityってやつです。
パソコンから触れるのも魅力的なんですが、androidからも触ることができます。
有料ですが、DSLR Controllerというソフトウェアがあります。
さっそくX7で動かしてみました。
ちょっとレスポンス鈍いところもあるんですが問題なく動いてくれてます。
こういう楽しみ方できるのもCanonの魅力かも。
次はraspberrypiで動かしたりできないかなぁ?

2013年3月25日月曜日

p2vをしてみた

タイトルままですが、古いLinuxサーバを吸い上げて仮想環境に移しました。
やったことを忘れないうちにまとめておきます。

  1. VMware vCenter Converter Standalone Clientのインストール
  2. VMWare Player上にてESXi5[VMware-VMvisor-Installer-5.1.0-799733.x86_64]をインストール
  3. 吸い上げ 実環境からESXiへ
  4. ESXiからVMPlayer形式へ
といった流れで実施しました。
最後の2工程が1つになるんじゃないかと思いますが、調べていません。
工程2が少し躓いたポイント。工程3も注意点ありますので、以下に記載しておきます。

工程2
VMware-VMvisor-Installer-5.1.0-799733.x86_64をダウンロードしてきて、Vmware Player環境にインストールします。
実施した環境はThinkpad L430でしたが、標準ではIntel VT-xまわりの設定がVMware側で気に入らない模様。
リブートしてBIOS設定を変更する必要があります。
変更後、インストールが可能となりました。

工程3
実環境からESXiへデータを移すタイミングでかならず失敗するのです。
どうやら、vCenterの実行の仕方が悪いらしい。
vCenterのアイコンを右クリック「プロパティ」「互換性」タブをクリック。
特権レベルの「管理者としてこのプログラムを実行する」をクリックしてやるとOKでした。


2013年3月24日日曜日

i2cのモータドライバを使う

やっとこさ、年度末のバタバタも終わりです。
raspberrypiでi2cのモータドライバを動かします。

i2cモータドライバ
http://akizukidenshi.com/catalog/g/gK-06273/

i2cのやり方は以下を参考にしました。
http://www.pwv.co.jp/~take/TakeWiki/index.php?raspberrypi%2FRaspberry%20Pi%E3%81%A7IO%E5%88%B6%E5%BE%A1#g133bee3

/etc/modulesに以下を追加します。
i2c-dev

/etc/modprobe.d/raspi-blacklist.conf を編集します。
コメントアウト
#blacklist i2c-bcm2708

設定したら、リブートした後に以下でi2cのツールを入れておきます。
sudo apt-get install i2c-tools

配線については、
DRV8830(4pin)-Rasp 5V
DRV8830(5pin)-Rasp Gnd
DRV8830(9pin)-
DRV8830(10pin)-

DRV8830の4pinと5pinの間にセラコンを入れておきます。

これで事前準備完了です。


動作確認として、以下を実行します。


 $ sudo i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] Y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- 64 -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

正しく認識されています。

とりあえず、今日はここまで。

2013年2月13日水曜日

予告?i2cのモータドライバを使う

少し、更新間隔が空いてしまいました。。。
週末もバタバタとしてしまい、時間がありません。年度末は忙しいです。

忙しいのに秋月に行って以下を買ってしまいました。
http://akizukidenshi.com/catalog/g/gK-06273/
i2cのモータドライバです。

こちらをRaspberry Piで動かしてみようかと考えています。
接続すればほぼ動くのでは、と思っているので、あまり面白みがないかもしれませんが。
とりあえず、RaspberryPiでモータを回して、台車を動かすといったことをやりたいと思っています。
台車は既製品になる予定。
とりあえず、材料は揃っているので、後は手を動かすだけです。
時間が欲しい!!

2013年1月7日月曜日

libmodbusのブロードキャストについて

libmodbusのブロードキャストの方法について、暫定的に行った方法についてまとめておきます。

バージョン:
libmodbus-3.0.3

現状:
ブロードキャストでmodbus_write_registers()を使った場合、関数からの戻りが大変遅い。
ブロードキャストの設定は、modbus_set_slave()で指示通り、MODBUS_BROADCAST_ADDRESSを使った。

対応:
src/modbus.c:1253行目あたりに以下を追加した。


rc = send_msg(ctx, req, req_length);

if(ctx->slave == 0){
//printf("slave ID:0 -> return:%d\n",rc);
return rc;
}

if (rc > 0) {
uint8_t rsp[MAX_MESSAGE_LENGTH];


slaveIDが0の場合、ブロードキャストであると判断して、receiveの処理を行わないように変更しています。

上記変更後、
 make
 make install
を実行し、反映させます。


ただ、実環境では動かない場合がありました。(原因調査は時間切れです。。。)

2013年1月3日木曜日

明けましておめでとうございます

明けましておめでとうございます。
今年の目標は、、、うーん、まだ決まっていません。

2013年始まってからの流れ。
1/1 実家でノンビリ
1/2 家でノンビリ
1/3 働くか! <-今ここ

~~~
早い年明けとなりまして、libmodbusで詰まっています。
broadcastの使い方が分かっていません。
broadcastでメッセージを発行した場合、関数からの戻りが遅くなってしまう!
slaveIDの設定は、MODBUS_BROADCAST_ADDRESSという定義でやれ、との指示があるのですが、ライブラリ内をみても、あんまり使われてはいない模様?
うーん、もう少し調べてみます。

2012年12月20日木曜日

libmodbusのコマンドとファンクションコードの対応

とりあえず、必要そうなところだけまとめてみる。

Read data
code func
0x01 modbus_read_bits()
0x02 modbus_read_input_bits()
0x03 modbus_read_registers()
0x04 modbus_read_input_registers()
- modbus_report_slave_id()
Write data
code func
0x05 modbus_write_bit()
0x06 modbus_write_register()
0x0F modbus_write_bits()
0x10 modbus_write_registers()
Write and read data
code func
0x17 modbus_write_and_read_registers()


2012年12月12日水曜日

libmodbusを使う

VoyageLinuxでlibmodbusを使う。

ソースをダウンロードする。
http://libmodbus.org/

解凍する。
tar xvfz libmodbus-3.0.3.tar.gz


解凍されたディレクトリに入り、
./configure
make
make install
でOKのよう。

/tests のサンプルを実行する。
こちらも
make
だけで、コンパイルされた。


逆にtests/READMEに書いてある方法だとコンパイルできない??
gcc ./random-test-server.c -o random-test-server `pkg-config --libs --cflags libmodbus`
この場合、ソース内の
#include <modbus.h>

#include <modbus/modbus.h>
とする。

後は、ソース内のttyUSB0とかをttyS1などに変更した。

とりあえず、modbus接続された機器になんらかの指令は出せている模様。

VoyageLinuxのremountroとremountrwについて

VoyageLinuxのremountroとremountrwについて調べてみる。

場所はどこ?

# which remountrw# which remountrw
/usr/local/sbin/remountrw

それぞれの中身を見てみる。
# cat remountro
#!/bin/sh
sync
sleep 1
mount -o remount,ro /

# cat remountrw
#!/bin/sh
mount -o remount,rw,noatime /

syncの後のsleep1ってなぜ?
1秒じゃない場合、syncはどう動くの?
と謎が出たが、とりあえず未調査。

VoyageLinuxでlm_sensorsを動かす(失敗?)

VoyageLinux上で、CPU温度を取りたい。


apt-get install lm-sensors
sensors-detect
で出力されたログの通り以下を編集する。
vi /etc/modules

再起動し、
lsmod
で確認すると、
i2c_i801
が読み込まれている模様。

CPU温度を取得してみるが、温度がまったく変化しない。
# sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +26.8 C  (crit = +100.0 C)

何かがおかしい。。。

2012年12月7日金曜日

Voyage Linuxをインストール

Voyage Linuxをインストールする。

以下ハードウェアへインストール。
IEI WAFER-CV-N26001

インストール時の設定など。
Grubにいくつか設定追加が必要なよう。
i8042.nopnp
nolapic_timer
などを
vi /boot/grub/menu.lst
kernel ~~の行に追加。

インストール手順は、以下を参考にした。ステキなまとまりっぷり。

インストール後に、ファイルの書換が出来なくてあわてるというオチもあり。
remountrw
をいれて、マウントを行う必要がある。

~~~~
少し使っていて、以下のダイアログが出るようになった。
 EXT2-fs (sda1): warning: mounting unchecked fs, running e2fsck is recommended

指示の通り、以下を入力してみた。
e2fsck -c -f /dev/sda1

修復できた模様。