12/24/2015

"GR-KURUMI" interface


GR-KURUMI Interface

Programming
Connect to PC:UART-USB board

Online compiler

Pin map


Size
 

IchigoJam BASIC ver up review

IchigoJam Basic ver up 1.1.1


2015/12/21 - 1.1.1 (1.0.2 beta11 まで・1.1.0 beta・1.1 beta を含む) -

Newly added commands;

 CONTDEC$LANGLINEPWMRESETSRNDSTOPUART 追加、

Modified commands;

BPS -1 = 57600bps・  -2 = 38400bps 追加、
FILES ファイル番号を範囲指定するように、
GOSUB 短縮形 GSB 追加、
RETURN 短縮形 RTN 追加、
OUT 7 に LED 割り当て・OUT 1,-1〜OUT 6,-1 で OUT1〜6 を IN(5)〜IN(8)・IN(10)〜IN(11) ANA(5)〜(8) に割り当て、
PEEK #100F まで対応 (#1000・#1001 プログラムの終了コード、#1002〜#100F キー状態)、RENUM 増分対応
USR 第2パラメータへ仮想メモリの先頭アドレスを渡すように、
VIDEO クロックダウンを追加、停止時 BEEP 発生・中断行表示、

CHR$(12)=カーソル後消去
CHR$(19)=Page Up 追加、
CHR$(21,32+X座標,32+Y座標) でカーソル移動追加(シリアル対応)、
上書き入力・実行時に CHR$(28〜31) のカーソル移動で CHR$(0) を考慮しないように変更、
言語(カナ)変更に Ctrl+Shift 追加、
Ins 切り替えをShift+右 Alt→Ctrl+Alt 変更、
16進数・予約語後スペースで区切り解読するよう変更、
モンゴル語対応、
PS/2 初期化コマンド追加(対応キーボード拡大)、
その他バグ修正(シフトを算術→論理に変更など)

IchigoJam BASIC UART input ver1.1


IchigoJam : Try to communicate with other device.

BPS can be set by BPS command.

UART Output command        TXD pin

Use "PRINT" same as for the screen.

Note;
ESC and DLE codes can't be included in the input data. beause...
ESC: Holt program
DLE:Erase text in the line

UART Input command       RXD pin

Use INKEY() as for Keyboard
 
・キーボードから入力された文字と同じように処理される。
・プログラムではINKEY()関数で入力する。受信なし時は0。
 
K=INKEY()

 
・ESCコード(27 0x1B)を受けるとプログラムを停止する。
Receiving #1B     Holt the program
 
・DLEコード(16 0x10)を受けると同じ行の文字を消す。
Receiving #10      Delete  the text in line





 ライセンス・著作権表示
CC BY (C) 2015 国野亘 (Wataru KUNINO)
 

12/23/2015

"GR SAKURA" and "GR KURUMI" Arduino UNO like

GR SAKURA by Renesas

Arduino UNO compatible
1MB Memory
125MB RAM
ethernet
USB Host
XBee connection
JTAG


GR-SAKURA: I/O55pins、Analog 16pins
拡張はArduinoシールドを使う形になります。
価格は3405円(税別)。

GR-SAKURA-FULL:LANコネクタ(RJ-45)、USBホストコネクタ、DCジャック、
microSD(MMC)カードソケット、ピンヘッダを搭載します。
単体でいろいろ接続したい人向けです。
価格は4505円(税別)。


 
 
 

GR KURUMI

