組込み

Intel EdsionでNode.jsのサーバを動かす

続いて、Node.js + expressでWebサーバを立ち上げてみます パッケージマネージャの更新 Yoctoではapt-getとかではなく、opkgというパッケージマネージャを使うようです。これを最新にしておきます。 こちらを参考に # cd /etc/opkg # curl http://nonnoise.g…

Intel Edisonのセットアップ

買おうかどうしようか考えていましたが、なぜか手元にあるので、セットアップを備忘録的にまとめておきます。 Intel Edsionとは IntelがIoT向けに発表した超小型でLinuxが動作するチップセット。購入して動かすには単体購入だけでは面倒なため、どちらかの拡…

Intel Galileoはじめの一歩

やっとIntel Galileoが来たので、とりあえず最初にやっておくことひと通り ファームウェアのアップデート まずはファームウェアのアップデートをやっておかないとならないのですが、いきなりここでハマりました。3回くらいファームのアップロードをやってや…

BeagleBone Blackにcloud9をインストールする

UbuntuをインストールしたBeagleBone Blackにcloud9 IDEをインストールしてみます。 cloud9 IDEとは BeagleBone Blackに標準インストールのAngstrom上にプリインストールされている、Node.jsを利用したブラウザIDE環境です。今回はUbuntuに入れ替えてあるの…

BeagleBone BlackのUbuntuにbonescriptをインストールする

デフォルトのAngstromではなく、Ubuntuの方にbonescript入れてやればいいよね?的な発想でインストール Node.js v0.10.21でインストール 前々回にインストールしたv0.10.12でbonescriptをインストールしてみます ubuntu@ubuntu-armhf:~$ npm install -g bone…

BeagleBone BlackのAngstrom Linuxに入ってるNode.jsについて

ちょっとだけ調べてみました。 Nodeのバージョン root@beaglebone:~# node -v v0.8.22 Node Package Managerも入っているようです root@beaglebone:~# npm Usage: npm <command> where <command> is one of: add-user, adduser, apihelp, author, bin, bugs, c, cache, complet</command></command>…

BeagleBone BlackにNode.jsをインストールする2(セルフビルド)

前回のおさらい 見事にビルドに失敗・・・ググってみたら、傘のお肉はどこにあるの?知り合いの@iwata_nのブログに引っ掛かったw つまりは ./configure --without-snapshot が必要ということなので、nodebrewのソースを修正して対応します。 nodebrew本体の…

BeagleBone BlackにNode.jsをインストールする(セルフビルド)

いつものようにNode.jsをインストールします。今回はnvmではなくnodebrewを使い、セルフビルドにてインストールします。 BeagleBone Black用のNode.js ビルドするのが面倒な方はこちらにインストールバイナリがありますので、こちらを使ったほうが楽チンです…

BeagleBone BlackにUbuntu12.04をインストールする

作業の備忘録として記録しています。Raspberry Piを触っていれば、ほぼ同じような手順ですが・・・ (本当はIntel Galileoで遊ぶつもりが発売が年明けに延びたので、こっちをやっつけることに...) 追記 この方法では、SDカードからのブート時に「ボタン」を…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その9:I2Cでスイッチコントロール(GPIO))

おそらく今回でLPCXpressoは最後になりますが、I2Cを使ってみます。LPC812は少ピンなのでGPIOが少ないのですが、Arduinoと同じようにGPIOやADCを載せるために、I2Cバスにデバイスを接続して拡張しています。 I2Cのサンプルプログラムを動かす まずはサンプル…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その8:UARTでPCと接続)

今回もサンプルを使ってUARTの動作を確認していきます。 UARTのサンプルプログラムを動かす まずはサンプルプログラムを動かしてみます。サンプルは例のごとく、import project(s)からNXP_LPC8xx_SampleCodeBundle.zipを選択して「UART」をインポートします…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その7:Systickタイマーを使う)

前々回はMRT(Multi-rate Timer)を使いましたが、今回はSystickタイマーのサンプルを例に動かしてみます。SystickタイマーはCortex-M0+内にあるタイマーで、1チャンネルしかありません。通常このタイマーはOSのタイマーに使われるという記述がどっかにありま…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(番外編:提供されているコードについて)

LPCXpressoを触っていて、気になったことがあるので書いておきます。LPC812にはARMのCortex-M0+のコアとNXPの周辺モジュールの2つが合わさったマイコンです。ブロック図はユーザーズマニュアルp7にあります。 サンプルプログラムを見てて思ったのは「あれっ…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その6:タイマーを使う)

今回はBlinkyのサンプルに戻って、残っているタイマーの動作を確認したいと思います。 LPC800シリーズのタイマー LPC800シリーズにはタイマーが2種類あります。 Cortex-M0+内にあるSystick timer, 24bit 1チャンネル LPCシリーズとしてのMRT(Multi-rate Time…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その5:PLLを使用してクロックアップ!)

