2020年8月5日水曜日

KeyIchigo 3

フルスクリーンの液晶がサポートされつつありますので、KeyIchigoも対応できるようにしてみました。
IchigoJam@jig.jp  のリリース版は開発中ですので、フライング気味です。

KeyIchigo 3

基板は白にします。

これはキーボードの文字が読みやすくなるからです。

LCD

LCDは128x64とILI9341のどちらかを選んで使います。

外形寸法

従来通りです。キーの位置は少し並びを移動しました。

 キーボード回路

マトリクスを少し変更してダイオードを減らしました。これで少しだけ作りやすくなったかな。従来あった文字入れのミスは修正してあります。

他の変更

 いままでは、Wi-Fiモジュール搭載できましたが、削除しました。これはIoT用だったのですが、別ラインに分けることにします。
DC/DCコンバータが従来は子基板に載っていましたがICが手に入りそうなので直接載せることにします。

アートワーク

こうなります。基板製作中のためプレビュー画面でご覧ください。
 
 
 つづく と思う。

LINK他

IchigoJamはjig.jpの登録商標です。
詳しくはこちら。




2020年5月10日日曜日

IchigoJamに320x240ドットのLCDをつなごうとする件

いつもながらのIchigoJamネタです。
IchigoJamにはモバイル表示モードがあって128x64画素のモノクロディスプレイがサポートされています。しかし標準の横32文字からみてやはり小さいので、画素数の多い、しかし小型のLCDをつないでみようというのがお題です。

IchigoJamに320x240ドットのLCDをつなごうとする件


128x64ドットについては、KeyIchigoやIchigoBoyをご覧ください。

方針

さて、IchigoJamにマシン語プログラムを埋め込む方法もあるのですが今回は外付け回路のみで処理する方向で考えます。

液晶

1行の文字数は32なので32X8=256ドット以上のLCDが必要なのでこの辺りを候補にします。選定理由は、値段!と入手性です。
320x240画素 LCD

変換チップ

変換にはATMega328とか最近出たATMega3208を使ってみます。

予備実験

Video信号はIchigoJamの肝で要点は公開されています。LINKは残していないのですが開発者のブログなどで読むことができると思います。
さて、現品の信号を確認します。ソケットの信号をロジアナで見るだけなので簡単に。

1周期分
Arduino信号は、同期信号を読んで画面左上をArduinoに検出させたものです。
ばっちり合っています。
画面左上辺りの信号 拡大
1ドット分の測定
166nSecなので12MHzクロックで動いていることが確認できます。

つづく   (と思う)

その後5月10日追記

開発者 動く!

なんとしたことか、光栄にも開発者様降臨です。
LINKはこちらです。

さて、16MHzのArduinoでは力不足らしいのでSTMに乗り換えようかな。いずれにしてもArduino IDEを使えるので試しながら考えます。作るならCake互換機能とかもいれて差別化してみたい。  底なし沼の入り口のような気がしますが。w

LINK他

IchigoJamはjig.jpの登録商標です。
詳しくはこちら。







2020年4月30日木曜日

Key Ichigo 2

KeyIchigoが概ね動作していることがわかりましたのでハードウエアの紹介をしておきます。

KwyIchigo ハードウエア編

まずは写真をご覧ください。基板は経済寸法の10㎝x10㎝です。

簡単な説明

LCDソケット:モバイルモード用128x64ドットLCD用ソケット
バックライトSW:LCDのバックライトON/OFFスイッチです。
W-Fi モジュール:WROOM02をのせてMixJuice互換になります。
EEPROM:Basicプログラム保存用の拡張ROMです。
電源コンバータ:1.9~5Vを3.3Vに変換します。これで乾電池でLCD点灯が可能となります。
電源スイッチ:左がONで右がOFFですが、逆がよかったかも。
LCD,ブザー:IchigoJam標準装備です。
ブザースイッチ:ブザーの音をOFFできます。
USB電源入力:5Vで使うときの電源コネクタです。
Groveコネクタ:センサーなど拡張用のGrove互換コネクタを実装できます。2mmピッチのコネクタがつかえます。
IJ CPU:いうまでもない、LPC1114FDH28。
タクトスイッチ:IchigoJam標準装備品です。
LED:キーボードのLEDですが使うことがないので要らないかも。
UARTポート:ATMEGA328のシリアルポートが出してあります。ブートローダを書き込んでUSB-シリアルアダプタなどをつなげればArduinoIDEでプログラムできる(筈)。
キーボードデコーダ:ATMEGA328を1MHzで使っています。プログラムはソフトウエア編をご覧ください。(Linkを追加しました。)
USBポート:IcjigoJamにつながっている配線の端子を設けました。上下を切り分ければ下半分はPS2キーボードとして動作するように作ってあります。
プログラムポート:GTMega328に書き込むための6ピンコネクタです。
その他:左下の方にキースイッチの間にある小さな部品はマトリクス用のダイオードです。3個使っています。