Arduino Pro Mini compatible

 
GR-Kurumi vs Arduino pro Mini
RAMSRAM
20kB
2kB
プログラム用flushROM
256kB
32kB
Data flush       
8kB
kB
メインクロック
(最小命令実行時間)
32MH
(0.03125μs)
16MH
リアルタイムクロック(RTC
Y
N
乗除・積和演算器
Y
N
低電力動作モード
Y
Y
電源入力電圧
DC2.7V5.5V
(DC0.9V5.5V)
DC5V12V
DC3.3Vtype有り
電源出力電圧
DC3.3V
DC5V3.3V
デジタルポート
22
14
アナログ入力
8
8
アナログ(PWM)出力
6点
6点
UART
3
1
SPI
1
1
I2C (Wire
1
1



12/21/2015

IchigoJam BASIC command I2C WRITE

IchigoJam BASIC command I2C WRITE


The IchigoJam (Kids computer) Basic is capable to handle I2C interfacce.

Send data must be stored in the memory area.
Use Poke to store the data to be sent.
Use Peek to read the received data.

https://github.com/fu-sen/IchigoJam-BASIC/blob/master/I2CW.txt

I2CW
0.9.9~
-----------------------------------------------------------
[ 機能 ]
メモリに入れている値を
I2C シリアルバスで接続されたデバイスへ送ります
[ コマンド 書式 ]
<返し値>=I2CW(<I2C アドレス>,<コマンド開始番地>,<コマンド長さ>,<書込メモリ開始番地>,<書込メモリ長さ>)
[ 例 ]
R=I2CW(`1010000,#700,2,#702,16)
[ 解説 ]
<I2C アドレス> は I2C 経由で情報を送るデバイスです。
I2C デバイスには A0~A2 端子の接続に応じて
固有のスレープアドレスを持ちます。これを指定します。
値は 0~127(`0000 000 ~ `1111 111)です。
これに READ/WRITE ビットの WRITE を付加し送信します。
READ/WRITE ビットを含めない値になる事にご注意下さい。
その後 <コマンド開始番地> から <コマンド長さ> にあるコマンド、
<書込メモリ開始番地> から <書込メモリ長さ> にある
データを送信します。
<コマンド開始番地> <書込メモリ開始番地> は
IchigoJam から渡す値を入れたメモリの場所です。
<コマンド長さ> <書込メモリ長さ> はバイト単位で長さを示します。
POKE で予め値を入れておいた後に I2CW でデータを送信します。

1.0.0 beta11 で Esc キーを押す事で送受の中断を行えるようになりました。
 
 
 

IchigoJam command Serial Output

IchigoJam BASIC

https://github.com/fu-sen/IchigoJam-BASIC
UART Serial interface

How to ommunicate with other devices from Ichigojam board.

IchigoJam has UART Serial Output. TXD and  RXD Input
Use "PRINT" command to send data.

Note:

command "PRINT"


LOCATE で縦位置を -1 にしている場合は(例えば LOCATE 0,-1)
画面出力を行わず、シリアル出力のみ行います。
0.9.4 より対応しています。


PRINT
-----------------------------------------------------------
[ 機能 ]
画面へ表示します。シリアルへ出力します。
[ コマンド 書式 ]
PRINT "<文字列>"[;]
PRINT <数>[;]
? "<文字列>"[;]
? <数>[;]
[ 例 ]
PRINT "HI!"
[ 解説 ]
文字列の場合は " で囲みます。
末尾に ; (セミコロン)を付けると、連結する事が可能です。
; を付けない場合は改行を含めます。一番下の行では1行上にスクロールします。
PRINT の代わりに ? を使用する事が可能です。
シリアル接続を行っている場合は、そのまま出力されます。
LOCATE で縦位置を -1 にしている場合は(例えば LOCATE 0,-1)
画面出力を行わず、シリアル出力のみ行います。
0.9.4 より対応しています。

IchigoJam command I2C interface-data read

Memo  IchigoJam BASIC "I2C command"


https://github.com/fu-sen/IchigoJam-BASIC

I2CR
0.9.9~
-----------------------------------------------------------
[ 機能 ]
I2C シリアルバスで接続されたデバイスからデータを取り出し、メモリに格納します。
 
 
[ コマンド 書式 ]
<返し値>=I2CR(<I2C アドレス>,<コマンド開始番地>,<コマンド長さ>,<読込メモリ開始番地>,<読込メモリ長さ>)
[ 例 ]
R=I2CR(`1010000,#700,2,#702,16)
[ 解説 ]
<I2C アドレス> は I2C 経由で情報を得るデバイスです。
I2C デバイスには A0~A2 端子の接続に応じて
固有のスレープアドレスを持ちます。これを指定します。
値は 0~127(`0000 000 ~ `1111 111)です。
これに READ/WRITE ビットの READ を付加し送信した後、
デバイスからの受信を得ます。
READ/WRITE ビットを含めない値になる事にご注意下さい。
次に <コマンド開始番地> から <コマンド長さ> にある
コマンドを実行します。
コマンドは POKE で予め用意して下さい。
その後 I2C から得たデータを <読込メモリ開始番地> から
<読込メモリ長さ> で収納します。
格納した情報は PEEK で実際の値を取得して下さい。
<コマンド開始番地> <読込メモリ開始番地> は
IchigoJam のメモリの場所です。
<コマンド長さ> <読込メモリ長さ> は
バイト単位で長さを示します。
1.0.0 beta11 で Esc キーを押す事で
受診の中断を行えるようになりました。

12/11/2015

IchigojamでVFD MODULEに、中国簡体字Simplifiedを表示させる

中国 簡体字を表示してみる

Display Chinese Simpified Characters

 
表示Moduleに送るコマンドは、
 
文字サイズ(高さ)16ドットの指定が、(以下HEX表記です)
Set Font size
1F 28 67 01 02             (1F 28 67 01 01で、8dot, 02で16dot )
 
2バイト文字コードの指定は、
Set 2 byte code
1F 28 67 02 01             (1F 28 67 02 00 で1バイト文字コード、01で2バイトコード指定)
 
フォントコード指定は、
Set Font code/table
1F 28 67 03 02             (日本語JPが 00、韓国語Krが、01、簡体字Cnが02、繁体字Twが03で指定)
 
このあと、文字コードを送ります。
 
面倒ですが、簡体字のコードを変換サイトで見つけて、直接プログラム内に書き込んで表示してみました。文字数が多くなると、この方法では無理ですね。
一般的になっているUNICODEですと、いろいろなやり方がありそうですが、GB2312への変換サイトはあまりなかったです。C#など、プログラムに慣れている方なら簡単なのでしょうね。
韓国語や、繁体字(台湾)は、得意なかたにおまかせして。

 
 

VFD MODULE 文字表示 Getting started 準備

VFD MODULE-International/Chinese/Korean/Japanese

Text Display Programming

Getting started Guide :the programming for VFD Modules

IchigoJam でプログラムをつくってみる。 
漢字フォントの入っているドットマトリクスモデルを使う。

GU256X64C-3900 表示エリアの設定コマンドなどいろいろあるが、仕様書を読むのは大変そうなので、デフォルト設定でやってみました。
コマンドや設定をきちんと理解していませんが、まずやってみる、ということで。

まず、電源と信号線を接続、シリアル速度は、38400のデフォルトでは速いので、19200に基板上のジャンパで設定。   IchigoJam もBPS19200を入れる。

1.文字の種類
基本は、英数文字(ASCII)と日、中、韓の漢字系
・英数文字は、基本はASCIIで1バイト系。
・デフォルトのままで、PC437(USA: Standard Europe)普通にアルファベットがでる。
文字コードは、ほかに10種類ほどある。
カタカナ、欧州、ラテン、ポルトガル、キリル、などや、ユーザが登録できるテーブルなど。
また通貨記号などは、国によって設定できる。

・漢字系(2バイト系の文字) ユニコードではありません。
日本字 シフトJIS
ハングル KSX5601-87 (KS X 1001)
簡体字 GB2312-80
繁体字 Big-5

2.フォントのサイズ  Font size   8dot ASCII,  16dot JP,Chinese,Korean
フォントは、8ドット、16ドット、モデルによって、24,32ドットもある。
また、拡大コマンドで大きくできる。(スムーズではない)
今回、漢字をだすので、16ドットを使う。

3.表示プログラム
1)画面をきれいに、クリアのコードを送る。CLR  Disp        1CH (HはHEX)
2)文字サイズを縦16ドットに設定する。      Set16dot font   1FH 28H 67H 01H 02H
3)2バイト文字コードに設定する。               Set 2byte code  1FH 28H 67H 02H 01H
4)日本語コード設定にする。                       Sr Japanese JIS 1FH 28H 67H 03H 00H

