create every day - 福野泰介の一日一創

IchigoJamご要望数ナンバーワン!プログラム領域拡大版、お試し公開

2017/06/22 23:55:00
#IchigoJam #lpc1114 

IchigoJam-FANにて、IchigoJamの拡張版にほしいものを大募集した結果、たくさんのご要望いただきました!

1. プログラム領域拡大 112票
2. HDMI 69票
3. USBキーボード(HIDサポート) 69票
4. カラー化 30票
5. キーボードUS/JP切替 29票
6. 浮動小数点 25票
7. 長い変数名 17票
8. グラフィック描画機能 16票
9. バッテリーバックアップの時計 15票
10. ネットワーク 15票
*アンケートよりトップ10を抜粋、複数回答あり

断トツナンバーワンだった、プログラム領域拡大。
ちょっといいCPU「NXP LPC1114FHN33/333」を使って作ってみました。

IchigoJam 1.3beta!?(仮称)

プログラムサイズ拡大:1KB → 4KB
配列サイズ拡大:102 → 614

いつものIchigoJamへのバージョンアップはできません。
ROMが56KB以上、RAMが8KB以上のLPC1114またはLPC1115へ書き込んで使ってみてください。
LPC11Uシリーズは、GPIOの扱いなどに互換性がなく未対応です。

links
- IchigoJam-FAN (ファイルからβ版ファームウェアダウンロード可能)
- LPC1115評価ボード (未確認ですがきっと動くはず)

最強のIchigoJamを探せ!CPUの固有IDで戦う「イチゴバトラー」 IchigoDake発売! - IchigoBattler by UID of CPU, IchigoDake released!

2017/06/07 23:55:00
#IchigoJam #KidsIT #game 

IchigoJamで使っているCPU、LPC1114には固有の128bitのIDが振ってあります。マシン語を使って、そのIDを読み出して、懐かしのバーコードバトラー風に戦わせてみましょう!
Play on the IchigoBattler using UID of IchigoJam's CPU LPC1114.

固有IDの取得方法 - How to get UID of CPU

100 POKE#700,128,181,140,176,0,175,248,96,185,96,122,96,59,96,20,35,251,24,58,34,26,96,251,104,186,104,211,24,251,98,7,75,187,98,249,106,20,35,250,24,187,106,16,0,152,71,251,106 110 POKE#730,4,51,27,104,24,0,189,70,12,176,128,189,241,31,255,31 120 Y=USR(#700,#800) 130 FOR I=9 TO 2 STEP-1:?HEX$([I],4);:NEXT:? RUN F50000035485EA695334000012121246

イチゴバトラーにするための続き - Additional program of IchigoBattler

130 ?"YOU ID ";Y 140 INPUT"INPUT ENE ID?",E 150 H=Y/100:A=Y%10+5 160 P=E/100:B=E%10+5 170 IF A>B GOTO 200 180 ?"HP:";H;" ENE:";P:WAIT60 185 IF P<=0 ?"YOU WON!":END 190 D=RND(B):H=H-D:?"ENE ATTACK ";D:BEEP10:WAIT60 200 ?"HP:";H;" ENE:";P:WAIT60 205 IF H<=0 ?"YOU LOST...":END 210 D=RND(A):P=P-D:?"YOU ATTACK ";D:BEEP5:WAIT60 220 GOTO 180

プログラムをいろいろいじってみよう! Let's Hack!


最強のIchigoJamを探せ! - Find a strongest IchigoJam!


早速ゲットした新IchigoDake! - Latest IchigoDake! (IchigoJam version)


IchigoDake parts (IchigoLatte version)


IchigoDake Set (IchigoJam version)


IchigoDake IchigoLatte version works!

links
- IchigoDake
- IchigoJam (IchigoJam BASIC version)
- IchigoLatte (JavaScript version)

What's IchigoJam? Thanks for coming to PCN booth at Maker Faire Bay Area

2017/05/20 23:55:00
#makerfairebayarea #IchigoJam #KidsIT 

Programming Club Network (PCN) our mission is programming for every kids in the world.

