2014年3月26日水曜日

BeagleBoneBlackで画像処理

まずはopencvを入れる
# apt-get install opencv-dev
すげーいろいろ入る。
賢い人は先にopencv-docをいれて、
/usr/share/doc/opencv-doc/README
あたりを見て必要なものだけインストールしたほうがいいかも。

お試しのプログラム作成
main.cpp
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int main(int argc, char* argv[])
{
    cv::Mat src_img = cv::imread("sample.png");
    if(src_img.empty()) return -1;

    cv::imwrite("test.png", src_img);

    return 0;
}

$ g++ -o test main.cpp -I/usr/include -lopencv-core -lopencv-highgui
$ ./test

画像がコピーされる。
※圧縮されるので同じサイズにはならないかも

scpなどでホストPCで確認してもいいが、今回はlighttpdを入れたのでホストPCのブラウザで確認した。

2014年3月25日火曜日

LAN-W300AN/U2をBeagleBoneBlackで使う

Planexがよわよわでダメだったので、安かったLAN-W300AN/U2を買った。

そのままではBeagleBone Blackは認識せず。

カーネルビルドして、
ドライバービルドしてとか七転八倒したが、結局、あっさりと使えることが分かった。

https://forums.ubuntulinux.jp/viewtopic.php?id=10882

使ったのは

rt2800usbで動く。