このあと、文字コード(以下HEX)を送る。
例「世界の文字」 A2BA 45B2 82CC 95B6 BE9A

IchigoJamで、8bit,  HEX2文字ずつおくる。 配列にコードをいれておいて、出力(PRINT)するとか、限られたプログラムエリに収める工夫が必要です。

4.表示書き込み位置制御
デフォですと、書き込めば自動でカーソルが右に移動します。 行末まで行ったときの処理は設定しておきます。(デフォのまま)
ASCIIのCR(0DH)を送ると、書き込み位置が左端にきます。 ASCII CR
LF(0AH)を送ると、改行します。      ASCII LF
文字フォントを、16ドットに設定していると、16ドット単位で行われるようです。

グラフィックを含めて、いろいろなコマンドがありますが、まだ試していません。
とりあえず、文字を表示するところまで。

参考サイト

IchigoJam で VFD Moduleに日本語(JP language)を表示してみる

日本語表示

IchigoJam+VFD MODULE(蛍光表示管) 

VFD MODULE GU256X64C-3900

 
VFD MODULE 蛍光表示管モジュールは、日本製でキャッシュレジスタなどに使われているものです。液晶とは異なり、自発光で、見やすい表示です。
 
簡体字:、繁体字、韓国字のフォントを標準搭載しているモデルを使いました。
 