What's this?
IchigoJam is $15 computer to learn programming for kids. It's inexpensive, very simple architecture, circuit as simple as kids can build on the breadboard.

Like Raspberry Pi?
Yes but simpler. You don't need to install OS. It boots a second and any time you can shutdown.

Like Arduino?
Yes but you don't need another PC. IchigoJam is self development PC. You have to prepare a TV, a keyboard(PS/2) and a micro USB.

Like Comodore 64 / Apple-I/II?
Yes! You and your kids can enjoy computing! And you can control Inputs and Outputs very easilly!

LED 1 OK LED 0 OK 10 LED1:WAIT30 20 LED0:WAIT30 30 GOTO10 RUN

Why BASIC?
BASIC is simple and powerful computer language. Young kids can read easilly with all short commands are written by upper cases. Line numbers helps understanding what program is and how program works in computers. BASIC has 50 years history and many fans and mini experts can teach to kids!

Why IchigoJam?
Ichigo means strawberry in Japanese. Also "Ichi" is "One", "Go" is "Five" in Japanese. So $15 computer like Raspberry Pi.

What's CPU?
Just $1 CPU, 32bit ARM Cortex-M0 "LPC1114" by NXP. But it can calculate 50,000,000 times a second! It has 4K RAM and 32K Flash ROM. The size of IchigoJam OS is less than 24KB. You can save 4 1KB programs in BASIC on it.

What do I prepare to start?
A PS/2 keyboard, a TV (as a monitor with composit terminal) and a microUSB.

Where can I buy?
At PCN online shop. "PRODUCTS | PCN Programming club network"


Thank you for visiting PCN booth!


This demo program in BASIC makes big fun to kids!













Welcome to PCN booth! (Zone #2 at #makerfairebayarea )

links
- PCN - Programming Club Network in English
- IchigoJam - official in English
- IchigoJam - BEST IN CLASS at Maker Faire Bay Area 2017 / メイカーフェアでベストインクラス受賞!

IchigoJam Zero the World's Lightest PC 0g 150yen for IchigoJam Things!

2017/04/01 00:00:00
#IchigoJam #IoT #maker #english 

重さ0g、150円の世界最軽量、最安値のパソコン「IchigoJam Zero」と「IchigoJam Things」をリリース!
I released the world's lightest 0g/150yen PC "IchigoJam Zero" and "IchigoJam Things"!

Finger Size! 指の上サイズ! (photo human ver.)


Weight: 0g (IchigoJam Zero) / 9g (Raspberry Pi Zero)


IchigoJam ZeroRaspberry Pi Zero
CPUNXP LPC1114 @ 48MHzARM1176JZF-S @ 1GHz
RAM4KB512MB
UART115,200bps (default)115,200bps (default)
I2Cx1x2
GPIOx11x22
Video outputNTSC composit
(needs 2 registers 470/100)
HDMI / NTSC composit
(needs 2 wires)
KeyboardPS/2 keyboard
(needs 2 wires)
USB keyboard
Storageinternal Flashneeds a SD card
OSIchigoJam BASIC
IchigoLatte JavaScript
(needs download & install)
Raspbian etc...
(needs download & install)
Price$1.5$5
Weight0g9g
Size11.8mm x 7.2mm67.6mm × 30mm
Power Consumption0.05W0.5W-0.7W


IchigoJam Things is a break out board for IchigoJam Zero!


Now available on Upverter! "IchigoJam Things / RPi by taisukef f9de7f39761699b0 - Upverter"
IchigoJam Zero を使うブレイクアウトボード「IchigoJam Things」のガーバーデータがダウンロード可能です!


IchigoJam Zero on IchigoDake & IchigoIgai by PCN


IchigoDake makes IchigoJam everywhere!


Enjoy making everythings! ものづくりをたのしもう!

links
- 「若年層に対するプログラミング教育の普及推進」事業にIchigoJam採用!
- 2017.4.1 IchigoDake / IchigoIgai | PCN プログラミング クラブ ネットワーク
- 2016.4.1 MSXになりたい「こどもパソコンIchigoJam」あの起動ロゴを搭載!(boot logo)
- 2015.4.1 創る人を創ろう! Pepper より安価な こどもロボットPaprika 発表!(Kids Robot paprika)
- 2014.4.1 目指すはMSX! Raspberry Pi より安価な IchigoJam 発表!(Kids PC IchigoJam)
- 2013.4.1 jig megane-0 かけられる大容量バッテリー(glasses)

電池ケースと組み込みIchigoJamでつくるイチゴトーン、こどもプロコン2016の冬!

2016/12/25 23:55:00
#IchigoJam #music #maker 

レッツ組み込み開発!
IchigoJamでつくった1ボタン楽器、イチゴトーンを、電池ケースに組み込んでおもちゃにしてみます。


材料は、単3x4本のスイッチ付き電池ケース、IchigoJamのCPU「LPC1114FN28」、ボタン(タクトスイッチ)、スピーカー、抵抗と線材少々。


BTN端子をVCCにつなぐ1MΩの抵抗(プルアップ抵抗)と、左右のVCCをつないでおきます。クリスタルは無くても平気。 プログラムを後で書き換えるなら、ピンソケットなどを付けておくと便利です。


電池ケースの半分のスペースを使います。ハンドドリルでボタンとスピーカー用の穴を開けて、中でCPUや電源を配線。


なかなかすっきりした見た目。おもちゃとしてはちょっと飾りっ気がないかも。


大きめボタンは子供にもわかりやすい!

CPUをLPC1114FDH28を使ったり、電源にボタン電池を使うともっと小さくできます。
逆に、大きなおもちゃなら、電源をコンセントから取ってIchigoJamをそのまま使って、ジャンパー線で配線すれば、はんだづけなしの簡単な工作でつくれるので、子供でも簡単にチャレンジできます!

こちら、こどもプロコン2016夏の受賞作品、じゃんけんゲームマシンIchigoJam Advent Calendar 2016より)