裏

RCAコネクタは裏につけられます。

LCD載せ

F1~F12は、Funcキーを押しながら最上段のキーを押します。
「-/=」を「=/-」とシルク印刷してしまいました。逆ですね。

電源

Wi-Fiを使うときは、乾電池3本または5V電源で使います。
Wi-Fi の電源は、中央にLDO用のパッドが用意されています。C6にはOSコンをのせて使います。

Wi-Fiを使わないときは、乾電池2~3本または5Vで使います。電圧範囲は1.9V~5Vです。

その他

Groveコネクタは合計6個です。3個はI2Cがつながっています。残りにはOUTがつながっていますので、I/Oとして使うことができます。
IchigoJamは素直に実装されています。
LCD右上のパッドは、I2C接続の温度センサーです。
「10 SWICH 1」を自動起動させると電源ONでLCDが使えますよ。

LINK他

IchigoJamはjig.jpの登録商標です。
詳しくはこちら。




Key-Ichigo

IchigoBoyのフルキー版を考えてみました。

Key Ichigo キイチゴ キーボードソフト編

概要

コンセプトは「ポケットIchigoJam」です。
キーデコーダはATMEGA328Pを使う。
素直なキーマトリクスだとピン数が足りないので一工夫必要でした。
FirmwareはArduinoIDEでつくる。
キー配列はフルキー同等にする。(10キー無し)
LCDもつけてポケットPC化する。(Vidoeコネクタは残す)
ついでにMJとかROM、 センサー用コネクタとかも載せてIoTにも対応。
28ピンソケットは対応。5ピンソケットは位置がずれます。
10㎝角の基板に全部載せます。



最小構成

LINKなど。

猫にコ・ン・バ・ン・ワ のページを参考にさせて頂きました。
ps2dev を使うとマウスとキーボードをエミュレートできるらしいのですが、すでに作ったことがあるので、ライブラリは使わずにコーディングします。

自分でP/S2をプログラムしてみたいので仕様をこちらで拝見しました。
https://www.technoveins.co.jp/technical/keyboard/
https://www.avrfreaks.net/sites/default/files/PS2%20Keyboard.pdf

名前はFB友につけて頂きました。ソフトのトラブルも解決ヒントをFBのIchigoJam-Fanでいただいています。そちらもよろしければご覧ください。

以下、整理します。というより丸写し。

PCとの通信ハンドシェーク

  • PCがCLK=0にしている:PCがBUSY
  • CLK=1、DATA=0:PCからの送信要求
  • データ送信は、CLK=1のとき、データを出してキーボードからCLKを操作する。
今回は1キーのみの対応なので次のようなフローになります。複数のキーが押されたとき最初のキーが離れた時点で次のキーを受け付けるようになります。シフトやコントロールキーはいつでも応答します。

1キー打鍵キーボードの処理
  1. DATA=1ならキースキャンを開始する。
  2. DATA=0ならPCからコマンドを受信して処理し1に戻る。
  3. 押下を検知したら、そのスキャンコードを送信する。
  4. キーのリリースを待つ。タイムアウトしたらオートリピートコード送信する。
  5. 当該キーのリリースを検知したらリリースコードを送信する。
  6. スキャンを続けるか、または1に戻る。
  7. Shift,ALT,CTRLは1と4のところで押下をチェックして別途コードを送信する。

PC->キーボードへの命令

  • 0xed + 0x00~0x07 : LED点灯制御(未確認)
  • 0xee : ECHO Responce要求 (対応)
  • 0xef~0xf2, 0xf7~0xfd: Nop (未対応)
  • 0xf3 + 1byte : Set Typematic Rate/Delay(未対応)
  • F4 : Enable キースキャン開始 (ACK返信)
  • 0xf5:Default Disable、初期化しスキャン停止(未対応)
  • 0xf6:Set Default、初期化(未対応)
  • 0xfe:Resend 再送要求(未対応)
  • 0xff:Reset。リセットしACKを返す。その後セルフテストを開始。(ACKを返す)

