クリエイター手抜きプロジェクト[514]IoT編 IchigoLatteとは
── 古籏一浩 ──

投稿:  著者:


今回から、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/




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/