LPC812は最大動作クロックは30MHzなので、今回は30MHzで動作するように設定を変更してみます。 動作クロックの変更を行うには 前回のエントリのクロック・ジェネレータを参照しながら考えてみます。

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その4:スタートアップルーチン)

スタートアップルーチンを見てみる Blinkyのサンプルアプリはmai.cのmain関数から始まっているのですが、ここでここまでに至る起動時のスタートアップルーチンを見てみようと思います。スタートアップルーチンでは、起動時の重要な初期化やデフォルト設定を…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その3:LEDの動作(GPIO)を調べる)

サンプルアプリ(Blinky)のLEDの動作を調べてみる これで、ひと通りデバッグ等ができるようになりました。実際のコードを解析しつつ、ARM Cortex-M0というかLPC800シリーズのアーキテクチャを見て行きたいと思います。まずは前半を飛ばして、わかりやすいLED…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その2:デバッグでprintf文を使う)

普通にオンラインデバッグができますが、一点だけprintf文を使おうとしてハマりました。 デバッグでprintf文を使う 前回のBlinkyプロジェクトにprintf文を書いてビルドすると以下のようにリンカでエラーになってしまいます。 調べたところ解決策がこちらの「…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その1:サンプルアプリを動かす)

ARMマイコンの勉強を始めました。とりあえず、LPC800-MAXというArduino互換(ぽい)のが出たようなので、スイッチサイエンスさんで購入。このボードはmbedにもなるボードなのですがそっちは置いておいて、ARMマイコンを理解するためにもLPCXpressoで動作する…

インターネットとハードウェア

組込みプログラミングの必要性 プログラミングというとPC上でのプログラムが普通ですが、最近感じているのは組込み系のプログラミングの重要性です。単に組込みプログラミングというだけではなく、デバイスとネットワークを扱うためのプログラミングと言った…

ZigBeeモジュール Wireless Engine TWE-Lite DIPを使ってみた

なんか最近発売されて、かなり売れているらしいTWE-Lite DIPを使ってみました。ハマったポイントなどを書いておきます。 TWE-Lite DIPとは 東京コスモス電機が発売しているZigBeeの無線モジュールです。販売は「秋月電子」とか「千石電商」とかで売ってます…

Raspberry Piに接続したフルカラーLEDをNode.jsから制御する

Raspberry PiのGPIOの制御方法がわかったので、Node.jsからGPIOをコントロールできるようにします。 Node.jsからGPIOを叩く 前回のGPIO制御のコマンドをそのまま使うような書き方をします。 var exec = require('child_process').exec; exec('gpio -g mode 2…

Raspberry PiでGPIO制御

Raspberry PiのGPIOをライブラリを使って制御します。またライブラリを使うことでJavaScriptからでもGPIOの制御ができるようになります。まずはGPIOを叩いてみるところと、ハマるポイントを書いておきます。 Raspberry PiのGPIOの情報 ここがまとまってるよ…

【書評】Android×Arduinoでつくるクラウド連携デバイス

インプレスジャパンさんから献本を頂いたので、内容の紹介と感想を 著者は @itog こと伊藤元氏 対象読者 以下の各要素を基本的な所から説明しています。 Arduino Android Android Open Accessory 一方でサーバ側(クラウド)の方は省略されている感じなので…

実録!家電メーカがモバイル分野に参入できない理由

実録!Sierがネットゲーム事業に参入できない理由に触発されてカッとなって書いた。後悔はしていなry 研究開発 その1 社員「部長、Androidをプラットフォームとして採用して、サービスとデバイスを組み合わせた製品開発ができます」 部長「AndroidってLinu…

組込みにおけるHTML5の意味

7/2にMobile5という勉強会に主催者兼発表者として参加しました。 発表資料を公開しておきます。 組込みにおけるHTML5 View more presentations from Tomo Watanabe とはいえ、素晴らしいまとめ記事をジャーナリストの星さんに書いていただいたので、そちらを…

組込み技術とモバイル技術(2)

ESECでのブースセッションの資料をSlideShareで公開しました。内容は多少変更していますが、だいたい言いたいことはわかるかと思います。 組込み技術とモバイル技術 View more presentations from Tomo Watanabe メーカの開発現場の現状 私は元々は組込み系…

属人性排除の功罪

ソフトウェアの開発においては長年、属人性の排除が叫ばれてきました。今回は属人性の功罪について考えてみます。 属人性の排除の目的 定められた成果物を作成することにより、他の人にも理解しやすいようにすること 誰が担当しても一定の品質を保つことを可…

組込み技術とモバイル技術の違い

ESECが終わりました。3日間説明員として立っていましたが、モバイルアプリ開発から、組込み分野に戻ってきて、今の組込み技術の課題とか、問題とか色々見えてきたので整理したいと思います。その上でAndroidなどのモバイル技術との違いを考えてみます。 課題…