キーボードからPCへのコマンド

  • 0x00:バッファオーバーフロー(バッファサイズ16バイト)(未対応)
  • 0xaa:BAT Completed。Basic Assurance Testが正常終了した。(未対応)
  • 0xee:ECHO RESPONCE。ECHOコマンドへの応答(対応)
  • 0xf0:Break code prefix
  • 0xfa:Ack。ECHO, RESEND以外のコマンドの正常受信に対する応答コード
  • 0xfc: BAT Failure(未対応)
  • 0xfd:セルフチェックでエラー発生(未対応)
  • 0xfe:PCに対する再送要求(未対応)
PCからのコマンドはF4とFFにACKを返します。EDもプログラムはしましたが、2バイト目の受信は動作未確認です。IchigoJamが使わなければいらないし。

さて、いくつかのメモです。
クロック周波数は10~16.7KHz( 周期100~ 60uS)です。送信時は80uSに調整しました。受信時は適当です。
キーボードからホストに送信するときは、CLK=1を確認してからデータを書いてクロックをLOWにしてHIGHに戻すことを繰り返します。SPIをプログラムで送信するのと同じです。

ホストからキーボードに送るプロトコルはこうなっています。
  クロックを作るのはキーボードが行う。
  HOST->DEVICEのスタートビットはHOSTが作る。
  PCからキーボードへのデータの送り方。
    PCは100uS以上クロックを0にする。
    PCはDATAをLOWにする。(スタートビットに見える)
    次にクロックを1にするとデータ送信要求状態となる。
    キーボードは10mS以内にデータ読み出しを開始する。
    
これで条件がわかりました。あとはせっせとコーディングします。
PCからのコマンドは全てスルーしても一応動きますので、自作されるかたはまずそれから試せばよいと思います。

>>ハードウエア編につづく(予定)

ソフト編補足 2020年5月2日

IchigoJamのモニタ出力のDefaultはNTSCなのです。KeyIchigoは128x64のLCDが搭載されていますが、そのままでは切り替えないとLCDは点きません。
そこで、キーボードコントローラにIchigoJamからリセットコマンドが送られたら通常のACKにつづけて「F1+SWITCH1,5+Enter」を送信するようにしました。
これで、電源を入れるとLCDが表示を始めるようになりました。

LINK他

IchigoJamはjig.jpの登録商標です。
詳しくはこちら。


2020年3月8日日曜日

格安3Dプリンタを改造してみる (2020/03/15更新)

EasyThreed X1プリンタですが、使えそうなので少し改造しました。

3Dプリンタ 改造編1

さて、使えそうなことが確認できたので改造しておきます。

y軸ケーブル

y軸にケーブルガイドを追加

このような動きをします。
屈曲位置が集中しないので傷みにくく断線しにくくなります。

 フィラメントガイド

フィラメントガイドも追加します。3Dプリンタでよく使う内径2mmのチューブです。
これを止めるパーツを自分でつくります。 これが嬉しいところです。

以前から使っている3D CADで造形して
付いてきたスライサーでGCODE化します。
SDカードに書き込んでプリント開始、、、。

あれ?なんか変です。
そうなんです。鏡像でプリントしてくれます。要するにX軸かY軸の方向が逆なのです。
今後はCuraでスライスしたいので設定がないか探しましたが、無いようです。
今日のところは、スライサーで反転しておきます。 とりあえずメーカーに質問を送りましたが、回答あるかな。

ステップモータを逆回転にして(これは配線変更だけでできる。)原点スイッチの位置を変えればできるけれど、急がないので後にします。

  >>これはコントローラでモーターとリミットスイッチの配線のXとYを入れ替えて対処しました。(2020/03/15追記)

プチ改造の結果

今日の改造結果です。
これで、見張っていなくても使えますね。
断線の心配も減りました。

コントローラは

コントローラの中
中はこんな感じです。ばらして台座に組み込んでしまいたいですが、後の楽しみにとっておきましょう。

鏡像で印刷する件は、X-Y軸の入れ替えで対処するのが、簡単そうです。
同じモーターを使っているようだしコントローラの配線差し替えだけで済みそうです。

フィラメントホルダー

自分でプリントできる1Kgフィラメントリール用のものを作っておきます。
直径は95㎜です。
他にM3のネジとナットと6㎜の鉄球を使います。
上下のパーツの間にはポリスライダーをいれればBetterでしょう。


台にボールの位置をきめるリテイナーをのせて鉄球を並べます。


ネジで止めれば完成ですが、ネジは締めすぎないように注意です。

STLデータを置いておきます。

ここにおきましたが、見えますか???

もうひとつの改造

Toutubeを見ていたら、冷却ファンを追加していました。コントローラにはファン用のコネクタがついているらしい。12V の小型のファンならあるので、やってみたいと思います。プリント品質も上がるはずです。












2020年3月7日土曜日

