fc2ブログ

KBJAM-J1(IchigoJam用)

IchigoJamをポケコン化するキーボード基板KBJAM-J1を作りました。
IchigoJamやその互換機(IchigoDake等も可)のソケットに差し込んで使います。
設計情報は右記で公開しています: https://github.com/maenoh/KBJAM-J1
IMG_4468.jpg
液晶ILI9341にも対応しているので、LCD用ファームウェアに更新すればポケコン化できます。
ただし、RISC-V版のIchigoJam RやGIGA IchigoDakeでは今のところLCDが利用できないので、モニタへの出力になります。
キーボード部(-J1は日本語配列)は半田ジャンパーのパターンになっており、ダイソー等で売っている導電繊維タイプのタッチペンでショートさせることでキー入力します(導電ゴムタイプは使用不可)。なお、一部の特殊キーはタクトスイッチを使用します(SHIFTキーは秋月P-07193等、その他のキーはP-08073等(色違いもありますね))。
なお、キーボード用ICとして、HT82K629A(40pin DIP)が必要です。
このICは、AmazonやAliExpressで購入できますが、半導体不足の影響で今は値段が上がっています。PCN北はりまさんのHeta-Pad(PCN通販で購入可能)にもHT82K629Aが搭載されていますので、これを抜いて挿しなおすこともできます(オススメです)。
なお、このICが入手できない場合でもカーソルキー等をゲームパッドとして利用できるように設計しています。以下の写真では実装していませんが、Xやスペースキーにもタクトスイッチを増設できます。これらをIchigoJamのI/Oにジャンパー配線すればIN命令で利用できます(スイッチの反対側はGNDに接続できるように半田ジャンパーを設けています)。
その他のオマケ機能としては、以下があります。
(1)USBシリアル接続端子
(2)エッジコネクタによりmicro:bit用の一部の拡張基板が利用可能
(3)音声出力用のミニジャックの追加が可能(秋月C-06070)
(4)IchigoDake用の3.3Vレギュレータが搭載可能(秋月I-16155等)
(5)IchigoDake用にキーボード接続用コネクタを増設可能(C-11551又はC-09385:ジャンパー切替)
(6)IchigoDake用にビデオ出力用RCAジャックを増設可能(C-06508)
(7)電池BOXを取り付け可能(P-02667):中央下のネジ穴1つのみです。
(8)赤外線通信実験用にリモコン受信モジュールや赤外線LEDの搭載が可能
(9)ゲームパッド利用をシリアル接続で行うためのマイコンを追加可能

以下の写真はHeta-PadからキーボードICを移植して動作確認した時のものです。
IMG_4455.jpg
IchigoJam互換機も利用できます(一部の互換機ではキーボード用の5V電源のジャンパーが必要かもしれません)。PCN通販で販売中のJ@mbitもソケット追加により利用できます。J@mbitは容量の大きなマイコンを搭載しているのでIchigoCakeBASICへのアップデートも可能で、4Kバイトのプログラミングが楽しめます。
IMG_5392.jpg
以下のようにゲームパッド専用にマイコンR8CM11Aを搭載することもできます。これにより、シリアル通信でゲームパッドの状態を把握できます。
IMG_4449.jpg
上級者の方向けですが、この基板に直接LPC1114マイコンを搭載することも可能です。
IMG_4446.jpg

以上

スポンサーサイト



IJMOUSE(PS/2マウスインターフェース)

IchigoJam用PS/2マウスインターフェース基板IJMOUSEを開発しました。
5V電源用にIchigoJamのCN5コネクタを利用しますが、シリアル信号はジャンパー線でRXDに接続します。
下の写真のようにCN3,CN4コネクタ側にはみ出さない設計になっており、これらコネクタを利用する一部の基板とは併用が可能です(RXDのジャンパー配線が可能な場合)
なお、IchigoJam用のサンプルプログラム(DRAWおよびPCG編集)が内蔵されており、ジャンパー配線を通じてダウンロードし実行することが可能です。
DRAWではマウスによるお絵描きとキーボードによる文字入力が可能です。
IMG_8525.jpg
PCG編集では、選択した16x16ドットの領域に対してドットのセット、クリアが可能です。
IMG_8530.jpg
PS/2マウスだけでなくPS/2キーボードにも対応しており、例えば講師用キーボードとして個別指導や、対戦ゲーム等に活用できます。Altキー併用によるIchigoJam絵文字の入力に対応していますが、ローマ字入力には対応していません。PS/2専用キーボードを推奨しますが、SANWA SKB-L1UBK
ELECOM TC-FCM103は動作確認済みです。
IMG_8504.jpg
PS/2は標準のmini-DINコネクタを採用しています。推奨するPS/2マウスはELECOM M-K6P2RWH/RSです(Amazon等で購入可能です)。なお、基板にはEEPROMソケットの取り付けも可能になっています。
IMG_8479.jpg
プルアップ抵抗(6本:10KΩ程度)やLED用抵抗(1本:300Ω程度)は、基板の裏面又は表面に取り付けます(交換する可能性がある場合は裏面を推奨)。
IMG_8484.jpg

