RAM4KBで動くIchigoJam。変数、配列、PCG領域を使っても、ROM化検討しても、どうしてもメモリが足りない時、どうするといいでしょう?

ひとまず、EEPROMを使ったIchigoROMや、ROMカセットを使うのがオススメです。ただ、EEPROMのデータシートを見ると、消去/書き込みサイクル100万回と寿命があります。 ゲームなどで、拘束かつ頻繁な読み書きに使うにはちょっと心もとないかもしれません。

そんな時はSRAMを使いましょう、EPSON製の256kbit(32KB)の「SRAM 256K SRM2B256SLMX55」が、5コ200円、1コ50円で売っています。使い方は簡単、データシートを見ながら配線し、CS(chip select)をGNDにして、15bitでアドレス(A0-A14)と8biteでデータ(I/O1-8)を設定し、WE(write enable)をGNDで書き込みできます。読み込む時は、OE(output enable)をGNDでデータ(I/O1-8)に出力されます。


アドレス線はひとまず全部GNDにつないで、アドレス0。WEとOEをOUT1,2で制御。IN1にI/O1をつないで、1bitの書き込み、読み込みを実験しました。 ただ、32KB全部接続するには、IchigoJamではピン数が足りません。そんな時はI/Oエキスパンダ!I2Cを使ってI/O数を拡張できます。


MCP23017を使えば、16bitの入出力ができるようになります。VDD/VSSの電源は3.3VでOK。I2Cアドレス(A0-A2)を全部GNDにしたときのI2Cスレーブアドレスは32、SCL(SCKとデータシートに表記)とSDAをプルアップしてIchigoJamのSCL(EX1)とIN3に接続。次のプログラムでひとまず8bit出力実験。

10 IF POKE#700,1,0:?I2CW(32,#700,1,#701,1) STOP 20 FOR I=0 TO 255 30 POKE#700,#13,1:IF I2CW(32,#700,1,#701,1) STOP 40 WAIT 10 50 NEXT

10行でGPIAの8bitを出力に設定、30行で実際に出力!このI/Oエキスパンダを2つ使って、SRAMと配線すればできあがるはず!とわかったところで、回路図をUpverterで書きます。


EPSON SRAM 256K SRM2B256SLMX55 | Upverter
足りない部品はパーツ作成。(MCP23017はありました!)


回路をつないでいきます。・・・が、結構、配線が多くてなかなか大変。たかが16bitでこの調子です。Upverterに追加されたBUS機能を使って、なんとかコンパクトに収めてみたい。

配線作業が大変だなーと思ったら、手軽になった基板発注にチャレンジ!
10枚1600円送料込、モバイル対応IchigoJam用液晶シールドプリント基板、設計から発注まで1時間!

PCNこどもプロコン2020、3/29、最終表彰式、詳細発表!
PCNこどもプロコン2020 | PCN プログラミング クラブ ネットワーク
ゲスト審査員に、レジェンド、高橋名人と大橋編集長も!

一体型が便利な、アイ・オー・データ機器製、集約型周辺機器IchigoDyhook、IchigoDakeもいいですが、IchigoJamIchigoCake、月額60円のお手軽IoT、IchigoSodaもつなぎたい! そう、なければ作ればいいんです。それが、メイカー。


ピンソケット付きのIchigoDakeの上に載せるアダプターを作って、接続!


用意するのは、IchigoJam用ユニバーサル基板microUSBコネクタモジュールコンポジット(RCA)端子モジュールピンヘッダ or 細ピンヘッダと線材を少々。


ピンヘッダー、全部使ってもいいですが、必要な箇所だけに絞ると抜き差ししやすくなる効果。IchigoJamに実装済みのピンソケットを利用するとまっすぐはんだづけできます。


microUSBコネクタモジュールと、コンポジット端子モジュールを置いてみて考える。