/lib/firmware/にrt2870.binがあるのを確認
(無ければ、http://www.mediatek.com/en/downloads/から落として展開するとcommonのなかにあるかな。)

$ sudo su
# echo "rt2800usb" >> /etc/modules
# echo 'install rt2800usb /sbin/modprobe --ignore-install rt2800usb; /bin/echo "0789 0170" > /sys/bus/usb/drivers/rt2800usb/new_id' > /etc/modprobe.d/lan-w300an-u2.conf

/etc/network/interfaceに
# wireless network interface
auto wlan0
iface wlan0 inet static
   wpa-ssid "your ssid"
   wpa-psk  "your password"
   wpa-key-mgmt WPA-PSK
   wpa-driver wext
   wpa-ap-scan 1 # 1:visible 2:invisible
   wpa-proto RSN
   wpa-pairwise CCMP
   wpa-group CCMP
   address 192.168.111.2
   gateway 192.168.111.1
   dns-nameserver 192.168.111.1

   netmask 255.255.255.0

# modprobe rt2800usb
で認識するはず。

ifdown wlan0
iwconfig wlan0 mode Ad-Hoc
iwconfig wlan0 essid "bone"
ifconfig wlan0 192.168.111.2
とかすると、アドホックモードで動いた。 

    2014.4.15 追記
     iwconfig wlan0 key 1234-5678-90
     でwepパスワード1234567890も
      設定できた。

planexではつながらなかった壁越しでもOKだし、速いと思う。
5GHzでつながったし!

〜〜〜以下は古いメモ

・カーネルからビルドしてインストール
<http://obdnmagazine.blogspot.jp/2012/07/obdn-test-logitec-lan-w300anu2-lan.html>
を参考に

# sudo apt-get update
# sudo apt-get upgrade
# sudo apt-get install linux-firmware
# sudo apt-get install build-essential

・RT5527のドライバのビルド
<http://bernaerts.dyndns.org/linux/74-ubuntu/229-ubuntu-precise-dlink-dwa160-revb2>

2014年3月11日火曜日

BeagleBoneBlackにWifi

<http://www.amazon.co.jp/gp/product/B00ESA34GA/ref=oh_details_o01_s00_i06?ie=UTF8&psc=1>

【Amazon.co.jp限定】PLANEX 無線LAN USBアダプタ 150Mbps GW-USNANO2A (FFP)

を買ったのでまずは挿してみる。

  2014.3.13
  上のアダプタはどうも感度が悪そう。
  少し離れるとつながらなくなる。。

落ちたっぽい。電源容量不足?

挿したまま再起動。

$ lsusb
Bus 001 Device 002: ID 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

認識はしてそう。

$ iwconfig
wlan0     IEEE 802.11bgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm   
          Retry  long limit:7   RTS thr=2347 B   Fragment thr:off
          Power Management:on
          
lo        no wireless extensions.

eth0      no wireless extensions.

いろいろ紆余曲折したが
http://elinux.org/BeagleBoardUbuntu#Wi-Fi_Networking_.28command_line.29
から辿れる
http://ubuntuforums.org/showthread.php?t=202834
が一番参考になった。

ところで、11gのアクセスポイントは古いAirMacExpressをつかっているのだが、これは最新のMac OS X Marvericksはもちろん、Mountain LionのAirMacユーティリティ6.x.xでは設定できない。

Lionはもういないので途方暮れてクグッてみると、
http://support.apple.com/kb/DL1547?viewlocale=ja_JP&locale=ja_JP
AirMacユーティリティ5.6.1Windowsを発見。

Bootcampかパラレルズでなんとかなった。

以下は紆余曲折のときのメモ。
<http://www.openrtm.org/openrtm/ja/content/beaglebone-blackの設定(os非依存)>

を参考に/ete/network/interfaceを修正。
dhcpがとれていなさそう。
staticに変更。→カーネルパニック。

とりあえず再起動。

起動はしたがAPにつながっていない感じ。


2014年3月9日日曜日

BeagleBoneBlackをUbuntuで動かす

<http://tomowatanabe.hatenablog.com/entry/2013/12/15/202806>
ここを参考にして、
ubuntu-saucy-13.10-armhf-3.8.13-bone30.img.xz 
をSDに焼く。


i$ sudo dd bs=1m if=/Users/toshifumi/BeagleBoneBlack/ubuntu-saucy-13.10-armhf-3.8.13-bone30.img of=/dev/rdisk3

5分で焼けた。

BBBにいれてBootボタンを押しながら起動。

シリアルコンソールでログインOK。
$ ifconfig
eth0      Link encap:Ethernet  HWaddr d0:ff:50:08:dd:33  
          inet addr:192.168.111.107  Bcast:192.168.111.255  Mask:255.255.255.0
          inet6 addr: fe80::d2ff:50ff:fe08:dd33/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:95 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:19865 (19.8 KB)  TX bytes:3244 (3.2 KB)
          Interrupt:56 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1184 (1.1 KB)  TX bytes:1184 (1.1 KB)



etherもつながっています。

uEnv.txtを編集して再起動。Bootボタンを押さずにUbuntuが立ち上がりました。

mmcpart=2
bootfile=zImage  <---- 追加
optargs=fixrtc
uenvcmd=i2c mw 0x24 1 0x3e; kd=0; if test $mmcdev -eq 1; then mmc dev 0; if mmc
rescan; then kd=1; fi; mmc dev 1; fi; setenv mmcroot /dev/mmcblk${kd}p${mmcpart} ro
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${bootdir}/dtbs/${fdtfile}
loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}
mmcboot=echo Booting from mmc ...; run mmcargs; bootz ${kloadaddr} - ${fdtaddr}  <---- 追加


そして、2GBから4GBに拡張。
作業は参考ページと同じ。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          3.6G  296M  3.2G   9% /
/dev/root       3.6G  296M  3.2G   9% /
devtmpfs        248M  4.0K  248M   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none             50M  216K   50M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            248M     0  248M   0% /run/shm
none            100M     0  100M   0% /run/user

/dev/mmcblk0p1 1004K  490K  514K  49% /boot/uboot


ubuntu@ubuntu-armhf:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          1.8G  244M  1.5G  15% /
/dev/root       1.8G  244M  1.5G  15% /
devtmpfs        248M  4.0K  248M   1% /dev
none             50M  224K   50M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            248M     0  248M   0% /run/shm
/dev/mmcblk0p1 1004K  480K  524K  48% /boot/uboot
今はまだサイズが1.8GBになってますので、fdiskで拡張します
ubuntu@ubuntu-armhf:~$ sudo fdisk /dev/mmcblk0
ommand (m for help): p

Disk /dev/mmcblk0: 4023 MB, 4023386112 bytes
4 heads, 16 sectors/track, 122784 cylinders, total 7858176 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x80008000

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1   *        2048        4095        1024    1  FAT12
/dev/mmcblk0p2            4096     3751935     1873920   83  Linux

