BeagleBone BlackはArduinoスタイルコネクティビティの簡素さを組み込みLinuxに提供

著者 ヨーロッパ人編集者

DigiKeyのヨーロッパ担当編集者の提供


Raspberry Piは発売以来の1年間で、エレクトロニクス業界に多大な貢献をしました。 もともと教育用に設計された低コストのコンピュータとして位置付けられていましたが、すぐにプロのエンジニアのためのプロトタイピングと評価プラットフォームとして、主流のエレクトロニクス市場にその魅力を広げています。 コンピューティングを教えるために使用されることに加えて、Piはエレクトロニクス愛好家や趣味に熱中する人たちの多くのファンを有し、このようなことは非常に長い間、見られませんでした。 Piが作り出した「活気」を考えると、それと同じようなものが、過去に利用されていないと考えるのは簡単でしょう。 しかし、Arduinoのようなボードは、長い間使われており、開発を支援するためのウェブベースのプログラミングリソースの強力なコミュニティと、巨大なユーザーベースを持っています。 もちろん、両ボードの間にはいくつかの基本的な違いが存在します。 Arduinoは8ビットのAtmelのAVRマイクロコントローラを使用し、非常に簡単に使用できる統合開発環境(IDE)に加えて、実世界のアプリケーションと接続するために十分なIOを提供します。 Arduinoは、Cのような言語を使用して組み込みマイクロコントローラのプログラミングだけでなく、基本的なエレクトロニクスを学ぶための、理想的な基礎を提供します。 これとは対照的に、Raspberry Piは32ビットARM®ベースのSoCを使用し、学校やその他の高等教育機関でLinuxなどの高レベルのコンピューティング言語とオペレーティングシステムの基礎を教えることに、より多く注力しています。 Linuxサポートは、組み込み開発ボードで大量に利用可能で、それほど強力でない8ビットのボードに比べて多くの利点を提供します。 また、複数の実行中のプログラムやタスク間でプロセッサを共有する機能をもたらします。 1つのLinuxベースの例は、BeagleBoard-XMで、Texas Instrumentsの支援を得た真のオープンソース開発ボードです。 しかし、これはTexas Instrumentsからの重大な関心を得ている最新のLinux開発ボードです。 2013年4月に発売されたBeagleBone Blackは、Raspberry Piに対する深刻な競争相手と見られています。 これは、Linuxコンピューティングを学ぶ理想的なプラットフォームとするだけでなく、実際のアプリケーションとインタフェースし、相互作用することにより、基本的なエレクトロニクスを学ぶことを組み合わせます。 2011年後半に新発売されたBeagleBoneフォーマットは、BeagleBoard-XMの機能のほとんどを、より小さなクレジットカードサイズのパッケージに取り込むだけでなく、「ケープ」と呼ばれる一連のドータボード拡張モジュール用に、2つのデュアル行46ピンコネクタの標準フットプリントを確立しています。 Arduinoで使用される「シールド」と同様に、これらは、より高度なI/Oを追加するための様々なプラグインボードを提供します。

CircuitCoのBeagleBone Black

図1: BeagleBone Black – 主要なコンポーネントのレイアウト

BeagleBone Blackは、Raspberry Piの720MHzデバイスと比べて、1GHz(2000DMIPS)で動作するTIのSitara™AM3359 ARM Cortex™-A8マイクロプロセッサを備えています。 最も注目すべきは、Blackは400MHzで動作するDDR3の512MBに加えて、2GBオンボードフラッシュメモリを持っているということです。 マイクロDタイプHDMIコネクタ、Ethernet およびUSBポートが含まれており、ボードは、単一の5VDC電源で駆動されます。 わずか250mAのみを消費するので、ボードはUSB駆動することができます。