各国の文字コードを入力すれば、表示できます。
UNICODEではありません。
日本字 JP: JISX208 シフトJIS
簡体字 CN:GB2312-80
繁体字 TW:Big5
Korea  :
 
文字の大きさや、コードの種類、いろいろな制御は、コマンドを送って行います。

接続は、パラレル8bitもありますが、簡単な文字表示だけですので、非同期シリアル UARTで、19200BPSを使いました。 IchigoJamは、19200BPSで安定してます。
文字表示だけなら、VFD Moduleのバッファがあふれることはなさそうで、Busy信号を見なくても大丈夫でした。(TXDで送りっぱなし)

ただし、このModuleは、RS232に準拠した入力レベルでしたので、IchigoJamの3.3V系に合うよう簡単なlevel変換をおこないました。

データは、IchigoJamからコードを送るだけですので、TXDとGNDの2本を接続しました。

VFD MODULEは、5V電源ですので、1A以上の容量のUSB電源から供給しました。
(コネクタ変換は必要です。USB電源の性能によっては、表示が立ち上がらないこともあります。
また、通信の初期値は、38400BPSになっていますので、基板のジャンパで、19200BPSに設定。

発光を見やすくするため、Green系のアクリル板を表示前面に貼りました。
お好みに応じて、青や、グレイでもいいですね。


VFD MODULEを動かすコマンドは、次回。
 

12/10/2015

タッチキーパッド実験 (TI MSP430 Launchpad)


以下の実験結果報告をいただきました。

 

タッチキーパッド実験 (Touch Keypad and TI MSP430 Launchpad)



次に示す実験回路ならびにソフトウェア構成によって 4×3 Key Pad Atmel AT42QT2120 制御実験を行いました。

 

AT42QT2120(以下本 IC)にて初期設定立ち上げを行う際に、ただ単にリセットを行うだけでは肝心の/CHANGE出力信号がアサートされっぱなしとなる問題(失敗)に遭遇しましたが、適当な空読みを加えることでこれを解決しました。

また本 IC へのパラメータ設定を概略検討しました。その結果、4×3 Touch Key Pad の通常スイッチ動作を検出でき、普通の使用感を得るにいたりました。



ちなみに、さっそく水で濡れた指でたしかめたところまったく変わりないスイッチング感触を得ることができました。手袋をはめた場合、薄手の木綿手袋のとき、かろうじて検出されるかされないか、という程度でした。それより厚手の手袋では全く無反応という具合です。(もちろん、ある閾値設定の場合の一例です)。これら結果から、要するに Pad 電極部における静電容量変化ΔC が有るか無いかにつきる由、原理通りの結果であるに違いないとの感触を得たところです。


 
 

AT42QT2120 初期設定時に発生した問題


IC はパワーオン後、I2C インタフェースからリセットコマンドを投げて初期化し、しかる後パラメータ設定、閾値設定などを行います。ただ不注意に、それだけではうまく動きませんでした。すなわち肝心な出力信号/CHANGE がアサートされっぱなしになってしまい、以降うごきがとれなくなってしまうという現象です。データシート上に記述されている CHANGE 信号のこと注意深く読まずに、『リセットが終わって初期設定すればふつう動くもの』という感覚にとらわれていた。
 

本実験ではリセットコマンド後、次を加えることによって/CHANGE アサートを開放出来るに到った次第です。
充分な間(500ms)を取って、
status バイトの空読みを行う
 
Power-On後、アサートに始まる/CHANGE信号は理解困難な開放アサートを2回繰り返しています。
その後 status 空読み実行後に開放されました。 )(動作は出来たが)いったんアサートに落ち、また回復する不安な例(待ち時間=300ms)
 
 
IC のデータシートではリセットコマンド記述として下記があります。
2.8.2    Soft Reset
The host can cause a device reset by writing a nonzero value to the Reset byte. This soft reset triggers internal watchdog timer on a 125ms interval.
After 125ms the device executes a full reset.
The device NACKs any attempts to communicate with it for approximately 200ms after the soft reset command. Communication can begin as soon the /CHANGE line is first asserted.
Note:  
The device can process a Soft Reset command while in Power Down(LPM=0)mode, causing a chip reset. ヲッチドッグタイマーとの関係など理解しづらいです。
パワオン後、アサートに始まる/CHANGE 信号が理解困難な開放アサートを 2 回繰り返しているのは同じです。その後 status 空読み実行後に開放されるがいったんアサートされ、その後開放に至る。その後の IC 動作としてはOKでしたが。リセット後の待ち時間不足のような感じを表しています。
なお、上の Note 記述の件。デバイスはパワオン後 LPM=1 がデフォルトのはずであり、LPM=0 に戻して/戻さないで、を試してみましたが、結果 LPM=0 に戻さないでも動作できました。
 

 
 

 