Command (m for help): d
Partition number (1-4): 2

Command (m for help): p

Disk /dev/mmcblk0: 4023 MB, 4023386112 bytes
4 heads, 16 sectors/track, 122784 cylinders, total 7858176 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x80008000

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1   *        2048        4095        1024    1  FAT12

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (1-4, default 2): 
Using default value 2
First sector (4096-7858175, default 4096): 
Using default value 4096
Last sector, +sectors or +size{K,M,G} (4096-7858175, default 7858175): 
Using default value 7858175

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
ここまで来たら、先のBootボタンを押しながらリブートします
ubuntu@ubuntu-armhf:~$ sudo reboot
起動したら再びsshで接続してログイン後、resizeコマンドを叩きます
ubuntu@ubuntu-armhf:~$ sudo fdisk /dev/mmcblk0

Command (m for help): p

Disk /dev/mmcblk0: 4023 MB, 4023386112 bytes
4 heads, 16 sectors/track, 122784 cylinders, total 7858176 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x80008000

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1   *        2048        4095        1024    1  FAT12
/dev/mmcblk0p2            4096     7858175     3927040   83  Linux

Command (m for help): q           

ubuntu@ubuntu-armhf:~$ sudo resize2fs /dev/mmcblk0p2   
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p2 is now 981760 blocks long.

ubuntu@ubuntu-armhf:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          3.7G  246M  3.3G   7% /
/dev/root       3.7G  246M  3.3G   7% /
devtmpfs        248M  4.0K  248M   1% /dev
none             50M  224K   50M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            248M     0  248M   0% /run/shm
/dev/mmcblk0p1 1004K  480K  524K  48% /boot/uboot
ubuntu@ubuntu-armhf:~$ 

BeableBoneBlankのAngstomを更新する

コンソールを開いてみるとうちのBBBはA6Aだけど、Angstromはv2012.12だった。
試しに更新してみる。
<http://beagleboard.org/latest-images>ここから最新を保存。
xzを展開と思ったらそのままではできない。

<https://itunes.apple.com/jp/app/the-unarchiver/id425424353>
で、Unarchiverをインストールして展開。

<http://d.hatena.ne.jp/seinzumtode/20130713/1373727628>
を参考に。

$ df -h
Filesystem      Size   Used  Avail Capacity   iused    ifree %iused  Mounted on
/dev/disk0s2   839Gi  711Gi  127Gi    85% 186477609 33333211   85%   /
devfs          186Ki  186Ki    0Bi   100%       646        0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%         0        0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%         0        0  100%   /home
/dev/disk0s4    92Gi   29Gi   63Gi    32%     92756 66228120    0%   /Volumes/BOOTCAMP
$ df -h


Filesystem      Size   Used  Avail Capacity   iused    ifree %iused  Mounted on
/dev/disk0s2   839Gi  711Gi  127Gi    85% 186477613 33333207   85%   /
devfs          189Ki  189Ki    0Bi   100%       653        0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%         0        0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%         0        0  100%   /home
/dev/disk0s4    92Gi   29Gi   63Gi    32%     92756 66228120    0%   /Volumes/BOOTCAMP

/dev/disk2s1   3.7Gi  2.5Mi  3.7Gi     1%         0        0  100%   /Volumes/Untitled

/dev/disks1がSDカード。
/devの中をみるとrdisk2が該当するみたい。

$ diskutil umount /Volumes/Untitled/
Volume (null) on disk2s1 unmounted

$ sudo dd bs=1m if=/Users/xxxxxx/BeagleBoneBlack/BBB-eMMC-flasher-2013.09.04.img of=/dev/rdisk2
3488+0 records in
3488+0 records out

3657433088 bytes transferred in 579.227012 secs (6314334 bytes/sec)

20分くらいで終わった。

BEAGLE_BONEがマウントされていた
/dev/disk2s1 on /Volumes/BEAGLE_BONE (msdos, local, nodev, nosuid, noowners)