PCNこどもプロコン2016夏より)

欲しいおもちゃは作っちゃおう!
楽しいものができたら「PCNこどもプロコン2016冬」へ送ってくださいー

IchigoJam event in Silicon Valley! After 40 years from Apple-I

2016/10/30 23:55:00
#IchigoJam #KidsIT #english 

40 years ago, the world first personal computer Apple-I borned in Silicon Valley.
Apple-I starts computers for everyone including kids!
When I'm 8 years, I met dreamy machine, MSX a descendant of that.

I invented the $15 simplest personal computer "IchigoJam" for all kids.
Ichigo is a strawberry and 15(Ichi Go) in Japanese.

3 Nov, we are holding a BASIC programming workshop for kids using IchigoJam:
First BASIC Programming on IchigoJam for Kids - PCN Silicon Valley | Meetup


Let's start programming at a young age!
There are many computers in our lives.
If you can program, you get a great power!


These IchigoJam works are made by kids
(from PCN Kids Programming Contest 2016 Summer)


IchigoJam is the simplest computer such as Apple-I.
It has RAM4KB, ROM32KB, BASIC interpreter, Video output, Keyboard input.


IchigoJam can build your self about less than 1 hour by the first solder.
"Let's Start Programming! How to build an IchigoJam, your first computer"

After building, let's start programming in BASIC

IchigoJam BASIC ver 1.2.1 by jig.jp OK LED1 OK LED0 OK LED1:WAIT30:LED0 OK

"Let's make Game! My first programming by IchigoJam"

This is the first ever event in the Silicon Valley being held by the PCN<Programming Club Network> 3 members from Fukui, Japan. Also, one of the organizers is a UC Berkeley Computer Science graduate working in Palo Alto.

Apple I - IchigoJam

Apple IIchigoJam
CPUMOS 6502 @ 1MHzNXP LPC1114 @ 48MHz
RAM4KB4KB
Programming LanguageBASICBASIC
Graphics40x24 Text32x24 Text
Video outputNTSC compositNTSC composit
Keyboardexternal keyboardPS/2 keyboard
Storageexternal casette tapeFlash x 4 / external EEPROM
Price$666.66$15 (¥1,500)
Birth1976.4.112014.4.1
Apple I - Wikipedia