コンポジット端子の信号線(HOT)をVIDEO2へ、microUSBモジュール2番のD-をKBD2へ、3番のD+をKBD1へ、それぞれのGNDをGNDへ。IchigoDakeを停止させるために、RESETとGNDを接続。3.3Vを取るために、VCC/GNDにピンソケットを実装。


ビデオケーブルをつなぎ、microUSBケーブル(充電専用ではないもの)をキーボード端子へ、VCCの3.3VをCN5の3.3Vへつないで、IchigoDyhookのスイッチオンで起動!快適!


IchigoSodaは外部からmicroUSBで電源をとってあげましょう!


このアダプター外せば普通に、IchigoDake+IchigoDyhookとして使えます。


コンポジット端子とステレオミニ端子を直接はんだづけして作ったいい加減なモノクロ音声の変換アダプター!


実はこちら、ファミコン互換機の音声出力用でした。IchigoDyhookでも動いた「忍者ハットリくん」。IchigoDyhookの省電力機能で、キーボード一定時間無操作で画面が消えてしまう点に注意。 キーボード信号を使って、コントローラーにするのもいいかも知れませんね!

NTSCモニターとPS/2 or USBキーボードのセットなのでラズパイや昔のパソコンなど、いろいろつなげて楽しめるのもIchigoDyhookの魅力です。

links
- IchigoJamカムロボのデバッグからラズパイ製品の現場調整まで、立ち乗りでこなすIchigoDyhook! – about yrm

IchigoJamの組み立てた方には見覚えある電子部品、クリスタル。 かなり正確に12MHzで電気的に発振するこの部品をCPU内部で4倍にして、48MHzとして動作させています。

実はIchigoJamは、クリスタルをつけなくても動きます。 CPU内蔵された12MHzの発振回路を使って、同じようにも動くようにできているのですが、発振の精度が悪いため画面が少し揺れたりします。 あえて最初ははんだづけせずに試してみるのもおもしろいかも?


クリスタル(水晶発振子) 3.579545MHz: パーツ一般 秋月電子通商-電子部品・ネット通販
いろんな周波数で販売されていますクリスタルですが、3.579545MHzという、なんとも中途半端風なこの周波数は何でしょう? 実はこちら、黄色い線でコンポジット端子へ接続する、NTSCの仕様にぴったりな部品です。

このクリスタルに対応した、IchigoJamのファームウェアを作ってみました。 3.579545MHz を 14倍して、50.113630MHz で動作させているので、ちょっとだけオーバークロック(定格50MHz)、通常版よりちょっと速く動作します。 水平同期周波数をぴったりにしたので、相性はよりよくなるはずです。うまく映らないテレビなどでお試しください。

IchigoJam 1.4β17
- 外付けクリスタル 3.579545MHz 用実験ファームウェア
(通常IchigoJamでは動きません!)


テレビにつなぐパソコン、MSXの動作周波数も、3.579545MHz。どこかで見た覚えがある数値だと思いました!

50MHzを余すこと無く使い切りたい人は、マシン語入門もどうぞ!
15分で分かる、高専生のための逆アセンブルして学ぶマシン語入門

世界を飛び回るPCN、ict4e代表で福井高専の先輩の原さん、アフリカ、ルワンダへ出張中。
首都でオープン、PCNキガリ!開所式の日、鯖江とネットでつないで交流会。

ルワンダ、鯖江、大阪がつながった!さすがネット時代!


「IchigoJamで動くカニロボです」「ぼくがつくりました!」


Hana道場内のレーザーカッターで切り出した、テオヤンセン型IchigoJam制御のオリジナルのカニロボ!


IchigoJamでプログラミングと信号機制御を体験してくれた、ルワンダのこどもの紹介、Hana道場で学び作った、第3回越前がにロボコンで準優勝したオリジナルカニロボの紹介、デモ走行をまとめました。
キッズエンジニア同士の戦いが熱い! 小学生対象 第3回 越前がにロボコン、優勝ロボットの勇姿とその秘密をインタビュー