仕様(暫定)

機能:PS/2仕様の機器(マウス又はキーボード)と接続し、シリアルデータに変換します。なお、本基板のTXMとIchigoJamのRXDをジャンパー線で接続する必要があります。
   マウスに関してはASCIIコードに変換しています(1文字又は複数文字)。
   IchigoJam用のサンプルプログラム(DRAWツール,PCGエディタ)をマイコンに内蔵しており、IchigoJamにダウンロードすることが可能です。

動作確認済みPS/2マウスは、ELECOM M-K6P2RWH/RSです。
一部のマウスやキーボードは動かないことがあります(USBとPS/2兼用のSANWA MA-BL138は使用不可)。 
ただし、以下のキーボードは動作確認済みです(2022年10月現在)。
SANWA SKB-L1UBK
ELECOM TC-FCM103
なお、接続には変換アダプターが必要です。

***マウス編***

マウスのコードは通常のキーボードからの入力と同様のASCIIコードになっています。移動はカーソルコード(#1C~#1F)、3つのボタンの状態は数字の0~7、スクロール操作はPageUp/Downに相当します。ボタンは1が左、2が右、4が中央ボタンに対応し、すべてを離した状態が0です。
マウスの動きやボタンの操作の変化により、カーソルコードや数字等が出力されます。
なお、シリアルデータとは別にP15,P16,P17にはマウスのボタンの状態が出力されます(5V出力)。
これらはIchigoJamのIN1,IN2,IN4に接続することもできます。

PS/2マウスを接続した場合の説明
 (1)電源を入れるとLED2が点灯(約2秒)、消灯(約2秒)の後で
    2回点滅し、通常のマウス動作を開始します。
    動作中は、マウスの動きやボタンの状態により、
    LED2のON/OFFが変化します。
 (2)動作開始後に、SW3を押しながらマウスの左ボタンを押すと
    IchigoJamへのサンプルプログラムのロード、実行が可能です
    (この時、マウスが動くとこの動作はキャンセルされます)。
    なお、NEWを実行しておいてから、このモードに移行して下さい。
    LED2の点滅の数の番号のプログラムが転送され、実行されます。
     サンプル1:マウス動作確認
     サンプル2:IJMOUSE DRAW(お絵描き)
     サンプル3:IJMOUSE PCG(PCG編集)

 (3)動作開始後に、SW3を押しながらマウスの右ボタンを押し
    以下の回数の点滅を確認後に離すと、マウスの移動検出のON/OFF切り替えられます。
    点滅が1回の場合はOFFになりボタンの情報のみがシリアル出力されます。
    (IchigoJamのプログラミング時にマウスの移動による意図しない文字の入力を防ぎます。)
    点滅が2回以上の場合はONになり、通常の動作になります。

 (4)動作開始後に、SW3を押しながらマウスを左右に動かすし
    点滅を確認後に離すと、移動に対する感度(DPI)を変更できます。
    LED2の点滅の数が多くなると感度が悪くなります。
    適当な点滅数の時にSW3を離して下さい(デフォルトは2)。

上記サンプル1,2,3の詳細

サンプル1:マウスの1バイトコードを表示します。
  マウスの機種により動作しないものがありますので、
  先ずこれで確認してください。

サンプル2:IJMOUSE DRAW(お絵描き)
  本プログラムは、描いた絵を別のプログラム番号に保存し、そこから再開できるようにLRUNを使用しています。
  本プログラムを0番以外の番号に保存する場合は先頭行のLRUN0を書き換えて下さい。
  左ボタンを押しながらマウスを動かすことで文字(絵文字もOK)で絵が描けます。
  キーボードからの連続文字入力、Enterキーで改行、BSキー文字の削除が可能です。
  入力モード切り替えはEndキーで行いますが、以下の3種類のカーソルで区別可能です。
  モード0:@:英数入力、英小文字入力が可能
  モード1:点線の〇:英数入力、英小文字を#00~#1Fの記号に変換
  モード2:¥:キーボード数字入力モード
  (モード0,1では数字は入力できません。ボタン状態に使用の為。)
   IchigoCakeでは必ず先頭行が、P=#E02:T=#1B00に変更してください。
マウスの中央ボタンではモード0又はモード1への切り替えのみ可能です。
描画文字は最後に入力した文字が使用されます。
マウスの右ボタンのクリックでカーソル位置の文字を描画用文字としてセットすることもできます(スポイト機能)。
マウスのスクロール操作で、入力文字コードの増減が可能です(カーソルが変更されます)。

編集中の絵(画面)は以下の手順で保存できますが、
この時本プログラムは破壊されます(書き換えられます)。
1.HOMEボタンを押す。
2.OKが表示されたら、直ぐに空きのプログラム番号にセーブする
 (注意:その前にNEWすると絵が消えてしまいます)。
  完成した絵(画面)のセーブ:
  例、SAVE3
  (なお、@ARUNは、@IRUNに書き換えられています。)
3.お絵描きの再開:
  例、LOAD3
  RUNすると元の絵が画面に表示され、LRUN0,30によりDRAWのプログラムが実行されます。

サンプル3:IJMOUSE PCG(PCG編集)
  上部にPCGの全文字が2行の一覧エリアに表示され(#E0~#FF)、
  初期選択の4文字分(2x2)が16x16の描画エリアに表示されます。描画エリアの右には16進コードが表示されます。
  一覧エリアで左ボタンを押すことで選択対象の4文字を変更できます(描画エリアが更新されます)。
  描画エリアでは、マウスの左ボタンでドットをセット、右ボタンでドットをリセットします。
  ドットの変更によりPCGの内容と16進コードが変わります。
  なお、マウスのスクロール操作で、カーソル文字を変更できます。
  一覧エリアで選択中の4文字のうちの1文字の上で中央ボタンを押すと、
  現在のカーソル模様でその文字(PCG)を上書きします。
  制約:SAVE機能はありません。
  電源を切るまでは、PCGの変更結果は維持されています。
  NEWしても消えませんので編集したPCGデータをプログラム領域を利用してSAVEすることができます。
  NEW
  COPY#F00,#700,256 でプログラム領域の後ろにコピー
  (IchigoCakeの場合は、#F00の代わりに#1D00。以下も同様。)
  SAVE2 (例として2番にセーブ)
  これを、利用するプログラムを作成する場合は、
  LOAD2
  10 COPY#700,#F00,256 でPCG領域に復元
  なお、PCGデータが破壊されないよう767バイト以下(IchigoJamの場合)で
  プログラムを作成する必要があります。



***キーボード編***

PS/2キーボードを接続した場合の説明
 電源投入後にモードを設定する必要があります。
 1のキー(又はスペース等)を押すとモード1、
 2のキーを押すとモード2になります。

 1.モード1の説明   
  押したキーのASCIIコードをシリアル出力します。
  CapsLockを押すとアルファベットの大文字、小文字を切り替えられます。
  Shiftを押しながらキーを押すとシフトされた文字コードが出力されます。
  Ctrlを押しながらキーを押すと、00から1Fまでの制御コードが出力されます。
  Altを押しながらキーを押すとIchigoJam用の#E0から#FFのコードが出力されます。
  AltとShiftを押しながらキーを押すとIchigoJam用の#80から#9Fのコードが出力されます
  (ただし、英文字はCapsLock状態になっていないことが必要です)。
  Shift,Alt,Ctrlキーの状態はP15,P16,P17に出力されます。
  これらはIchigoJamのIN1,IN2,IN4に接続することもできます。
  なお、ローマ字入力はできません。

 2.モード2の説明
  PS/2キーボードのスキャンコードがそのまま出力されます。
  ASCIIコードには変換されません。
  キーを離した時にもブレイクコードが出力されますので、
  ゲームや音楽キーボード代用等に利用できます。

その他、技術仕様
 信号ピンの割り当て
  P14:TXM (シリアル出力、IchigoJamのRXDにジャンパー線で接続)
  P46:RXM (接続不要)
  P11:PS2CLK   (PS/2機器に接続されています)
  P12:PS2DATA (PS/2機器に接続されています)
  P13:SW3 (モード設定用スイッチ)
  P37:LED2 (動作確認用LED)
  P15:LEFT BUTTON 又はSHIFTキーのモニタ出力
  P16:RIGHT BUTTON 又はALTキーのモニタ出力
  P17:CENTER BUTTON 又はCTRLキーのモニタ出力
  P47:未使用(リザーブ)

オプション:USBシリアルを取り付けることができます(5V電源供給も可能)。
(HW-728:CH340E USB-TTLコンバータ:Shigezone等)
なお、ピンソケットの追加無しでもスルーホールがジグザク配置になっているのでピンヘッダーのまま挿すこともできます。その場合は、EEPROMの邪魔にならないようにピンヘッダーを縦に半田付けします。

IMG_9257.jpg

以上

FMラジオキット FMrabit-i

FMrabit-iは、IchigoJam用FMラジオキットです(半田付けが必要)。
7セグLEDによる周波数、音量の表示が可能です。
イヤホン又はアンプ付きスピーカーを御用意ください
(又はTVの音声入力にも接続可)。
スマホ用イヤホンのボタンによる操作にも対応しています。
ワイドFM(AM放送局のFM補完放送)にも対応しています。
エッジコネクタによりmicro:bit用周辺機器の利用が可能です。
また、液晶(ILI9341/AQM1602Y)やUSBシリアル用のスルーホールを備えています。
IchigoDakeでは電源供給用にIchigoIgai等を併用してください。
RISC-V版IchigoJamRに関しては1.5β8で動作確認済みです。
IchigoJam互換機J@mbitを使用する場合は、ピンソケットの追加が必要です。

IchigoJam/IchigoJamRに取り付けて、立てて使えるデザインになっています。
ボタンの長押しでチャンネル/音量のモードを切り替え、
短く押すとチャンネル/音量が変わります。
FMrabit & IchigoJam
拡張用のスルーホールとしして以下があります。
(1)USBシリアルHW-728用(左側:写真のピンソケットは付属しません。)
   こちらのお店で取り扱いがあるようです:https://www.shigezone.com/product/hw728/
(2)ILI9341液晶用(左側)
(3)AQM1602Y液晶用(中央下)
(4)NeoPixel用(左上)
(5)サーボ用(左下)
なお、右側はエッジコネクタになっており、micro:bitと接続したり、
micro:bitの周辺機器が使用できます。

FMrabit & IchigoJam 裏
IchigoJam基板の部品とぶつからないように長めのピンヘッダーが付属します。
基板間の距離は約18mmなので、立てて使用しても安定しています。

FMrabit パーツ
パーツ 一式(7セグLEDは時計用のものが付属します。)

FMrabit & IchigoDake & IchigoIgai 裏
IchigoDakeの場合は電源供給の為に、IchigoIgai等が必要です。

FMrabit & IchigoDake & IchigoIgai
IchigoDakeとの組み合わせでは、高さが合わないので寝かせて使用します。

FMrabit & J@mbit 裏
IchigoJam互換機J@mbitとの組み合わせでは、J@mbit側にピンソケットの追加が必要です。
J@mbitはIchigoCake用BASICに更新することも可能で、その場合は4Kバイトが利用できるので多機能なFMラジオも実現できるでしょう(時計表示、タイマー動作等)。

FMrabit & J@mbit
J@mbitとの組み合わせでは、高さが合わないので寝かせて使用します。

回路図です。
FMrabit-i_Circuit


FMrabit-i ラジオキット 説明書   2021.6.17 MAENOH

本製品はIchigoJam用FMラジオキットです。
キット製品であり、半田付けが必要です。*IchigoJamは、jig.jpの登録商標です。
IchigoJam BASICのバージョンは1.4.2を推奨します
(1.4.3ではプログラム対策しても7セグLED表示がちらつきます)。
IchigoDakeでは別途3.3VのVCC電源が必要です(IchigoIgai等を御利用ください)。
RISC-V版IchigoJam Rは1.5β8で動作確認済みです。
IchigoJam互換機J@mbitを使用する場合は、ピンソケットの追加が必要です。
(J@mbitの場合は、IchigoCake用ファームに更新することで4Kバイトが利用可能で、
 より多機能なFMラジオを実現できます。)

基本機能
(1)FMラジオ受信(周波数/音量をI2C制御)
(2)イヤホン端子からのステレオ音声出力(スマホ用イヤホンのボタンによる操作も可能)
(3)7セグLEDによる周波数/音量の表示
(4)イヤホン端子からのIchigoJam音声出力
  (ジャンパーピンによりラジオの右出力と切り替えます。
   左出力ではラジオを聴くことができます。)
 備考:ラジオ用プログラムを実行し、選曲、音量調整をした後は、
   プログラムを停止しても聴き続けることができます。
   外付けスピーカーはダイソーのアンプ内蔵タイプをお勧めします。
   アンプなしの100均のスピーカーでは音は小さめです。

拡張機能(上級者向け)
(EX1)イヤホン端子からのビデオ出力
    (ジャンパーピンによりラジオの左出力と切り替えます。
    TVとの接続にはステレオミニプラグRCAピン変換ケーブルが必要です。)
(EX2)液晶ILI9341を取り付け可能(1.4.3LCD用ファームに更新要、R6でバックライト調整可)  
(EX3)液晶AQM1602を取り付け可能(なお、JP6でリセットをVCCに固定できます)
(EX4)I2C用Groveコネクタを追加可能(JGRV1:縦型コネクタ)
(EX5)7セグLED はアノードコモンで6ピンx2行のものの多くに対応。
    (小数点なしの時計用4桁や、小数点付き3桁など。
    2行の距離が20.32mmの大型のものまで取り付け可能です。
(EX6)NeoPixel用端子(LE0)があります(電源はVCCなので電流容量に要注意:数個なら可)。
(EX7)サーボ用端子(SV2)があります(OUT2制御、電源は5Vです)。
(EX8)エッジコネクタによりmicro:bit用拡張ボードの一部が利用可能
            (I2Cはピン位置互換、P0/P1/P2は未接続:任意にジャンパー可能)
    信号端子の並びは以下:
    SND,P0,IN2,OUT1,OUT2,IN4,P1,IN1,IN3,VD2,BTN,LED,P2,
    OUT3,OUT4,OUT5,OUT6,VCC,VCC,VCC,SCL,SDA,GND,GND,GND
(EX9)ビデオ出力の予備としてJV0端子(RCAピン用)があります。
    (ただし、GNDの電極をクリップ等で自作する必要があります。)
(EX10)USBシリアル用端子JU1があります。
        Amazonで、CH340Eで検索するとHW-728モジュールの1個売りのものが見つかると思います
    (300円台から1000円程度)。
    JU1はこのHW-728のピン配列に合わせて設計しています。
    (G)ピンは必要に応じてJP0によりGNDに接続できます(HW-728は接続)。
    その他のUSBシリアルも使用できるものがありますが、適切にジャンパー配線してください。
(EX11)マイクロスピーカー (秋月電子P-12494)を取り付け可能です。
    (ユニバーサル領域の裏に貼り付け、GNDとL(又はR)に接続)
(EX12)USBコネクタを取り付け可能です。ダイソーのUSB電源のスピーカーへの電源供給や
    IchigoDake用のキーボードが接続できます。
    VBUS電源は。VCC又は5VをJPV35で切り替えることができます。
    (5Vを使用する場合は、CN5の接続が必要です。)

付属部品
(1)基板
(2)FMラジオモジュール(RDA5807M)
(3)ステレオミニジャック
(4)7セグLED(4桁時計用)  
(5)ボタンスイッチ(縦型/横型の2種)
(6)アンテナおよび取り付けネジ
(7)抵抗およびコンデンサー一式
(8)ピンヘッダー
(9)ジャンパーピン(3個)
(10)サンプルプログラムリスト

組み立て方法概要
 大部分の部品は基板の裏に取り付けます。
 FMrabit-iの表示のある側が表で、7セグLEDと縦型ボタンスイッチ(SW5)等を取り付けます。
 (電解コンデンサーは裏又は表に取り付けることができます。)

組み立て手順
(1)基板にFMラジオモジュールを取りつけます。
   銀色のクリスタルの位置がGND/3V3側になるようにします。
   つまようじ2本で左右のセンターピンを仮固定し、
   正確に位置を合わせて半田付けをします(四隅から)。
(2)半田ジャンパーを接続します。
   基板裏側
    JP1でCOL1をIN1に接続してください。
    JP4でCOL4をSNDに接続してください。
   基板表側
    JP3を接続してください(SW3をIchigoJamのボタン代わりに利用する為)。
    IchigoJam/IchigoDake/J@mbitの場合は、JP21でSDAをIN3に、JP22でSCLをEXに接続してください。
    IchigoJamRの場合は、JP21でSDAをRSDに、JP22でSCLをRSCに接続してください。
(3)抵抗を取り付けます(カラーコードはネット等で調べてください)。
   ・7セグLEDを使用する場合はR11~R18の8つに330Ωを取り付けます。
   ・LE0端子用R4に330Ωを取り付けます(LE0にはNeoPixelや普通のLEDが取り付け可能です)。
   ・I2C用プルアップ抵抗R21,R22に10KΩを取り付けます。
   ・スマホイヤホンボタン用プルアップ抵抗R3に1KΩを取り付けます。
   ・ボタンスイッチSW5用の直列抵抗R5として100Ωを取り付けます。
      (R5とR3で分圧するのでアナログ読み取り値は93程度になります。)  
   ・本基板からビデオ出力したい場合は、R1に470Ω、R2に100Ωを取り付けます。
(4)ステレオミニジャックを取り付けます。
(5)横型ボタンスイッチSW3を取り付けます(裏側)。
(6)ジャンパーピンを取り付けます(3か所)。
  JL0:ミニジャックのL側の信号を切り替えるジャンパーです。
   通常はLSND (ラジオの左音声) 側ですが、VID側に切り替えることで
   ビデオ出力に利用できます(ステレオミニRCA変換ケーブルを使用)。
  JR1:ミニジャックのR側の信号を切り替えるジャンパーです。
   通常はRSND側(ラジオの右音声)ですが、JAMSND側に切り替えることでIchigoJamのサウンドを出力できます。
   JM9:スマホ用イヤホンのボタンを利用する場合のジャンパーです(使用する場合はMIC側に切り替え)。
   通常のイヤホンや外部スピーカー、上記変換ケーブルを利用する場合は、
   ピンを抜くか又は反対側に切り替えます(重要)。
(7)CN3,CN4に各々14ピン分のピンヘッダーを取り付けます。
   IchigoJamにピンヘッダーを差し込んで、その状態で半田付けをします。
   (備考:CN5のピンヘッダーは基本的には不要。5V利用時のみ接続。
     IchigoJam Uでは、CN5の接続は禁止です:パソコンのUSB信号とショートする為。)
(8)縦型ボタンスイッチSW5を取り付けます(基板表側)。
(9)7セグLEDを取り付けます (基板表側) 。
    文字の書いてある側の6ピンをL70(又はL69)に取り付けます。
    7セグLEDを別のものに交換する可能性がある場合はピンソケットを利用します。
    なお、付属の時計用7セグLEDは、6ピン x 2行の他に余分なピンが出ていますが、
    使用しませんので、ショートしないように折り曲げます。
(10)コンデンサを取り付けます。
    電解コンデンサーC60,C61はリード線の長い方を+表示側に差し込んでください。
    IchigoJam等を差し込んでコンデンサーが他の部品と衝突しないか確認してから半田付けします。
    衝突する場合は、基板の裏側ではなく、表側に取り付けます。
    IchigoJamの音声をミニジャックから出力したい場合は、C52に0.1μF(104)、C53に1μF(105)を取り付けます。
(11)アンテナをJANT1にネジで取り付けます。

以上
備考:液晶ILI9341やUSBシリアル(HW-728)は秋葉原のShigezoneでも取り扱いがあるようです(21/7/1現在)。

 サンプルプログラム1:「7セグFMラジオ」

7セグ周波数表示のFMラジオです。
(小音量時に7セグの雑音が気になる場合は、サンプルプログラム2を御利用下さい。)
7セグ横のSW5ボタンを押す(又は上側のSW3を長押しする)とモード切替(チャンネル/音量調整)ができます。
各モードで、SW3を押すとチャンネルP又は音量Vを変更できます。
なお、周波数とチャンネル数は40行目で変更してください。
20行のVIDEO1をVIDEO0に変更することで7セグのちらつきが軽減できます(1.4.3以外)。
SW3の代わりに、スマホ用イヤホンのボタンを用いることもできます。
スマホ用イヤホン以外を用いる場合は、ジャンパーピンJM9を抜くか又はJM9側に切り替えてください。

10 'FM7SEG-A
20 V=1:P=1:M=0:VIDEO1:LED0
30 OUT8,0:OUT9,0:OUT10,1:OUT11,0
40 LET[0],795,800,813,825,847,905,916,930,0
50 LET[20],#3F,#06,#5B,#4F,#66,#6D,#7D,#27,#7F,#6F,0
60 LET[37],1,2,8
70 F=[P]:GSB@FUP
80 @LP:
90 IF!BTN(0)GSB@DISP:CONT
100 W=0:OUT#27F
110 A=ANA(0):IF A>500 CONT
120 IFBTN(0)W=W+1:CONT
130 IF A>50 W=200
140 IFW<200GOTO@CHANGE
150 M=(M+1)%2
160 IFM=0GSB@FUP
170 IFM=1GSB@VUP
180 OUT#37F+(1-M)<<9
190 IFBTN(0)CONT
200 WAIT10:GOTO@LP
210 @CHANGE
220 IFM=0P=P+1:GSB@FUP
230 IFM=1V=(V+1)%16:GSB@VUP
240 WAIT10:GOTO@LP
250 @VUP
260 LET[40],16,V/10,V%10
270 GOTO@SRD
280 @FUP:IF[P]=0P=0
290 F=[P]:LET[40],F/100,(F%100)/10,F%10
300 B=2:T=1:C=F-760
310 H=C>>2:L=((C&3)<<6)+(T<<4)+(B<<2)
320 @SRD:POKE#700,#C2,5,H,L,#A,0,#88,#80+V
330 S=I2CW(#10,#700,8):RTN
340 @DISP
350 IFZ=1OUT10,0ELSEOUT10,1
360 O=[[Z+40]+20]^#7F:OUT11,-2
370 O=O+([37+Z]<<7)+(M<<9):OUTO
380 IFZ=2OUT11,1
390 IFBTN(0)OUT10,1:RTN
400 Z=(Z+1)%3:GOTO@DISP

備考:360,380行のOUT11はIchigoJam1.4.3対応です。



 サンプルプログラム2:「7セグ自動消灯機能付きFMラジオ」

7セグ表示の自動消灯機能付きFMラジオです。
音量が小さい場合に7セグ表示による雑音が気になることがあります。
本プログラムでは一定時間後に7セグ表示をOFFにすることで雑音を低減します。
ボタンを押すと表示が開始され、表示されている間に再度ボタンを押すと
チャンネル又は音量がアップします。
なお、ボタンを長押しすることでモード切替(チャンネル/音量調整)ができます。
(ボタンの区別はありません:SW3/SW5/スマホ用イヤホンのボタン)
なお、周波数とチャンネル数は40行で変更してください。
20行のVIDEO1をVIDEO0に変更することで7セグのちらつきが軽減できます(1.4.3以外)。
20行のRが表示時間調整になります(IchigoJamRの場合はR=2000程度で調整して下さい)。
IchigoJamRでも1.5β8で動作確認済みです(20行目のLED0は1.5β8では必要です)。
スマホ用イヤホン以外を用いる場合は、ジャンパーピンJM9を抜くか又はJM9側に切り替えてください。

10 'FM7SEG-R
20 VIDEO1:P=1:V=1:R=300:D=0:LED0
30 OUT8,0:OUT9,0:OUT10,1:OUT11,0
40 LET[0],795,800,813,825,847,905,916,930,0
50 LET[20],#3F,#06,#5B,#4F,#66,#6D,#7D,#27,#7F,#6F,0
60 LET[37],1,2,8:'IN124
70 F=[P]:GSB@FUP
80 @LP:
90 IF!BTN(0)GOSUB@DISP:CONT
100 OUT#27F
110 WAIT6:W=0
120 IFBTN(0)W=W+1:WAIT6:IFW<9 CONT
130 IFD>R D=0:GOTO@WT
140 D=0:IFW<8GOTO@CHG
150 M=(M+1)%2
160 IFM=0GSB@FUP
170 IFM=1GSB@VUP
180 OUT#37F+(1-M)<<9
190 @WT:IFBTN(0)CONT
200 WAIT10:GOTO@LP
210 GSB@FUPDATE
220 @CHG:IFM=0P=P+1:GSB@FUP
230 IFM=1V=(V+1)%16:GSB@VUP
240 WAIT10:GOTO@LP
250 @VUP:LET[40],10,V/10,V%10:GOTO@SRD
260 @FUP:IF[P]=0P=0
270 F=[P]:LET[40],F/100,(F%100)/10,F%10
280 B=2:T=1:C=F-760
290 H=C>>2:L=((C&3)<<6)+(T<<4)+(B<<2)
300 @SRD:POKE#700,#C2,5,H,L,#A,0,#88,#80+V
310 S=I2CW(#10,#700,8):RTN
320 @DISP:IFD>ROUT#40:OUT11,-2:RTN
330 D=D+1:IFZ=1OUT10,0ELSEOUT10,1
340 O=[[Z+40]+20]^#7F:OUT11,-2
350 O=O+([37+Z]<<7)+(M<<9):OUTO
360 IFZ=2OUT11,1
370 IFBTN(0)OUT10,1:RTN
380 Z=(Z+1)%3:GOTO@DISP

備考:320,340,360行のOUT11はIchigoJam1.4.3対応です。



 サンプルプログラム3:「7セグ4桁カウンタ」

SOUNDピンを用いて4桁目の表示を実現したカウンタです(BEEP-1,-1を利用)。
TICK()の値をそのまま表示しているので秒単位になっていません。
改良してみてください。
なお、SOUNDピンを使っているので音が出てしまいます。

20 '7SEGx4 TICK COUNTER
30 VIDEO0:LED0
40 OUT8,0:'IN1 DIGIT1
50 OUT9,0:'IN2 DIGIT2
60 OUT10,1:'IN3 SEG-DOT(:)
70 OUT11,0:'IN4 DIGIT3
80 LET[0],#3F,#06,#5B,#4F,#66,#6D,#7D,#27,#7F,#6F:'0 to 9
90 LET[10],1,2,8,0:'IN1,IN2,IN4,DUMMY(SOUND)
100 LET[14],1,2,3,4:'4digit value
110 C=#0:'COLON OFF(#200),ON(#0) IN3
120 @LOOP
130 FORI=0TO3
140 T=TICK():[17]=T%10:[16]=(T/10)%10:[15]=(T/100)%10:[14]=(T/1000)%10
150 S=[[I+14]]^#7F
160 S=S+([10+I]<<7)+C
170 OUT11,-2:BEEP0:OUT S:'-2for1.4.3
180 IF I=2 OUT11,1
190 IF I=3 BEEP-1,-1
200 NEXT
210 GOTO@LOOP


タッチキーボード PianoKB

I2C接続のタッチキーボードPianoKBを作りました。
Arduino UNO/micro:bit/Raspberry Pi/M5stack/IchigoJamに対応しています。
詳しくは、こちら... PianoKB_210309B.pdf
IMG_20210103_092849.jpg

IchigoJam互換機J@mbit(ジャムビット)

IchigoJam*互換機J@mbit(ジャムビット)を開発しました。
*IchigoJam は 株式会社jig.jp の登録商標です。
詳細仕様はこちら:
IMG_9803.jpg
IchigoJam用ファームウェアを書き込んだ場合は、BASICを用いてプログラミングを行うことができます。基本的にはPS/2キーボード(ただし、USB形状)とビデオ入力のあるテレビを接続して使用します。なお、J@mbitの標準的なモデルではUSBシリアル変換基板が付属し、5V(キーボード用)と3.3V(マイコン用)の電源供給はこの基板から行います。また、この基板によりパソコンとの通信も可能であり、Tera Term等端末ソフトを用いたプログラム開発が可能です(キーボード/テレビ不要)。また、ファームウェアの書き込みも可能です。
IMG_9798.jpg

また、白黒液晶(CH12864F-SPI)もサポートされています(ただし、16字x8行表示)。
IMG_9805.jpg
J@mbit-v7では通常のIchigoJamよりも容量の大きいマイコンLPC1114/333を搭載しており、IchigoCake**用BASICを書き込むこともできます(4KBのプログラミングが可能)。
**:ナチュラルスタイル株式会社による開発
IMG_8069.jpg
J@mbitはmicro:bitと類似の形状(ただし、縦に8mm程度長い。横もほんの少し長いです。)により、mciro:bit周辺機器の利用や各種機器への組み込みが容易になっています。
IMG_E9970.jpg
また、ネジ止め端子でmicro:bitと接続することができ、J@mbitをmicro:bitの周辺機器として使用することもできます(NTSCビデオ出力又はPS/2キーボード入力用の周辺機器としての利用可能)。
IMG_9807.jpg
エッジコネクタは電源やI2Cの位置をmicro:bitと合わせていますので周辺機器は利用できることがあります(下記はPCA9685-I2Cサーボドライバの例)。
IMG_9999.jpg
その他利用できるmicro:bit周辺機器があります(下記はツインドリルジェットモグラ号の例:P13-16に割り当てれたOUT3-6により制御可能です)。
IMG_8445.jpg
なお、エッジコネクタのSPI信号の位置はmicro:bitと互換性がありません(P13-15はSPIではない)。IchigoJamではSPIはビデオ出力や液晶制御に使用されており、通常利用できません。OUT3-5を用いてソフトでSPIを実現してください。
=======================================================