2014年8月10日日曜日

BBBの容量

容量の変更

DebianのSDイメージをmicroSDに書き込んだ直後ではパーティションがぎちぎちでapt-get updateも通らない。

パーティションサイズを増やす必要がある。
ここを参照して作業。
ただし、Debian (BeagleBone, BeagleBone Black - 2GB SDを使った場合は、resize2fsは最初から入っているのでインストールする必要なし。
(というか容量の余裕がなくて、#apt-get install system-config-lvmができない)
root@beaglebone:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          1.6G  1.5G     0 100% /
udev             10M     0   10M   0% /dev
tmpfs           100M  504K   99M   1% /run
/dev/mmcblk0p2  1.6G  1.5G     0 100% /
tmpfs           249M     0  249M   0% /dev/shm
tmpfs           249M     0  249M   0% /sys/fs/cgroup
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           100M     0  100M   0% /run/user
/dev/mmcblk0p1   96M   70M   27M  73% /boot/uboot
root@beaglebone:~# fdisk /dev/mmcblk0
Command (m for help): p
Disk /dev/mmcblk0: 15.7 GB, 15720251392 bytes
4 heads, 16 sectors/track, 479744 cylinders, total 30703616 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: 0x00000000
        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1   *        2048      198655       98304    e  W95 FAT16 (LBA)
/dev/mmcblk0p2          198656     3481599     1641472   83  Linux
Command (m for help): q
root@beaglebone:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          1.6G  1.5G     0 100% /
udev             10M     0   10M   0% /dev
tmpfs           100M  504K   99M   1% /run
/dev/mmcblk0p2  1.6G  1.5G     0 100% /
tmpfs           249M     0  249M   0% /dev/shm
tmpfs           249M     0  249M   0% /sys/fs/cgroup
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           100M     0  100M   0% /run/user
/dev/mmcblk0p1   96M   70M   27M  73% /boot/uboot
root@beaglebone:~# fdisk /dev/mmcblk0
Command (m for help): p
Disk /dev/mmcblk0: 15.7 GB, 15720251392 bytes
4 heads, 16 sectors/track, 479744 cylinders, total 30703616 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: 0x00000000
        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1   *        2048      198655       98304    e  W95 FAT16 (LBA)
/dev/mmcblk0p2          198656     3481599     1641472   83  Linux
Command (m for help): d
Partition number (1-4): 2
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): 2
First sector (198656-30703615, default 198656):
Using default value 198656
Last sector, +sectors or +size{K,M,G} (198656-30703615, default 30703615):
Using default value 30703615
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.
root@beaglebone:~# sudo reboot
Broadcast message from root@beaglebone (pts/0) (Thu May 15 02:32:38 2014):
The system is going down for reboot NOW!
root@beaglebone:~#
リブート後、resize2fsを実行

root@beaglebone:~# sudo resize2fs /dev/mmcblk0p2


実際は違う

キーボードじゃなくなっているのかも。

「今時の学生はスマホを当たり前に使っているし、高校では教科情報も学んできている。そのため、新入生はPC操作ができると思いがちだが、実際は違う。教える側は認識を改めた方がよい」

【2014 PCカンファレンス】教育とICTの研究成果が続々、「新入生は意外とPCを使いこなせない」など


BeagleBone BlackのUSB接続からPCのネットワークを通じたインターネット接続

BeagleBone Black(BBB)が半年近く待ってやっと届いた。
Rev.Cが以前の価格で入手できたのはちょっとラッキー!

USB接続+給電でWiFiドングルをつかうとちょっと不安定(ロックしたり)があるので、
USB接続元のPCのネットを使うことにした。

下記のサイトの通りにやるとできる。
http://derekmolloy.ie/beaglebone/getting-started-usb-network-adapter-on-the-beaglebone/
8.8.8.8とかなんでと思って自分なりの設定してもつながらなかったので、ビデオにある通りが必要。

  • PC側:
  1.  コントロール パネル\ネットワークとインターネット\ネットワーク接続
  2.  PCのインターネット接続のプロパティ→共有→”ネットワークのほかのユーザーに...接続を許可する”をチェック
  3.  ホームネットワーク接続で、BBBに接続しているローカルエリア接続(Linux USB Ethernet/RNDIS...)を選択
  4.  ”ネットワークのほかのユーザーに...許可する”をチェック外す
ちなみに、BBBをPCから外すと上記の共有が切られるため、つなぎなおすときは再度必要(追記)

  • BBB側:
  1.  /sbin/route add default gw 192.168.7.1
  2.  /etc/resolv.confにnameserver 8.8.8.8を追記
これもBBBを再起動すると必要(追記)

あと、
/usr/bin/ntpdate -b -s -u ie.pool.ntp.org
とあるけど、Rev.Cから標準になったDebianでやるなら、/usr/sbinなので注意。

BBBのRaspberry Pi(RasPi)に対する優位はArduinoみたいにPCに接続すれば、
ネットワークを意識しなくてもPCから使える点。
RasPiは単体にキーボード、マウス、ディスプレイつなぐなら単体利用できるけど、
ネット調べながら作業(楽しむ)なら、PCから利用したほうが軽くて便利。

その点BBBはPCとつなげばネットも使えるし、Cloud9 IDE使えば単体でコーディングできる
のはポイント高い

難点はWindowsの場合USBドライバインストールすることかな。

LCDケープ買おうと思ってたけどいらないかも。

2014年3月11日火曜日

SainSmart 1.8 TFTをArduinoで使う

1.ライブラリのインストール
のビデオの下にある
Documents
 Download Link
をクリックしてrarファイルをダウンロード
rarを解凍し、TFT18フォルダを
\arduino-1.0.5\libraries or \Arduinoの個人コード保存先\libraries
の下にコピー
2.配線
上記TFT18フォルダ内の
20-011-920 SainSmart 1.8 SPI LCD.pdf
にしたがって配線
ただし、pin4->13, pin5->11にしないと表示されない

3.コードの修正
ヘッダファイルが古いIDEのものになってるので修正
ST7735.h
//#include
#include
上記のピン配線のコード修正(コード内に説明あり)
graphicstest.pde
//#define sclk 4
//#define mosi 5
#define sclk 13
#define mosi 11

---
事前に、使いたい機能が上記ライブラリにあるかチェックしたほうがいいかも。

2013年8月18日日曜日

ArduinoからI2C

wireってライブラリ使うだけ。

DRV8830を使ってモーター操作するライブラリはこちらで公開されています。
http://junkroom2cyberrobotics.blogspot.jp/2013/04/i2cdrv8830.html
https://cyberrobotics.codeplex.com/releases/view/105736

2013年8月17日土曜日

Pythonからシリアル

急きょRaspberry PiからArduinoをつかう必要があったのでメモ。
pyserialが必要なのでpipでインストール

cuでやる場合はインストールする必要あり
$ sudo apt-get install cu
USBにArduinoさすだけで、/dev/ttvACM0に認識されるので、
cu -l /dev/ttyACM0 -s 9600
でConnectされ、あとは入力したのがそのままArduinoにわたる

目的はPythonから操作したいので、Pythonのserialをインストール
$ sudo pip install pyserial

あとはここを参考にした
http://tomono.eleho.net/2012/09/15/3140/

2013年8月4日日曜日

Raspberry piからI2C



1./etc/modulesに追記
$ sudo vi /etc/modules

i2c-dev  # 追記

2.ブラックリストから削除
$ sudo vi /etc/modprobe.d/raspi-blacklist.conf
blacklist i2c-bcm2708
 |
 V
#blacklist i2c-bcm2708

3.上記を有効にするためReboot
$ sudo reboot

4.モジュールの組み込みを確認
$ dmesg |grep i2c
[    4.830278] bcm2708_i2c bcm2708_i2c.0: BSC0 Controller at 0x20205000 (irq 79) (baudrate 100k)
[    5.053221] bcm2708_i2c bcm2708_i2c.1: BSC1 Controller at 0x20804000 (irq 79) (baudrate 100k)

[   11.096122] i2c /dev entries driver

5.i2c-toolsをインストール
$ sudo apt-get install i2c-tools

6. pythonからi2cバスをたたくためのsmbusをインストール
$ sudo apt-get install python-smbus

7. I2Cデバイスを結線
SCLはSCLに、SDAはSDAに結線

8.接続チャンネルを確認
$ sudo i2cdetect -l
i2c-0   i2c             bcm2708_i2c.0                           I2C adapter

i2c-1   i2c             bcm2708_i2c.1                           I2C adapter
これでつながっている数がわかる
$ sudo i2cdetect -l

 $ 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: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
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: -- -- -- -- -- -- -- --

DRV8830を半田ジャンパOpenのままで使うと、アドレス0x64になるのが確認できた

9.動かしてみる

import smbus
import time

i2c = smbus.SMBus(1)    # sudo i2cdetect 1で見つかったので
adr = 0x64

i2c.write_byte_data(adr,0,0x35)   #  内部アドレス0で上位6bit 0x0D=1.04V, 下位2bit 0x01正転
print 'set on'
time.sleep(2)
i2c.write_byte_data(adr,0,0x34)     #  内部アドレス0で上位6bit 0x0D=1.04V, 下位2bit 0x00スタンバイ
print 'set standby'

USBカメラもつないでる為か、無線LANの接続が不安定