自分で作ったゲームを紹介。ルワンダではやっているゲームを質問。ほとんどのこどもはまだコンピューターを使ったゲームに触れていないという回答。でも、ここから一気に伸びますね!

KEZA Learning Compassより動画がアップされました!

ict4e 原さんパートHana道場 中継シーン

中継終了後のHana道場はもくもくタイム。


たいせいくんは、レーザーカッターで、カニロボ部品の切り出し!


Twitterで発見、@Yushi_hydrogenさんによる電子工作をかわいくする方法を早速実践!


早速、100均や手芸センターで入手してきたビーズを広げます。


LEDなど、はんだづけする前の部品の足に、ビーズを通すだけのお手軽カスタマイズ!


キラキラ輝くスワロフスキー!左から、5mm、4mm、3mm、2.5mm。


コンデンサ、ビーズをつけるとかわいい!
三端子レギュレーターに付けたのは色選び悪くてちょっと目立たず。


スワロフスキー仕込んだLED部、拡大!
とっても安価にカスタマイズできるので、はんだづけイベントにオススメです!
小学校の教室ではんだづけ! はじめてのパソコンづくりとプログラミング in 加藤学園暁秀初等学校 with PCN沼津

links
- You Can Now Send Your Young Child to Learn Robotics in Kigali – KT PRESS
- PCN キガリ – Connect Your Kid with Technology
- PCN Rwanda “Kigali Club” has OPENED!! / PCNルワンダ 「キガリ クラブ」オープン! – about yrm

仙台では初のmicro開催、PCN仙台 Sendai Micro Maker Faireで活躍した5人のこどもたち!
地方のおまつり、元気でクリエイティブなこどもたちが出展することで、一気に活性化する予感!


初、年の市!晴天、暖かく、たくさんの人!


やってきました、PCNの出展!SakuranboJamなど、レアIchigoJam販売が!


リアルなわとびさっちゃん!


仕組みが見えるっていいですね!ハードもソフトもいじり放題!シニアの人向けにゆったりバージョン希望もありました。


ロボット体験用に、IchigoJamプリントじどうブレーキ」を追加!


サーボやセンサーで電子工作」ちょっと上級、電子工作サンプルも!A5で印刷するとちょうどいいサイズにしています。


PCN福井 勝山クラブへGO!


ご近所出展、勝山商工会議所のステキなものづくり集団、TSUCLOSSA(ツクロッサ) ぜひいろいろとコラボしましょう!(鯖江商工会議所にいいスペースできましたよ)


てづくりTSUCRYU(つくりゅう)くん、かわいい!


恐竜の勝山、ココドン by 勝山市社会福祉協議会
ぬいぐるみゲット!


鯖江では、NT鯖江2020を予定!みんないろいろ作って出展してね!鯖江市外からも大歓迎!


年の市で買った、いちご大福とIchigoDyhook、そっくり!

電波と電波法の知識が必須な無線マウスではなく、手軽に改造できる有線マウスを使ってデバイスづくりに挑戦!

マウスの左クリックをIchigoJamからOUT1/OUT0でプログラム制御し、IchigoJamのプログラムをPCに転送実験、成功です!


DAISOで300円、有線USBマウス。


ネジ一本で分解できます。シンプルな基板!ボタン用のマイクロスイッチが3つ、ホイールの回転を検知する部品、USBマウスの機能と移動量を検知する部品が一体化したものなど。


基板、裏面です。回路を目でも簡単に追えます。どこがGNDか調べるところからはじめるのがオススメです。PCを壊してしまわないよう、接続しない状態でまずは調べましょう。


ボタン3つをジャンパーとコネクタで横取りします。これを好きなスイッチに接続することで、オリジナル入力デバイスのできあがりです!大きなボタン、足で押すフットスイッチ、力がいらないマイクロスイッチなど、いろんなスイッチをつなげて遊べます。