$ ls -al /Volumes/BEAGLE_BONE/
total 1004
drwxrwxrwx@ 1 xxx  staff   16384 Mar  8 23:44 .
drwxrwxrwt@ 6 root       admin     204 Mar  8 23:44 ..
drwxrwxrwx  1 xxx  staff    2048 May  9  2012 .Spotlight-V100
drwxrwxrwx@ 1 xxx  staff    2048 May  9  2012 .Trashes
-rwxrwxrwx  1 xxx  staff    4096 May  9  2012 ._.Trashes
-rwxrwxrwx  1 xxx  staff     250 May 21  2012 .apdisk
drwxrwxrwx  1 xxx  staff    2048 Mar  8 23:44 .fseventsd
-rwxrwxrwx  1 xxx  staff      41 Sep  4  2013 ID.txt
-rwxrwxrwx  1 xxx  staff   99976 Jun 19  2013 MLO
-rwxrwxrwx  1 xxx  staff  379428 Jun 19  2013 u-boot.img

-rwxrwxrwx  1 xxx  staff      14 Mar 18  2013 uEnv.txt

SDを取り外して、BBBに差し込んでBootボタンを押しながら電源ON

1時間ほど待つとLED4つ点灯。

1回目のリブートではうまく起動していなかったが、2回目でhttp://192.168.7.1/が見えた。
でも、UART0がうまくつがらない。(SSHはできる)
これは、単にボーレートの設定が違っていただけ。
ちゃんと動きました。


2014年3月7日金曜日

BeagleBoneBlackが届いた

ちゃんと届きました、が箱はつぶれでました。。。
中身は無事だったので許します。

アマゾンからもいろいろ届きました。

Getting Startは動いたのでつぎは
Ubuntuかな。

IOはCまで制御したいけど、
<a href=www.rutles.net/download/393/>書籍のサンプル</a>を除くかな。

2014年3月6日木曜日

BeagleBoneBlackでモーター制御

モータードライバは、以前にXBeeから使ったことがあるものと同じチップがのっていて安価な

デュアルモータードライバTB6612FNG(連続最大1A)
<http://www.switch-science.com/catalog/236/>

をスイッチサイエンスから購入。

PWMはブレーキがかかるので、ON/OFFにつかってstanbyにPWMを入れて速度制御。

  2014/05/08
    PWMで制御してみたら上手くいった。前はXBEEから制御したからか?
    周波数が低すぎたのかもしれない。

あとはインバーターICだけど、XORもいるので74HC86でやる?

GPIOの設定は/sys/kernel/debug/pinctrl/44e10800.pinmux/pins
pinの番号はSRMの8.2.5に書いてある

電源はモバイルバッテリーの5Vをレギュレーターで3Vにする。

続く。。

2014年3月5日水曜日

BeagleBoneBlackを注文した

http://www.kohgakusha.co.jp/books/detail/978-4-7775-1807-4
この本を買って、
著者の所属の店でポチッとな。
http://linuxtoybox.com/

ちゃんと届くか、ちょっと不安。

でも、早速以下をアマゾンのカートにいれた。
(まだ入れただけ)

2014.3.6
  ポチッとな、実行してしまった^_^;

Groovy Y字型USB(Aオス-Aメス)延長ケーブル 全長50cm GM-UH009Y
¥ 345
ELECOM USBハブ USB2.0対応 バスパワー 3ポート 直挿しブラック U2H-PP3B...
¥ 664
カモン USB→DC(外径5.5mm内径2.1mm)電源供給ケーブル
¥ 489
ELECOM モバイルバッテリー 急速充電 リチウムイオン電池 スマートフォン各種対応 5200m...
¥ 1,769
¥ 980
東芝 microSDHC 16GB Class10 30MB/s UHS-I 防水 耐X線 TOS...
¥ 986
iBUFFALO マイク内蔵200万画素WEBカメラ 120°広角ガラスレンズ搭載モデル BSW2...
¥ 3,172
楽しい工作シリーズ No.100 トラック&ホイールセット (70100)
¥ 455
楽しい工作シリーズ No.168 ダブルギヤボックス 左右独立4速タイプ (70168)
¥ 698 
楽しい工作シリーズ No.157 ユニバーサルプレート 2枚セット (70157)
¥ 455
¥ 396