ソフトウェアの観点からは、Blackは一連のソフトウェアが事前にロードされており、起動する準備ができています。 電源、HDMI、Ethernet、USBキーボード/マウスを接続するだけで、ボードはAngstrom Linuxディストリビューションを起動し、Gnomeデスクトップが表示されます。 ブートプロセス中に、4つのユーザLEDのセット(USR0~3)が活動を示すのを確実にするために点滅します。 3つの供給されたブラウザ、Chromium、Firefox、およびEpiphanyから選択すると、数秒以内にインターネットをサーフィンすることができます。 初めてボードを実行する前に、Raspberry Piが必要とするような、フラッシュSDカードを追加してディストリビューションのダウンロード操作をする必要はありません。 ほとんどの開発者や愛好家のためにはAngstrom Linuxが合うでしょうが、BlackはCortex-A8ベースのデバイスで使用されるARM v7アーキテクチャにより、UbuntuまたはAndroidを実行することができます。 開発ボード上でLinuxを使用するもう一つの側面は、Ethernetインタフェースとともに提供される追加のコネクティビティです。 ですから、FTP、SSH、Telnet、およびその他のリモートアクセスサービスの使用は、Blackの独自のウェブサーバに接続する機能に加えて、接続の柔軟性を提供します。

CircuitCoのBeagleBone Blackブロック図

図2: BeagleBone Blackブロック図

開発ツールに関しては、Blackもまた整っています。 PythonインタプリタとC/C++コンパイラは、Node.jsを実行するための事前設定されたCloud9 IDEのローカルレプリカと一緒にプリロードされています。 さらに含まれているものは、Node.jsに基づくBonescriptライブラリで、ハードウェアとのインタフェース用のArduinoのような機能がいくつか用意されていす。 Arduinoの「digitalWrite」機能に精通している読者は、Bonescript内に含まれる、この機能や同様の機能をすぐに使えるようになります。 beagleboard.orgコミュニティのリソースはまた、サンプルプロジェクト、役立つフォーラム、およびハードウェア/ソフトウェアのドキュメントの便利なリポジトリとして機能します。

CircuitCoのBeagleBone Black GPIOピンアウト

図3: BeagleBone Black GPIOピンアウト

これらのツールや、機能が豊富なGPIOを使用する能力で、Blackは明らかにIT教育で使用し、基本的なエレクトロニクスを学ぶための理想的なプラットフォームとなります。 BeagleBone Blackは2つのデュアル行ヘッダーP8とP9を経由してアクセス可能な合計92ピンを持っています。 ArduinoやRaspberry Piで利用可能なGPIOをはるかに超える、これらのヘッダもまた、拡張ケープへの接続を形成しています。 これらのピンは、IOの制御、センサーの読み出し、リレーの動作、LEDの駆動など、多くの異なる機能の可能性を有します。 多様な第三者サプライヤーから入手可能なケープは、簡単なブレッドボーディングエリア、LCD画面から、水中車両プロジェクトを制御するために使用される包括的なケープまでを提供します。 BeagleBone Blackの製造業者であるCircuitCoが提供するコミュニティサイトのbeagebonecapes.comは、テスト済みで、完全に準拠していることが判明している互換性のあるケープのリストを管理しています。 技術的には、GPIO使用における競合がない限り、最大4つのケープを互いの上に積み重ねることができます。 また、GPIOには設定するか、多重化するかのいくつかの方法があることに留意すべきです。 異なるオペレーティングシステムは、異なるモードを使用してGPIOを操作することができます。 Angstrom Linuxを使用した、既定の多重モードはモード7です。 特定のピン用のLinux信号名は、ボードに表示されているピン番号と同じではありません。

このGPIOを使って実験する最も簡単な方法は、Cloud9 IDEを使用することです。 Cloud9はブート時に自動的に開始し、Blackの独自のウェブサーバを使用してアクセスされます。 Epiphanyブラウザが起動時に自動的にIDEを見つけるように見えますが、すべてのブラウザはBeagleBone BlackのIPアドレスのポート3000をポイントすることができます。 ArduinoのIDEを使用するのと類似しますが、相違点は、ボードにコードをアップロードする必要がないことです。それは自動的にファイルシステム内に格納されます。 Blackの独自のウェブサーバはまた、便利なページのセットを提供し、Cloud9 IDEおよびボードと対話的に実行することができるいくつかの簡単なBonescriptコードの例へのアクセスを提供します。