("Framed Apple I Computer Aluminium schematic" of Apple-I" signed by Woz and me)

Event Details
Date/Time: 3 Nov (Thursday) 7pm-9pm
Location: 2900 Lakeside Drive, Suite 270, Santa Clara, CA
Participants: any kids between 6-15 are welcome! Parents can watch or wait in the lobby.

What to bring? Nothing needed!
Please gather in the lobby by 7pm.

First BASIC Programming on IchigoJam for Kids - PCN Silicon Valley | Meetup

Connect kids all over the world! Kobe x Africa x Fukui / schematic of IchigoJam

2016/10/17 23:55:00
#IchigoJam #opendata #kobe #fukui #africa #english 

I got great meetings at "Business Seminar in Africa #2" in Kobe.
Thanks a lot to foreign students from Africa!

jig.jp business: development and providing the software service mainly for mobile
product: IchigoJam, the inexpensive personal computer to learn programming for kids and everyone!
comment to students: Let's discuss to create young creators!


photo) Koko, Didier, Hisamoto-san, me
Weth Kobe city mayer, Mr. Kizo Hisamoto, I had discussion at Kobe IT Festival 2014 about "opendata".
Kobe city is very closed to Africa, Rwanda. [link]
I met Koko at Sabae, and his friends Didier from Côte d'Ivoire! [link]


"African dreams come Kansai!"


communication time with foreign students


I talked over 20 students deeply. I'm glad to enjoy computing with IchigoJam!
IchigoJam is very easy to understand how computer works with BASIC programming.

LED1 OK LED0 OK WAIT120 OK LED1:WAIT60:LED0 OK 10 LED1:WAIT30 20 LED0:WAIT30 30 GOTO10 RUN

*"OK" is reply message from IchigoJam [link: How to create a game]
Let's control $1 32bit ARM CPU LPC1114, can calculate 50 million times a second!

Also IchigoJam's electronic circuit is very simple! [link: How to build an IchigoJam]

schematic of IchigoJam on "Upverter" online PCB CAD service

IchigoJam' spec is similar with Apple I born in 1976.
They have a 32x24 monochrome text TV screen, a keyboard and with BASIC!

"Framed Apple I Computer Aluminum Schematic" with Woz sign!!


photo) me, Muḥammad from Mauritania, Hara ict4 and PCN member at Fukui
I met Muhammad at Sabae too!
Hara go Tanzania Africa, almost every year!

Web and computer broke any borders.
If kids all over the world get own connected computer, they can create anything.
I want to guide them to the entrance with IchigoJam.

楽しく制するマシン語、ARMマシン語学習用VM on JavaScript

2016/09/27 23:55:00
#js #ARM #avm 

イマドキのBASICとしてIchigoJamが紹介サれている今月の「日経ソフトウェア」で見かけたマシン語の話題。 ドラゴンクエストのゲームデザイナー、堀井雄二氏はNEC PC-6001のBASICでプログラムを始め、速度を求めてZ80マシン語へ。ハンドアセンブルでマシン語プログラムを作ったそう。 「矢沢久雄のソフトウェアの基礎Q&A」では、基本情報技術者試験で使われる仮想マシン語CASLIIのススメ。 Z80ハンドアセンブルした小学生時代、CASLIIがJavaVMと似てると思った高専生時代が懐かしい。

私の一押しは、32bit CPU、ARM Cortex-M0のマシン語。IchigoJamで使っているLPC1114で使え、コンパクトで強力かつ、iPhoneなどスマホでも動きます。 (でも、本気で動かすなら64bit対応のARM64マシン語!)


連載、ARMマシン語入門と合わせて使えるシミュレーター「avm」をつくってみました。フラグなどがいい加減で、まだ表示がないので、連載その2までの対応です。

サンプルのマシン語プログラムは、10から1までをループしながら足し算するプログラム。たかだか100円ちょっとのCPUですが、54サイクル、1.12μ秒(約100万分の1秒)で計算するパワーをフルに使い切る感こそ、マシン語の醍醐味!

