JavaScriptでプログラミングできる小型マイコン 38
ストーリー by hylom
あとはお値段次第というところだろうか 部門より
あとはお値段次第というところだろうか 部門より
insiderman 曰く、
Tesselという、JavaScriptでプログラミングできる小型マイコンが登場する模様。現在開発段階で、近々発売する予定という。Raspberry Piに代表される小型・低価格のマイコンが最近話題になっているが、TesselはJavaScriptでプログラミングできるのが特徴。開発環境としてNode.jsベースのシェルやJavaScript用ライブラリが提供されるそうで、またNode.js向けのパッケージシステムであるnpmに対応、多くのパッケージがTessel上で動作するという。
説明を見る限り、Node.jsのランタイムが載っている模様。また、加速度センサやMicroSDカード、RFID、オーディオ、Bluetooth、サーボモーター、リレー、温度/湿度計などのセンサを搭載した拡張ボードおよびそれらを操作するためのライブラリも提供されるという。Arduinoと互換性を提供するモジュールも提供される予定だそうだ。
スペックとしては、CPUがARM Cortex-M3ベースのLPC1830(180MHz)、メモリが「32mb」のSDRAM、ストレージが「32mb」のフラッシュメモリ。無線LAN、GPIO、MicroUSD端子なども搭載する。
Javaでプログラミングできる小型マイコン (スコア:1)
TINIという、Javaでプログラミングできる小型マイコンが廃品種になっていた模様。
どうやらメーカー(Maxim Integrated)はTINIという名前を今は別の製品群に流用しているらしい。(紛らわしい!)
元のマイコンの製品情報もメーカーのwebから無くなってるようなので、とりあえず下記のページをご覧ください。
http://www.apms.com.au/tini/ [apms.com.au]
http://www.tini.org/ [tini.org]
要はJavaインタプリタを内蔵した組込マイコンなんだけどね。 まあBASIC Srampみたいなものか。
えっ、JavaとJavascriptは全然違うもの、無関係だって? すみません。。。。。。
Re:Javaでプログラミングできる小型マイコン (スコア:1)
JavaとJavaScriptは違うものだけど、無関係ってわけでもない。少なくとも、JavaScriptっていう名前が付けられたころは、LiveConnect [wikipedia.org]っていう機能があって、JavaScriptからの呼び出しで、(インタープリターである)ブラウザは、Javaで書かれた関数をそのままメモリにロードすることができた。だから、Javaのランタイムライブラリは(セキュリティ的な権限が許す限り)無条件でJavaScriptから使うことができたし、JavaScriptから呼び出すための関数をJavaで実装して、追加することもできた。
設計思想的には、複雑で速度を要求するコードはJavaで書いて、簡単な部分はJavaScriptで書くことを目指していた。これにより、HTTP越しにはコンパイル済みの中間コードを送ることで、パフォーマンスとHTMLのクロスプラットフォーム性を同時に満たす仕組みが出来上がった。この戦略は、今考えても、さして欠陥があるようには思えない。ただ、世の中の仕組みとして、主流にはなれなかった。
MicrosoftがIEに搭載したJScriptは、DOM以外の基本的な部分をJavaScriptから丸パクリしたから、JavaScriptとはほぼ完全な互換性があり、もちろんJavaとの連携機能をビルトインに含む。しかし、現実問題として、Javaでライブラリを開発して使っていたウェブデザイナーは、ほぼ皆無であり、代わりに、彼らはこぞってActiveXを使った。つまり、ウェブプログラマが付加したかったものは、Javaで完結するようなアルゴリズムではなく、OSが提供する描画やイベントを制御するAPIへのトンネルだった。見てくれとパフォーマンスの双方でJavaは負けた。
かくして、JavaとJavaScriptは無関係と見做されるようになったが、これは実際の仕様やブラウザの実装の実態には反している。むしろJavaScriptにとって、Javaは唯一の特別なコンパイル言語だった。しかしながら、JScriptにとってはそうではなかった。そして、いまでは、もう、JavaScriptにとっても特別とは言えなくなってしまった。
Re: (スコア:0)
LiveConnect ありましたねぇ~。それでも、当時も知ってる人は多くはなかったよーな…。名前からすると、JavaScript がまだ LiveScript と呼ばれていた頃から存在してたのでしょうか?(°∀°)
Re: (スコア:0)
JavaScriptを有効にしてるなんて情弱だ!JSオフ推奨!みたいな時代もありましたからね。
重さとセキュリティとが主な原因で。
当時は情弱なんて言葉もなかったですが。
Re: (スコア:0)
情弱などという言葉が出来るよりも前、JavaScript動かしてたら「このwebはブラウザにウイルスか何かダウンロードさせて、おかしなことやらせてるんじゃないの?」と不審に思われたこともあったもんです
本屋に行ってもJavaScriptの解説書など一冊も無し、職業プログラマでもJavaScriptをちゃんと知っている人(コード組んだことのある人)は僅少という今では考えられない状況でありました
JavaScriptのアピールポイントが増えた (スコア:1)
この調子でどんどん活躍の場を広げて欲しい。
世界で一番多く使われてる、プログラミング界の中国語は、C/C++だけど、
世界で一番幅広く使われてる、プログラミング界の英語は、JavaScriptになって欲しいね。
というかなると思う。
Re:JavaScriptのアピールポイントが増えた (スコア:1)
メモリの直接操作やら、クリティカルなタイミング操作が無理なので
組み込み系でjavascriptが主流になることはないと思うな。
将来もしかしたらjavascript風なそういう言語がでてくる可能性はあるかもしれないかも。
Re: (スコア:0)
組込みプログラマだけど32bit プロセッサを使うようなアプリケーションで、
本当にクリティカルな部分やら、メモリを直接触りたい部分なんてほんの一部なんですよ。
グラフィックを使った多階層のメニュー画面やら、ネットワークのアプリケーション層なんてもっと楽な言語で書きたいです。
というかやるところは既にやってる。
mRubyやらJavaやらMonoやら。
Re: (スコア:0)
PCとかRaspberryPiとか使やいいじゃん
Re: (スコア:0)
mRuby 、本当に使ってるプロジェクトあるのぉ?(°∀°)
Re: (スコア:0)
mRubyを動かすことが目的になってるプロジェクトならあるよ
Re: (スコア:0)
ラテン語は COBOL で、ギリシャ語は FORTRAN で、フランス語は Pascal で、英語が C言語 で、中国語は Ada じゃないかしら?(^ω^)
Re:カール五世風に (スコア:0)
Scheme は神の言葉、Ruby は女の言葉、 Python は漢の言葉、そしてPerl は、駱駝の言葉
単位 (スコア:0)
32ミリビットってなんぞと思った。
Re:単位 (スコア:1)
Re: (スコア:0)
もちろん 2-10 ビットのことですよぉ~。2061年に数学者フォールス・ライアーが発見すると、ジョン・タイターが言ってました。(´ω`)
Re: (スコア:0)
> もちろん 2-10 ビットのことですよぉ~。
それミビビットやろ?
マイコン (スコア:0)
いまどき、マイクロプロセッサが搭載されたボード/システムのことを「マイコン」呼ばわりする言い方には違和感を覚える。
Re:マイコン (スコア:1)
最近の用語としては、マイコンとは「マイクロコンピュータ」ではなく「マイクロコントローラ」 [wikipedia.org]の略として使われる場合が主流だと思います。
そういう点では、「GPIOといった制御用入出力端子」があるかどうかが「マイコン」の条件でしょう。
#この論だと、Raspberry Pi は、GPIOがあるので一応「マイクロコントローラボード」のジャンルに入れられそう。でも、リアルタイムOSじゃないLinux上で動いていて、精密なタイミングでのGPIO制御がしにくいRaspberry Pi を、マイクロコントローラボードとは呼びたくないなぁ。
でもって高級言語インタプリタが動くマイコンと言えば、今まではBASICを乗せてるのが多いですかね。
今年の初出新製品だとPICAXE [asablo.jp]とか。
#具体的製品例を挙げようと「マイコン BASIC」でググったらべーマガしか出てこない…
本ストーリーのマイコンボードはJavaScriptなんていう重たいインタプリタ言語実行環境を乗せているというのが新しい感じ。
でも最近のArmはCortex-Mシリーズで、この「マイクロコンピュータ市場」にだいぶ進出してきてますが、Cortex-Mはアーキテクチャの基本は同じでもMMUは無いし、タブレットやスマホのCortex-Aシリーズとは別物と考えるべきです。
TesselについてはOSの情報が見つけられませんでしたが、MMU無しにLinuxなんかを動かすのは無理ですので、μCLinux の上で node.js を動かしてるとかじゃないかな。
マイコンボードのほうが興味深いです (スコア:2)
従来型のC言語等でイメージを作って書き込むタイプの安価な [akizukidenshi.com] マイコン [rs-online.com] 評価ボード [akizukidenshi.com]ではmruby [github.com]や.NET Micro Framework [codeplex.com]を動作させるにはSRAMが足りなくて困ることが多くありました。
一方、SRAM等の周辺機能を増強したボードになりますと単価1万円を切るものがなく、技術講習会や学習用の機材として大量に購入することは予算の兼ね合い上無理です。
そのため、このボードがスペックどおりに従来品よりも安価に入手できる(そしてJTAGやSWDでファームを書き換えられる)のであれば自分の思い描く用途にはまさに打ってつけだと思っております。
mrubyやmonoを乗せる評価ボードとして比較対象にあげられる Raspberry Pi等 ですが以下の理由からマイコンボードではなくFAコンピュータだと感じております。
・OS(Linux)が動作することが前提
・MMU有りのCPU
・周辺機能が不必要なほど多機能
・(従来型のマイコンボードと比べて)消費電力が大きく発熱も凄い
・各種IOポートが少ない
・親コメにある
>リアルタイムOSじゃないLinux上で動いていて、精密なタイミングでのGPIO制御がしにくい
Linux等で作ったシステムを簡単に組込みシステム化できるという意味では Raspberry Pi は非常に便利かつ優れた製品ですが、あくまでもPCの延長線上であり
Arduino、mbedのようなOSレスもしくはRTOSが前提となるMCU/ECUの延長線上の製品とは似て異なるものだと思っております。
# このスペックであれば、mrubyのmirbをボード上で動作させることが可能でありそうなので簡単なスケジューラ等とあわせてruby電卓モドキなどが作れそうです。
Re: (スコア:0)
感じるのは勝手だけど、Raspberry Piには、FAコンピューターとして一般的に求められる性能…対環境性や堅牢性とか…は全く考慮されていないと思うけど。
そもそも教育用として開発されたものですからね。Scratchでプログラミングの面白さを知って、Pythonでもうちょっと本格的なプログラミングに触れて、かつ、ソフトだけでなくGPIOでフィジカルなデバイスの制御も知って…という事が本来の目的だったわけですよね。
だから、「簡単に組込みシステム化できる」という意味で「優れた製品」とするのは、まぁ
Re: (スコア:0)
シンボリクス社の LispMachine とか、JavaRing みたいに、直接 JavaScript コードを実行するハードウェアの可能性はない?(°∀°)
Re: (スコア:0)
symbolicsのはちゃんと機械語にコンパイルしてから実行しますよ
fortranコンパイラもありましたよ
Re: (スコア:0)
>#この論だと、Raspberry Pi は、GPIOがあるので一応「マイクロコントローラボード」のジャンルに入れられそう。でも、リアルタイムOSじゃないLinux上で動いていて、精密なタイミングでのGPIO制御がしにくいRaspberry Pi を、マイクロコントローラボードとは呼びたくないなぁ。
そう思っていたのですが、高精度タイマ+nanosleep()が使えるので、マイクロ秒程度の制御には困りませんでした。
タイミングを保証できないので用途によっては使い物にならないでしょうが、一応。
Re: (スコア:0)
そうそう。今どきはマイコンといえばこっちですよ。
インテル マイコン [google.co.jp]
もうローマになっちゃったけど
Re: (スコア:0)
今どきも何も、マイコンは"My Computer"のことだと
太古の昔から決まってませんか?
# 15までナイコンだった。
Re: (スコア:0)
「マイ・コンピュータ」=「マイコン」は、安田寿明氏による造語ですな。
Re: (スコア:0)
今どきマイコンと言ったら、Micro Controller だからこれでいいんだよ。
Re: (スコア:0)
だとしたら今度はRaspberry Piにのっている,RAM外付けのCortex-Aシリーズを小型・低価格とは思えないな.
Re: (スコア:0)
それだと
・TESSEL == マイコン
・TESSELに搭載されているLPC1830 == マイコン
と言ってることになるので、おかしいと思うが。
Re: (スコア:0)
区別するなら略さないで
・TESSEL == マイクロコントローラボード
・TESSELに搭載されているLPC1830 == ワンチップマイクロコントローラ
と書くべきなんだろうけど TK-80 はワンボードマイコンと呼ばれていたんだから
今に始まったことじゃなし、スルー力を養った方がよろしいかと。
Re: (スコア:0)
今時で言うところの 個人向けコンピュータ=パーソナルコンピュータ(略してパソコン) の意味で「マイコン」なんて言ってたのって、せいぜいが1980年代半ばくらいまでじゃん
Re: (スコア:0)
TK-80はマイコンだけど、TK-80BSはパソコンでしたっけ。
MicroUSD端子 (スコア:0)
・MicroUSB端子
・MicroSD スロット
・百万分の一米ドル端子
どれかの誤記かな?
次はJavaScriptOSを(ry (スコア:0)
キワモノ商売が流行りだしたら成熟期の証拠
Re:次はJavaScriptOSを(ry (スコア:1)
MMU付きのCPUで最初からキーボードやディスプレイが接続できる Raspberry Pi より下で
8bit CPU の Arduino より上、JavaScriptでプログラミングできることが最大の売り。
確かに「キワモノ」と呼ぶのがぴったりですね。
インタプリタで動くコントローラって古くはIntelの i8051に BASICを載せたi8052 など、
一部で話題にはなっても、実物が流行ったことは無いように思います。
アマチュア向けのハードウェア開発環境が充実するのは嬉しいのですが、徒花ばかり
目立つようになると、本当の成熟に至る前にアタリショック的な衰退に陥るのではないか
と個人的には少し危惧しています。
Re: (スコア:0)
もうある
http://bellard.org/jslinux/ [bellard.org]
Re: (スコア:0)
エミュか、惜しい…
言語エンジンとスクリプトのみで直に動かしてほしいところ
"cpux86.js"がシュールw