Cloud9の統合開発環境

図4:Cloud9統合開発環境

組み込みアプリケーションのための最も伝統的なIDEと同様に、Cloud9にはコード編集、検証、デバッグ、およびテスト用のワークスペースエリアがあります。 コードを書くことは、変数や構文チェックが入力中に起こるインタラクティブなプロセスです。 デバッグプロセスは、ブレークポイントの完全使用、変数の監視、およびシングルステップ実行を備え、Arduinoよりもはるかに洗練されています。 Cloud9は、node.js JavaScriptで書かれた簡単な例をいくつか提供し、Bonescriptライブラリを組み込んでいます。 「blinked.js」のコード例(図5を参照)は、ユーザLED(USR3)の1つを点滅します。 これは、例えばbone.P8_3用に、所望のGPIOピンにLEDとプルアップ/電流制限抵抗を接続することにより、また関連するGPIOにledPinの割り当てを変更することにより、GPIOピンの1つを使用して拡張することができます。 エントリーレベルのIDEとして、Cloud9は、短いコードプロジェクトを記述して実行し、デバッグする迅速かつ簡単な方法を提供します。 LEDをオン/オフにすることは簡単な作業に見えるかもしれませんが、特に現実世界とのインタフェースを初めて体験するソフトウェア開発者にとって、自信を得てボードに精通する重要な第一歩です。

「blinked.js」コード例

図5: 「blinked.js」コード例

node.js JavaScriptの使用は、BeagleBone Blackをプログラミングする好ましい方法であるように思われます。 これは確かにプログラミングやより高いレベルの言語に慣れていない人のために、または単に素早くプロトタイプまとめる方法として簡単な導入を提供します。 しかし、より多くのプログラミングの経験を持つ人や、より複雑な設計の必要性のために、PythonおよびCが十分にサポートされています。 BonescriptがArduinoスタイルのデジタルとアナログIOコマンドをnode.jsに追加するのと同じように、PyBBIOというライブラリがPython開発者向けに利用可能です。

GPIOは、Linuxオペレーティングシステム内から直接に対処することができます。 これにより、ボード上で直接に、またはリモートでSSHを介して接続することによって行うことができます。 第一に、これは特定のGPIOピンで正しいLinux信号名を識別することを必要とし、第二に、Linuxのコマンドラインレベルで作業する合理的な知識を持っていることが必要です。 各GPIOピンは、それが使用されている/sys/classペアレント内で、Linuxのシグナル名で指定されたディレクトリを持つことになります。 このような方法で、1つ以上のケープが使用されているときに、信号/GPIOの競合の可能性を発見することができます。 コネクタP8、ピン16は、GPIO46(図6を参照)であると同定されます。 画面では、gpio46ディレクトリが存在しないことがわかりますので、信号が使用できます。 ピンに接続されたLEDを駆動する場合には、1をLinux値ファイルに書き込むことでオンにし、0でオフにすることができます。 使用後は、ピンの使用をクリアするためにディレクトリを「アンエクスポート」することを忘れないでください。 これらのシェルコマンドはまた、Pythonの命令に組み込むことができます。

GPIOピンを制御するためのSSH上のコマンド例

図6: GPIOピンを制御するためのSSH上のコマンド例

十分に文書化され、オープンソースのプラットフォームを使用して、新しいプロジェクトを高速化することを求めている経験豊富な組み込み開発者であるか、またはいくつかの楽しみを探しているエレクトロニクス愛好家であるかに係わらず、BeagleBone Blackはデザインの基礎となる優れた選択肢を提供します。
 
DigiKey logo

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。

著者について

ヨーロッパ人編集者

出版者について

DigiKeyのヨーロッパ担当編集者