JavaScriptでつくったシンプルなバーチャルマシン(VM)「avm」、どうぞいろいろ改造してお使いください!
IchigoJamで学ぶARMマシン語入門」と合わせてどうぞ!

福井産極小OS「IchigoLatte」フリーエリアにEEPROM実装

2016/09/11 23:55:00
#KidsIT #IchigoLatte #lpc1114 

松田さん(PCN代表)開発、RAM4KBのコンピューター、LPC1114で動く極小JavaScriptエンジン搭載OS「IchigoLatte」が、いよいよ製品版に向けたベータ版完成とのこと。 IchigoJam Tと同様、小さなコンピューターFDH28に替わって空いたスペースに搭載された、ユニバーサル基板パターン「Latteキャンバス」が特徴!


IchigoJam同様、1MbitのEEPROMを外部保存として使えるので、くっつけてみます。


接続回路を元に、どうつなげて、はんだづけするかあれこれ考えるパズルっぽさが楽しい。


I2C用のプルアップは2.4kΩ、SCL、SDAのピン配置からこのようなつくりにしてみました。ちょっと面倒な被覆ジャンパーは1本に抑えられました。


無事、起動!コンソールの ls コマンドで一覧が取得できます。


サンプルで動かしたのは古籏一浩さんの「IchigoLatteを楽しもう」より「ラスタースクロールもどき」改(sin32→sin8)


emerge+さんの「アクリルケース for IchigoJam T」にも似合います(ボタン用パーツはつけていません)


アクリルケースの保護シートは、しばらく水につけておくとするするとはがれます!


コンピューターを操るための言葉、プログラミング言語は、時々刻々と進化します。 IchigoJamで入門言語BASICを学んだあとは、ちょっと大人なOS「IchigoLatte」でJavaScript入門もオススメです!
(回路とコンピューターは共通なので、OSを入れ替えればIchigoJam←→IchigoLatte、両方使えます)

BASICにJavaScriptに使いこなせるようなところを見せつけて、本格的なパソコンをゲットしよう!