格安3Dプリンタを使ってみました。3Dプリンタを使って色々作っていますが、時間がかかるのでもう一台あると便利かなと思っていたところ、10㎝x10㎝と小型の激安プリンタが販売されていましたので、買ってみました。

Easy Threed X1 プリンタ


Linkはしませんが「EasyThreed X1」で検索すると複数のサイトで販売されているのがみつかるとおもいます。最安値は4桁でした。


開梱の儀 開けたところ

2層目 配線済みですね。
Y,Z軸です。

問題発見。
ヘッドのカバーの爪が割れていて外れてしまいます。
動作には影響はないです。(^^;;

3層目の台座とはケーブルでつながっています。

最下層
電源とUSBケーブルです。USBは懐かしいABケーブルでした。
しかし、Firmwareのアップデート用でPCから直接プリントには使えないらしい。


長いネジが2本と
SDカードにカードリーダが入っています。
SDカードには説明が入っていますが、英語と中文のようです。
和文の組み立て説明書は印刷されたものが同梱されていました。

爪がおれています。

テープで応急修理。

電源をいれて、コントローラのホームボタンを押すとヘッドの高さをゼロ点に移動します。
が、
こんなに浮いています。これは困るのですが、原因はケーブルが高さ(Z軸)センサに挟まっていました。
ケーブルの固定を後で考えましょう。

画面右下に映っているネジで高さを調整するのですが、
よく見るとベッドを固定しているネジ(画面中央、奥のほう)が緩んでいます。

ベッドを固定しているネジ達です。

こんな感じで増し締めしたのですが、これが後で問題の原因に。

問題がこれ。
ネジを締めすぎたらしく、X軸(横方向)がずれてしまいました。
いわゆる、ステップモーターの脱調という現象です。
前に戻って、ネジをガタのない(遊びのない)ぎりぎりまで緩めてシャフトにグリスを補給しておきます。
グリスは重くなるのでオイルをこまめに給油がよいそうです。(追記)


もう一度作り治しました。スライスもやり直しています。
プリントベッドは磁石で外せてできたものを外すのは楽です。


和文の説明が同梱されていました。もう少し濃く印刷してくれると読みやすいですが、読めないことはありません。

とりあえずのまとめ

USBメモリには英文と中国語のPDFが入っています。スライサもUSBにありましたが中国語と英語メニューです。

X軸脱調問題はもう一度調整してみましょう。ベルトを外すと軽く動きますのでモーター側の組付けをみたほうがいいかもしれません。

フィラメントのホルダはついているのですが、最大荷重が250gだそうです。普通は1kgで買うので、巻き直すかフィーダーを別に用意したほうがいいですね。

あとは、コントローラのケースの中で何かのLEDが点いたり消えたりしているのが気になります。Heaterでもなさそうだし時間があれば後で調べることにしましょうか。

ケーブルの固定とか、少し手をいれたいところもありますが、値段を考えればよくできていると思います。10㎝あれば、色々作れると思います。







2019年11月25日月曜日

IchigoBoy Pocket Kit 98%をつくってみた

従来のIchigoBoy Pockeはチップ部品を多用していたので主に完成品で提供していました。

名前は IchigoBoyPocket Kit98%

CPU以外をリード部品に置き換えてみました。
コネクタとスイッチの位置についてはできるだけ同じにしています。

電源のUSBコネクタは、リード部品といえるかどうか微妙です。(^^;;
EEPROMもDIPが使えたのはラッキ―でした。面実装タイプも使えます。
全部で約50個のパーツが載りますがCPUが唯一半田付けしてあります。つまり2%だけできているので98%キットと言うわけです。
もちろんIchigoJamBasicは書き込み済みです。

スライドスイッチは脚付きタイプと従来品の両方が使えます。
OUT1~6を引き出せるスルーホールを大きくしたので工作に使いやすくなったと思います。

PCとつないでプログラムやファームウエアのアップデートできます。(ソケット付き)

基板の写真 大きさはIchigoBoyより少し小さいです。


表 緑色はコンバータモジュールです。

裏 電池ホルダは両面テープで固定します。

回路図

回路図

PDF版はこちらから。

作り方について 

部品が小さめで、50点と多めなので中級者のかた以上にお勧めします。
配置が密で両面実装していますので、順番によっては難易度が上がります。
小さな部品から付ければ問題はないはずです。

添付の説明書はここからご覧ください。これがすべてです。
22KΩ(赤赤橙金)と2.2KΩ(赤赤赤金)がとてもよく似ているので間違えないようにしてください。

では、ゆっくりと、半田付けをご堪能ください。

LINK他

IchigoJamはjig.jpの登録商標です。
詳しくはこちら。