今回から、IchigoJamと同じ基板でJavaScriptが動く、IchigoLatteについて説明していきます。
なお、29回にわたって掲載される内容は、以下の電子書籍と基本的に同じで、アマゾンまたはデジコンカートにて購入することができます。デジコンカートの方は、サンプルプログラムもセットでダウンロードできます。
・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP/
http://digiconcart.com/dccartstore/cart/info/2561/218591
IchigoLatteの公式サイトは以下のURLになります。現在の最新版はver 1.1.6です。
・IchigoLatte
http://ichigolatte.shizentai.jp/
なお、29回にわたって掲載される内容は、以下の電子書籍と基本的に同じで、アマゾンまたはデジコンカートにて購入することができます。デジコンカートの方は、サンプルプログラムもセットでダウンロードできます。
・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP/
http://digiconcart.com/dccartstore/cart/info/2561/218591
IchigoLatteの公式サイトは以下のURLになります。現在の最新版はver 1.1.6です。
・IchigoLatte
http://ichigolatte.shizentai.jp/
IchigoLatteを動かすにあたって必要なハードウェア/機材は、以下の通りです。なお、CPUとメインボードが分離しているIchigoDake & IchigoIgaiというのもありますが、機能は同じなので問題ありません。
・Video端子があるテレビ(もしくはモニタ)
・USBキーボード(PS/2対応のもの)
・Micro USB電源(Android端末で使用できるもの)
・IchigoLatte(組み立て済み完成品)
https://hello002.stores.jp/items/58817272c3b8dfeae2005f85
パソコンと接続する場合は以下の機材も必要になります。
・USBケーブル(オス-メス)
・USB接続モジュール
https://15jamrecipe.jimdo.com/周辺機器/パソコンと接続
豪華なサウンドとカラーグラフィックを表示する場合は、以下の機材も必要になります。カラフルなゲームを作成する場合には必要かもしれません。
・PanCake(組み立て済み完成品)
https://hello002.stores.jp/items/562447672b3492371900de81
また、センサーを利用する場合は以下の機材も必要になります。
・FaBo(IchigoJamシールド)
http://fabo.io/503.html
・FaBo(光センサー)
http://fabo.io/109.html
・FaBo(温度計)
http://fabo.io/207.html
・FaBo(I2C拡張ボード)
http://fabo.io/701.html
ネットワークを利用してサーバーにデータを転送する場合は、以下の機材も必要になります。
・MixJuice(組み立て済み完成品)
https://hello002.stores.jp/items/57158ddc9821ccac9300058b
また、EEPROMにデータを保存したり、複数のプログラムを保存する場合は、対応するEEPROMが必要になります。どのようなEEPROMを選択すればよいかは、以下のページを参考にしてください。
・イチゴジャムレシピ(外部記憶装置 EEPROM)
https://15jamrecipe.jimdo.com/周辺機器/外部記憶装置-eeprom/
IchigoLatteは、特に開発環境をパソコンにインストールしたりする必要はありません。IchigoLatte基板内にすべて収められています。IchigoLatteとキーボード、テレビを接続すれば、すぐにでも開発が可能です。
パソコンと接続することもできますが、その場合ターミナルアプリが必要になります。特にパソコンはなくても開発できます。
使用している命令などは以下のとおりです。
●計算記号など
+ 加算・足し算
- 引き算・減算
* 掛け算・乗算
/ 割り算・除算
% 割り算の余り(商)・剰余
& 論理積(AND)
<< 左にビットをずらす(ビットシフト)
●命令
var 変数名
var 変数名1,変数名2,...,変数名N
var 変数名=値;
使用する変数を宣言します。宣言は , で区切ってまとめて行うことができます。宣言と同時に変数に値を入れることもできます。なお、IchigoLatteのvarは、一般的なJavaScriptのvarとは違いletと同じ働きをします。
・while(式){ 繰り返す内容 }
式が真(true)の場合に処理を繰り返します。複数の処理を書く場合は{と}で囲みます。IchigoLatteにはtrueのキーワードがありません。IchigoLatteでは真は0以外、偽は0になります。
・function 関数名(パラメーター1,,,パラメーターN){ 処理する内容 }
関数を定義します。パラメーターはすべて省略することができます。また、関数名を省略すると無名関数になります。
・return 値
関数ならの戻り値を指定します。
・if(式){ 条件を満たした時に処理する内容 }
・if(式){ 条件を満たした時に処理する内容 }else{ 条件を満たさなかった時に処理する内容 }
式が真(true)の場合に、以後に続く処理を行います。複数の処理を書く場合は { と } で囲みます。elseは条件が偽(false)の場合に、以後に続く処理を行います。
●メソッド(機能)
led(値)
IchigoLatte基板上にあるLEDを制御します。1を指定すると点灯、0を指定すると消灯になります。
sleep(ミリ秒)
指定した時間だけ、次の処理を行うのを待ちます。sleep(1000)とすると1秒の待ちになります。より低消費電力なDeep sleepもできます。
inkey( )
リアルタイムに押されたキーのコードを返します。キーが押されていない場合は0を返します。
input( )
ユーザーからの数値入力を行います。32ビット範囲の10進数のみで数値を入力後に、リターンキーを押すことで確定になります。
exit(値)
プログラムを終了させます。値も指定できますが、特に何も反映されることはありません。
log(値1,...,値N)
指定した値や文字列などを出力します。通常は画面に表示されますが、シェルで出力先がシリアル(UART)などになっている場合はシリアルに出力されます。
setTout(関数名,ミリ秒)
指定した関数を指定したミリ秒以後に呼び出します。一般的なWebでのJavaScriptのsetTimeout()に該当します。
setKprs(関数名)
キーが押されたら指定した関数を呼び出します。(イベントハンドラ)
gpin(入力ポート)
指定した入力ポートのデジタル値(0か1)を返します。
ana(入力ポート)
指定した入力ポートのアナログ値(0〜1023)を返します。
pwm(出力ポート)
指定した出力ポートにパルス信号を出力します。
out(出力ポート)
指定した出力ポートにデジタル値(0か1)を出力します。
lrun(番号)
EEPROM上にあるプログラムを呼び出します。1MBitのEEPROMを接続している場合、0〜63までの番号になります。
env(値)
env( )
他のプログラムと値の受け渡しをします。
値を指定した場合、他のプログラムに32ビットの値を1つだけ渡します。
値を指定しない場合、渡された値を返します。
i2cr(I2Cアドレス,変数名,...)
指定したI2Cアドレスの値を読み出し変数に入れます。受け渡す数だけ変数名を指定できます。
i2cw(I2Cアドレス,値1,...,値N)
指定したI2Cアドレスに値を出力します。
uart(値1,...,値N)
uart()
シリアル(UART)との送受信を行います。
値を指定した場合はシリアルに出力されます。値を指定しない場合はシリアルからの入力値(0〜255の1バイト単位)になります。入力値が-1の場合はデータが送信されてきていないことを示します。
lc(X座標, Y座標)
画面上のカーソル座標を指定します。X座標は0〜31,Y座標は0〜23になります。
scr(X座標, Y座標)
画面上に表示されている文字のコード(0〜255)を返します。
chr(文字コード)
指定された文字コードの文字を返します。log()と組み合わせることで任意の文字を画面に表示できます。
mem("f")
mem(アドレス,値1,...,値N)
mem("f")とした場合、フォントデータが格納されているメモリアドレスを返します。アドレスと値を指定した場合は、指定したアドレスから値を書き込みます。
scroll(方向,フラグ)
画面を指定した方向にスクロール(画面全体を移動)させます。方向は以下のようになっています。
0:上にスクロール
1:右にスクロール
2:下にスクロール
3:左にスクロール
フラグは省略可能です。フラグに1を指定した場合、画面端の文字は反対側に表示されます。
【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/
50代の独身男性が母親の介護をするという「日経ビジネスオンライン」で連載されていたものが一冊の本になったので購入しました(先週まで編集者が番外編を書いて連載してた)。
宇宙関係の記事を書いていたのに、そっちでは大ヒットせず、予想外のネタでヒットしてしまうという、人生何があるか分からない状態ですが、男性は読んでおくと役に立つんじゃないかと思います。
・母さん、ごめん。50代独身男の介護奮闘記
https://www.amazon.co.jp/dp/4822259455/
・InDesign CS6 JavaScript Reference
http://www.openspc2.org/reibun/InDesignCS6/ref/
・Photoshop CS6 JavaScript Reference
http://www.openspc2.org/reibun/PhotoshopCS6/ref/
・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936
[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/
・After Effects自動化サンプルプログラム 上巻、下巻
https://www.amazon.co.jp/dp/4844397591
https://www.amazon.co.jp/dp/4844397605
・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP
http://digiconcart.com/dccartstore/cart/info/2561/218591
・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/
・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/
・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/
・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/
・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/
・Video端子があるテレビ(もしくはモニタ)
・USBキーボード(PS/2対応のもの)
・Micro USB電源(Android端末で使用できるもの)
・IchigoLatte(組み立て済み完成品)
https://hello002.stores.jp/items/58817272c3b8dfeae2005f85
パソコンと接続する場合は以下の機材も必要になります。
・USBケーブル(オス-メス)
・USB接続モジュール
https://15jamrecipe.jimdo.com/周辺機器/パソコンと接続
豪華なサウンドとカラーグラフィックを表示する場合は、以下の機材も必要になります。カラフルなゲームを作成する場合には必要かもしれません。
・PanCake(組み立て済み完成品)
https://hello002.stores.jp/items/562447672b3492371900de81
また、センサーを利用する場合は以下の機材も必要になります。
・FaBo(IchigoJamシールド)
http://fabo.io/503.html
・FaBo(光センサー)
http://fabo.io/109.html
・FaBo(温度計)
http://fabo.io/207.html
・FaBo(I2C拡張ボード)
http://fabo.io/701.html
ネットワークを利用してサーバーにデータを転送する場合は、以下の機材も必要になります。
・MixJuice(組み立て済み完成品)
https://hello002.stores.jp/items/57158ddc9821ccac9300058b
また、EEPROMにデータを保存したり、複数のプログラムを保存する場合は、対応するEEPROMが必要になります。どのようなEEPROMを選択すればよいかは、以下のページを参考にしてください。
・イチゴジャムレシピ(外部記憶装置 EEPROM)
https://15jamrecipe.jimdo.com/周辺機器/外部記憶装置-eeprom/
IchigoLatteは、特に開発環境をパソコンにインストールしたりする必要はありません。IchigoLatte基板内にすべて収められています。IchigoLatteとキーボード、テレビを接続すれば、すぐにでも開発が可能です。
パソコンと接続することもできますが、その場合ターミナルアプリが必要になります。特にパソコンはなくても開発できます。
使用している命令などは以下のとおりです。
●計算記号など
+ 加算・足し算
- 引き算・減算
* 掛け算・乗算
/ 割り算・除算
% 割り算の余り(商)・剰余
& 論理積(AND)
<< 左にビットをずらす(ビットシフト)
●命令
var 変数名
var 変数名1,変数名2,...,変数名N
var 変数名=値;
使用する変数を宣言します。宣言は , で区切ってまとめて行うことができます。宣言と同時に変数に値を入れることもできます。なお、IchigoLatteのvarは、一般的なJavaScriptのvarとは違いletと同じ働きをします。
・while(式){ 繰り返す内容 }
式が真(true)の場合に処理を繰り返します。複数の処理を書く場合は{と}で囲みます。IchigoLatteにはtrueのキーワードがありません。IchigoLatteでは真は0以外、偽は0になります。
・function 関数名(パラメーター1,,,パラメーターN){ 処理する内容 }
関数を定義します。パラメーターはすべて省略することができます。また、関数名を省略すると無名関数になります。
・return 値
関数ならの戻り値を指定します。
・if(式){ 条件を満たした時に処理する内容 }
・if(式){ 条件を満たした時に処理する内容 }else{ 条件を満たさなかった時に処理する内容 }
式が真(true)の場合に、以後に続く処理を行います。複数の処理を書く場合は { と } で囲みます。elseは条件が偽(false)の場合に、以後に続く処理を行います。
●メソッド(機能)
led(値)
IchigoLatte基板上にあるLEDを制御します。1を指定すると点灯、0を指定すると消灯になります。
sleep(ミリ秒)
指定した時間だけ、次の処理を行うのを待ちます。sleep(1000)とすると1秒の待ちになります。より低消費電力なDeep sleepもできます。
inkey( )
リアルタイムに押されたキーのコードを返します。キーが押されていない場合は0を返します。
input( )
ユーザーからの数値入力を行います。32ビット範囲の10進数のみで数値を入力後に、リターンキーを押すことで確定になります。
exit(値)
プログラムを終了させます。値も指定できますが、特に何も反映されることはありません。
log(値1,...,値N)
指定した値や文字列などを出力します。通常は画面に表示されますが、シェルで出力先がシリアル(UART)などになっている場合はシリアルに出力されます。
setTout(関数名,ミリ秒)
指定した関数を指定したミリ秒以後に呼び出します。一般的なWebでのJavaScriptのsetTimeout()に該当します。
setKprs(関数名)
キーが押されたら指定した関数を呼び出します。(イベントハンドラ)
gpin(入力ポート)
指定した入力ポートのデジタル値(0か1)を返します。
ana(入力ポート)
指定した入力ポートのアナログ値(0〜1023)を返します。
pwm(出力ポート)
指定した出力ポートにパルス信号を出力します。
out(出力ポート)
指定した出力ポートにデジタル値(0か1)を出力します。
lrun(番号)
EEPROM上にあるプログラムを呼び出します。1MBitのEEPROMを接続している場合、0〜63までの番号になります。
env(値)
env( )
他のプログラムと値の受け渡しをします。
値を指定した場合、他のプログラムに32ビットの値を1つだけ渡します。
値を指定しない場合、渡された値を返します。
i2cr(I2Cアドレス,変数名,...)
指定したI2Cアドレスの値を読み出し変数に入れます。受け渡す数だけ変数名を指定できます。
i2cw(I2Cアドレス,値1,...,値N)
指定したI2Cアドレスに値を出力します。
uart(値1,...,値N)
uart()
シリアル(UART)との送受信を行います。
値を指定した場合はシリアルに出力されます。値を指定しない場合はシリアルからの入力値(0〜255の1バイト単位)になります。入力値が-1の場合はデータが送信されてきていないことを示します。
lc(X座標, Y座標)
画面上のカーソル座標を指定します。X座標は0〜31,Y座標は0〜23になります。
scr(X座標, Y座標)
画面上に表示されている文字のコード(0〜255)を返します。
chr(文字コード)
指定された文字コードの文字を返します。log()と組み合わせることで任意の文字を画面に表示できます。
mem("f")
mem(アドレス,値1,...,値N)
mem("f")とした場合、フォントデータが格納されているメモリアドレスを返します。アドレスと値を指定した場合は、指定したアドレスから値を書き込みます。
scroll(方向,フラグ)
画面を指定した方向にスクロール(画面全体を移動)させます。方向は以下のようになっています。
0:上にスクロール
1:右にスクロール
2:下にスクロール
3:左にスクロール
フラグは省略可能です。フラグに1を指定した場合、画面端の文字は反対側に表示されます。
【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/
50代の独身男性が母親の介護をするという「日経ビジネスオンライン」で連載されていたものが一冊の本になったので購入しました(先週まで編集者が番外編を書いて連載してた)。
宇宙関係の記事を書いていたのに、そっちでは大ヒットせず、予想外のネタでヒットしてしまうという、人生何があるか分からない状態ですが、男性は読んでおくと役に立つんじゃないかと思います。
・母さん、ごめん。50代独身男の介護奮闘記
https://www.amazon.co.jp/dp/4822259455/
・InDesign CS6 JavaScript Reference
http://www.openspc2.org/reibun/InDesignCS6/ref/
・Photoshop CS6 JavaScript Reference
http://www.openspc2.org/reibun/PhotoshopCS6/ref/
・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936
[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/
・After Effects自動化サンプルプログラム 上巻、下巻
https://www.amazon.co.jp/dp/4844397591
https://www.amazon.co.jp/dp/4844397605
・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP
http://digiconcart.com/dccartstore/cart/info/2561/218591
・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/
・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/
・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/
・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/
・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/