Lenovo Japan留目社長Hana道場で未来談義。9/12はいよいよ「鯖江市地域活性化プランコンテスト」公開プレゼンテーション。 留目さんとは審査員でもご一緒します!ITのまち鯖江、次の一歩につながるプランは登場なるか!?(photo by Miki Takebe

会場は鯖江市誠照寺USTアリ、13時からスタート

参考リンク
- JavaScriptで電子工作!フリーな工作エリア「Latteキャンバス」を設けた製品版IchigoL... - about yrm
- IchigoLatte

掛け算もインクリメントも1クロック、BASICでカジュアルに使うインラインマシン語とツール紹介 - IchigoJamではじめるARMマシン語その7

2016/08/16 23:55:00
#IchigoJam #ARM 

じっくり取り組むマシン語も楽しいですが、手軽で便利なマシン語ならではの技を紹介します。

CPUには足し算、引き算、メモリアクセスなど基本的な機能の他に、CPUによってそれぞれ固有な機能があります。現代のパソコンやスマホに使われる高性能なCPUには、3Dグラフィックスや、音声、映像などの処理の高速化のために、4つの計算を同時に行うなどのSIMD命令が含まれます。ほとんどのスマホで使われているARMアーキテクチャー、Cortex-AにはNEONというSIMD機能が搭載されています。

電源が限られるモバイルにおいて、いかに無駄な電力消費を抑えつつ、サクサク軽快なアプリを提供するかが重要です。C、JavaScript、Swiftでは、CPU固有の機能を表現する方法がないので、マシン語を使って、コンピューターの性能をフルに引き出しましょう。誰かがつくった機能(ライブラリ)を使わせてもらうのもいいですが、自分でも作ってみたくもなるでしょう。(参考「iPhoneでのピクセル処理をNEON(ベクタ演算)を使って4倍高速化する」)

IchigoJamが使っている低電力CPU、LPC1114は、ARM Cortex-M0という、Cortex-Aと命令に互換性があるサブセット(一部)です。SIMD命令はありませんが、BASICやCでは扱えない特別な演算があるので、今回はそれらをカジュアルに使います。

Cortex-M0 マシン語表(抜粋)」に、特殊演算を追記しました。

※bic:ビットクリア、asr:符号付き右シフト、ror:右ローテート
※rev:byteオーダー反転、rev16:byteオーダー反転(2byteずつ)、revSH:符号付き16bitを反転32bit化
※abc:キャリー付き足し算、sbc:キャリー付き引き算

IchigoJam BASICには当てはまる演算子がないために、関数のような書き方にしていますが、これらの計算はすべて、通常の計算と同様、1サイクルで処理できます。IchigoJamの場合、48MHzで動作させているので1サイクルは約20ナノ秒で計算は終了します(iPhone6sは最大1.84GHzなので約40倍高速な0.1nsec)。

bic:指定したビット位置のみをクリアする。普通に書くと Rd = Rd & ~Rm と、2回の演算が必要。
ror:指定した数だけ右にビットシフトして、はみ出た分は上位ビットにセットする。
rev16:16bitの上位8bitと下位8bitを入れ替える(上位32bitも同様に)

I2Cで外部センサーから取得したビッグエンディアン(=最初に上位8bitがある)なデータの読み取りに便利そうな rev16 を実際使ってみます。

[0]=`1011101001 000 000 'R0=rev16(R0) [1]=#4770 ?USR(#800,1) 256 ?HEX$(USR(#800,#3412)) 1234

#4770は呼び出し元に戻るRETURNのマシン語です。(Z80でいう#C9)
同じコードをIchigoJam BASICで書くと、下記のように少し長くなるので、繰り返し使う場合に有利です。

N=#3412 ?N<<8&#FF00+N>>8

マシン語をいれておくメモリとして、PCG領域を借りて、下記のように書くこともできます。このように、別のプログラムでいろいろな便利な関数を用意しておき、メインのプログラムを呼び出すとメモリを有効に使えます。

10 POKE#700,#40,#BA,#70,#47:P=#700 20 ?HEX$(USR(P,#CDAB));HEX$(USR(P,#3412))

Cortex-M0 マシン語表(抜粋)」にサイクル数を追加しました。ほとんどの命令が1サイクルで終了することが分かります(LPC1114は掛け算も1クロック)。実行時間が正確に計算できるのもマシン語のいいところです!

ハンドアセンブルでコツをつかんだら、アドレス計算も自動でやってくれるARMアセンブラ搭載、Mac/Windows/Linux対応IchigoJam用ツール「IJUtilities」が便利です。C言語からIchigoJam BASIC用のコードを生成する「rohiniku/IchigoJam_bin2poke」の逆アセンブル機能を使った解析も勉強に便利!

ARMマシン語は、スマホでもそのまま活かせる究極の高速化テクニック。自分の書いたコードが実際どういうマシン語になるかだいたい想像できる程度には押さえておきましょう。

C言語やJavaScriptでお馴染みの「i++」という iに1足す演算子が、Swift3ではなくなってしまいます。MSXでZ80マシン語で1足す命令(INC)や1引く命令(DEC)を知っていたため、ごく自然に受け入れて今でもよく使っているだけにさみしいものがあります。Z80では1足す専用の命令、INCを使えば足し算命令ADDよりサイズが節約できました(機械語の手帳 ステート数表)。ただ、近年使われるよくARMは、1足すのも2足すのも255足すのも、速度もサイズも一緒。演算子削減の一因かもしれません。

ゲーム、スマホ、ロボット、クラウド、IoT、AIなど、奥深いプログラミングの世界も第一歩から!
福井新聞主催、PCN共催「福井県小中学生プログラミング・フェス2016」参加者募集中!

- 連載、IchigoJamではじめる、ARMマシン語入門
1. はじめてのマシン語
2. ハンドアセンブルで超速計算!
3. マシン語メモリアクセスで画面超速表示!
4. マシン語でLEDを光らせよう!
5. 楽しさ広がるマルチバイトメモリアクセスとスタック
6. マシン語使いこなしTIPS
7. カジュアルに使うインラインマシン語

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image