タッチキーパッド キット(Touch Keypad Kit)

Glass Touch Keypad Kit 

限定配布品(市販されていません)


3x4 ガラスキーパッド
キーセンサーチップボード
センサーチップ Atmel AT42QT2120





 
 ガラスキーパッド 
3x4の透明電極が、個別に引き出されています。
 
透明電極は、一般的なITO膜ではありません。
アルミ薄膜の微細線でメッシュ状に形成されています。
抵抗値が低く、均一な感度が実現できます。
基板は、ガラスです。強化加工はしてありません。
ガラスの下に、絵や文字を書いた紙、LEDなどを入れることができます。
 
 
 
 
 
センサー基板回路
Atmel AT42QT2120を使っています。
12keyの状態が、I2Cで読みだせます。
詳細動作仕様は、I2C経由で設定できます。
 

 
 
 
 
例:キーをプリントした紙を下に入れた
 




12/09/2015

タッチキーパッドTouch Keypad をIchigoJamにつないだが・・・

Trial "Touch Keypad" and IchigoJam

 Touch Keypad;
Self-capacitive touch switch with new concept
Thin film :Etched Aluminum 1um thicck, fine mesh patteren.
 
 
I2Cで、IchigoJamに、3x4 のタッチキーパッドをつないでみた。
結果:I2CRコマンドでフリーズした。
タッチセンサーチップは、Atmel社 AT42QT2120
/charge 端子が、Hにならないので、チップが動いていない。
 
TIのMSP430 Launchpadでは、
初期設定立ち上げを行う際、ただ単リセットだけで は /CHANGE出力信号がアサートされっぱなしとなる問題(失敗)に遭遇、適 当な空読みを加えることで解決しました。
しかし、IchigoJamでは、I2Cが成り立ってないような。