左クリックをIchigoJamのOUT1につなげば、OUT1で離した状態、OUT0で左ボタンを押した状態になります。 IchigoJamのプログラムからマウスのボタン操作、自由自在!

IchigoJamのプログラムが記録されているメモリ、16進数で #C00 から、容量分、マウスクリックでPCに転送してみましょう。
mousereceiver」は、まずはマウスの押された時間を計測し、その長さをシリアル信号8bit分の長さとして使って、その後のON/OFFを解釈し、画面にIchigoJamのプログラム形式で出力します。 モールス信号の如く、手でも実験できるので、何度かカチカチ、押してみましょう。


プログラムを使えば、正確に転送することができます。送信時間の単位を W で設定。長くしたり、短くしたり実験してみましょう。

100 W=4:OUT0:WAITW*8:OUT1:WAITW*8:FORI=0TO1024-FREE():C=PEEK(#C00+I):?HEX$(I,3),BIN$(C,8),C:FORJ=0TO7:OUT!(C>>J&1):WAITW:NEXT:NEXT:OUT0:WAITW:OUT1

いろんなデバイスの改造、楽しいですが、無線機器の改造は電波と電波法の知識が必要になるので、注意しましょう。
(参考、DAISOの300円無線マウスを改造して、ワイヤレスかんたん入力マシンが創れる!? → 不推奨です

DAISOで発見、なんと300円のUSB無線マウス!改造してオリジナル入力デバイスが(追記、技術的には)作れちゃいます(追記、が、気軽に作成すると電波法違反になる恐れがあるため、当初タイトル「無線、かんたんに創ろう!」は誤りでした、すみません)。

※追記、下記の改造をするためには「技適未取得機器を用いた実験等の特例制度、無線設備が法第四条の二第二項の法第三章に定める技術基準に相当する技術基準として総務大臣が指定する技術基準に適合する事実の確認方法(令和元年総務省告示第265号)」による届出が必要です。届出なしの改造は、電波法違反になる恐れがあります。 サーボを使って物理的に押すなど、分解を伴わない工作による製作や、無線の代わりに有線マウスの改造をオススメします。
DAISOの300円有線マウスを改造して、かんたん入力マシンを、かんたんに創ろう! + IchigoJamプログラム転送

ボタンをカスタマイズして、自分だけの入力デバイスに!(追記、有線マウスの使用を推奨します)


なんと、300円!(税込み330円)


300円で無線USB、一体どんなチップを使っているのでしょう?
Umbrella ダイソーのワイヤレスマウス」チップはTelink社製、ちゃんとしてそう
【100均分解】ダイソーの「324円無線マウス」|ThousanDIY (Masao Yamazaki)|note」部品やチップパタンの露出まで、詳細な分解レポート!
普通にmacOSでもマウスとして使えました!


かんたん分解、ネジがないので、ドライバーすら不要。単4電池2本で動きます。


左ボタン、右ボタン部分にあるマイクロスイッチ、裏面をジャンパー線でくっつけてみると、PC画面でクリックします。(追記、電界強度が微弱無線局の範囲を越えていると電波法違反の恐れアリ)


左クリックの場所に、2箇所はんだづけ。必要に応じて、右クリック、センタークリックもどうぞ。GNDは共通でOK!


マウスの左ボタンを押すという動作 = チップ内部でプルアップされた該当信号がGNDになること = ジャパンパーの2本が接すること


手元のボタンを自由につないでPC用の入力インターフェイスとして使えます!(追記、電界強度が微弱無線局の範囲を越えていると電波法違反の恐れアリ)

操作が難しい場所での入力インターフェイスや、障害者用の専用入力デバイスの自作にも良さそうです。 IchigoJamなどにつないで、プログラムで動かしてみるのもおもしろそう! (追記、電界強度が微弱無線局の範囲を越えていると電波法違反の恐れアリ)

安くて、簡単で、ワクワクする部品が詰まっているなので、分解入門にも最適!
(追記、入力インターフェイスづくりは、有線マウスの改造をオススメします)

追記、技適と電波利用について

DASIOで300円、Bluetoothリモートシャッター。スマホとペアリングして、遠隔でシャッターが操作できます。


裏面に記述されているこのマークと番号(R201-170383)が技適(技術基準適合証明)です。 「201-170383」で、検索すると「第2条第19号に規定する特定無線設備」つまり「2.4GHz帯高度化小電力データ通信システム」として登録されていることがわかります。


質問、疑問点は、お近くの総合通信局(福井の場合は、北陸総合通信局)へお問い合わせください、とのことです。(総務省 電波利用ホームページ|電波監視|技適マーク、無線機の購入・使用に関すること

links
- 総務省 電波利用ホームページ|電波監視|技適マーク、無線機の購入・使用に関すること(技適マーク付き無線機の改造について)
- 技適? 微弱無線? 今さら聞けない電波法規の基礎知識 | Think IT(シンクイット)
- 総務省 電波利用ホームページ | 技術基準適合証明等を受けた機器の検索
- DAISOの300円有線マウスを改造して、かんたん入力マシンを、かんたんに創ろう! + IchigoJamプログラム転送

PCN上田代表、IchigoJaMan、斎藤さん開発の回すIchigoJam互換機、Hand Spinner Jam(ハンドスピナーJam)

ミニ四駆のベアリングを使った、ハンドスピナー型。


回してみました!
書き込み済みのハートマーク、Ichigo、SINカーブの順。


キーボード、モニター、電源をつないで、IchigoJamとしてBASICで書き換え可能な、プログラマブルハンドスピナー。

IchigoJam 1.4 の新コマンド、三角関数SINを使って、お花模様。@ARUNを使って自動起動。

10 @ARUN:VIDEO0:OUT8,0:S=5 20 FOR I=0 TO 360-S STEP S:OUT 1<<((SIN(I)+256)>>6):NEXT:CONT

文字を出してみました!配列か空きメモリに書き込み、ループ!WAITのマイナスパラメータで1/(261*60)秒単位で微調整。

1 @ARUN 2 VIDEO0:OUT8,0 10 S="Ichigo " 20 FOR I=0 TO LEN(S)-1:C=ASC(S+I):FOR J=0 TO 7:N=0:FOR K=0 TO 7:N=N+PEEK(C*8+K)>>(7-J)&1<<K:NEXT:POKE#700+I*8+J,N:NEXT:NEXT 30 N=LEN(S)*8-1 35 W=-5:B=-10 40 FOR I=0 TO N:OUT PEEK(#700+I):WAIT W:OUT0:WAIT B:NEXT:CONT

楽しい!


オリジナル基板づくりが、1000円代からチャレンジできる、いい時代です!
振るパソコンに、回すパソコン、気になる方は、12/31、IchigoJaMan at C97コミケへGO!

links
- コミックマーケット97(12/31)出展情報 - SHIROのIchigoJam日記
- ハンドスピナーJam - SHIROのIchigoJam日記
- 振るパソコン、StickJamで8x8フルカラー2コマアニメーション!

回路図がとってもシンプルでオープンなIchigoJam、いままで様々なIchigoJam互換機が登場しましたが、なんとバーサライタ対応「StickJam」がPCN上田から登場!

IchigoJam BASIC 1.4 の新コマンド、WS.LED を使えば、WS2812Bの制御がとっても簡単。これを活用して、それ自体を振って使うパソコンをゲット!早速、振って楽しむ、2コマアニメーションプログラムを作ってみました!


バーサライタとは、人の目の残像効果を利用して、8つのLEDを動かすことで、マトリクスLEDのように面で見せるテクニック。 特殊なシリアルで制御するフルカラーWS2812Bが、8+1つの搭載されたStickJamを使って、お手軽バーサライタ遊び。

例えば、8つ全部赤く光らせるには

LET[0],0,30,0:WS.LED8

これだけでOK!(緑、赤、青の順に指定しよう)


スティック状のIchigoJam、StickJamの両端にビデオケーブルとキーボードを挿せば、普通のIchigoJamとして開発可能。単三電池3本搭載で、単体動作!

100 S="IJ" 110 LET[8*3],0,30,0:WS.LED9 120 CLS:FORK=0TO1:C=ASC(S+K):FORI=0TO7:FORJ=0TO7:A=#900+(I+8*K)*48+J*6:IF PEEK(C*8+J)>>(7-I)&1 GSB300:POKEA,G,0,R,0,B,0 ELSE POKEA,0,0,0,0,0,0 125 NEXT:NEXT:NEXT 130 N=0:M=0 135 LET[8*3],0,0,0:WS.LED9 140 X=IN(1):Y=IN(4) 150 IF !Y&&V L=0:D=1:GSB200:N=N+1:IF M>4 M=!M:N=0 160 IF !X&&U L=7:D=-1:GSB200 170 IF BTN() F=!F:GOTO 100 180 U=X:V=Y:GOTO140 200 FORI=0TO7:COPY#800,#900+48*(L+I*8)+8*48*8,48:WS.LED8:LET[0],0,0,0:WS.LED1,8:NEXT:RTN 300 IFFRTNELSER=RND(50):G=RND(50):B=RND(50):RTN

変数Sに2文字分設定したキャラクターパターンを、画面内メモリ#900以降に書き込んでおき、配列のメモリ#800にコピーして、WS.LEDコマンドをくりかえしてます。StickJam本体のボタン(BTN)が押されたら、色を変更。1回おきに全部同じ色か、全部ばらばらな色にするかをフラグFで切り替えてます。


第5回こどもプログラミングサミットにて、PCN上田代表、IchigoJaMan、斎藤さんに売ってもらいました!
12/31、コミケC97に出展とのこと!
コミックマーケット97(12/31)出展情報 - SHIROのIchigoJam日記
しまった、SnadaJam、IchigoJaMan Works、買い忘れ!

東京近郊の方、コミケ行ったこと無い方、お昼過ぎに行くと、余裕持って回れます。
電子工作関係も多数出展あって楽しいですよ!
コミケC92、世界最大のマルシェ、作り手と会える幸せ、早速便利なB-ART x IchigoJam

links
- StickJam(バーサライタ用IchigoJam) - SHIROのIchigoJam日記

宝箱を開けた時、頭の中に鳴る、効果音。IchigoJamで作ってみましょう!

開けると輝きと共に、効果音で演出してくれる宝箱


毎年恒例クリスマス忘年会、プレゼントは500円までなので、100均が大活躍!

とりあえず、音を鳴らしてみます。

PLAY"O4T800>C<CT300RRRAA+B<C1

50 T=270 60 PWM2,SIN(T)+256,512:WAIT2:T=(T+8)%360:CONT

宝箱が開いたかどうかは光センサーを使って、ANA(2)でチェック

20 IF ANA(2)<20 WAIT10,0:WAIT10:CONT

これらをまとめたプログラム!

1 @ARUN 5 PWM2,0:PLAY 10 IF ANA(2)>20 WAIT10,0:WAIT10:CONT 20 IF ANA(2)<20 WAIT10,0:WAIT10:CONT 30 WAIT 5:IF ANA(2)<20 GOTO20 40 PLAY"O4T800>C<CT300RRRAA+B<C1 50 T=270 60 PWM2,SIN(T)+256,512:WAIT2:T=(T+8)%360 70 IF ANA(2)>20 GOTO60 80 RUN


IchigoJamでうまくいったので、コンパクトに!


はんだづけ!


動いた!


箱に詰めて、できあがり!


本日、起業家甲子園に向け、福井高専にて講演&メンタリング!


借りてきた模型と共に、研究開発・プランづくりが進んでいます。

待っていてもやってこない、日々広がる、いろんな技術。
ピンと来たものから、友達誘って一緒にはじめてみましょう!

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS