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の接続が不安定



2013年7月24日水曜日

Python pit editor

pitで使うエディターの定義、.bashrc内に追記
export EDITOR="vim"

先にPit.get()をしてから、Pit.set()しないとエディターが立ち上がらないみたい。

>>> from pit import Pit
>>> foo = Pit.get('title文字列', {'require':{'id':'id文字列','pass':'Pass文字列'}})

2013年7月23日火曜日

グローバルIPを取得する方法

wget -q -O - ipcheck.ieserver.net

auのatermでサーバー公開

A t e r m B L 9 0 0 H W 
A T E R M - 7 4 E 4 B 9

ここの通りやった
http://blog.ainam.me/2011/07/11/au%E3%81%B2%E3%81%8B%E3%82%8A-%E3%81%AB%E4%B9%97%E3%82%8A%E6%8F%9B%E3%81%88%E3%81%9F%E6%99%82%E3%81%AB%E8%87%AA%E5%AE%85%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%8C%E5%85%AC%E9%96%8B%E3%81%A7/

・Aterm 側 「詳細設定」→「その他の設定」
1.DMZホストを有効
2.DMZホストをサーバで固定したアドレス(192.168.0.x)にする。
 ・ポートマッピング
80番ポートのパケットを192.168.0.x 宛てにマッピングする。
 LAN側ホスト 192.168.0.x プロトコル TCP ポート番号 80-80 優先番号  1 (任意で)