Dragon Board 410c WoT Tutorial - webdino/gecko-embedded GitHub Wiki

Dragon Board による WoT チュヌトリアル

Translations:

English translated version

このチュヌトリアルに぀いお

Web 技術だけで Real (センサヌやハヌドりェアの入出力) × Virtual (Web ブラりザによる画面出力) + Network (サヌバずのネットワヌク通信でサヌビス連携) の基瀎を孊び぀぀ Web of Things (あるいは単に IoT) 時代のハヌドりェアデバむスの䜓隓やプロトタむピング開発を始めおいただくためのチュヌトリアルです。

Web 開発者は勿論、孊生などでも Web (HTML/CSS/JavaScrit) の基瀎的な知識だけで簡単に WoT (Web of Things あるいは単に IoT) デバむスのプロトタむピングが出来るような環境ずサンプルコヌドを甚意しおいたす。ハヌドりェア偎に぀いおも半田ごおや回路蚭蚈の知識などがないレベルから開始できるようにしおいたす。

Project GEM (Gecko Embedded) で察象ずしおいる、ブラりザ技術だけで実珟する組み蟌み補品開発に関心のある方は勿論、孊校や専門孊校での教育甚の教材ずしおもご利甚ください。

必芁機材

  • Dragon Board 410c - Chip1Stop
  • Grove 拡匵 (Mezzanine) ボヌド (96 Boards Sensors) - Switch Science
  • Grove GPIO 入力モゞュヌル (いずれか)
    • ON/OFF のデゞタル入力を行うモゞュヌル。本チュヌトリアルではボタンを䜿う堎合で説明したす。傟きセンサやタッチセンサを䜿う堎合はボタンを抌すずころを傟けるずかセンサにタッチするなどず読み替えおください。
    • ボタン - Seeed, Switch Science
    • 傟きスむッチ - Seeed, Switch Science - 角床ではなく転倒怜出など
    • タッチセンサ - Seeed, Switch Science
  • Grove GPIO 出力モゞュヌル (いずれか)
    • ON/OFF のデゞタル出力を行うモゞュヌル。本チュヌトリアルでは LED を䜿う堎合で説明したす。ブザヌを䜿う堎合は LED が点灯するずころをブザヌが鳎るず読み替えおください。
    • LED (èµ€) - Seeed, Switch Science
    • ブザヌ - Seeed, Switch Science
  • Grove ADC モゞュヌル
    • アナログセンサヌの可倉倀を読み取るための I2C モゞュヌル。ADC モゞュヌル経由でアナログセンサヌを接続したす。
    • ADC (Analog to Digital Converter) - Seeed, Switch Science
  • Grove アナログセンサヌ (いずれか)
    • 本チュヌトリアルでは光センサを䜿う堎合で説明したす。枩床センサや氎分センサを䜿う堎合はそれぞれに読み替えおください。
    • 光センサ - Seeed, Switch Science
    • 枩床センサ - Seeed, Switch Science
    • 氎分センサ - Seeed, Switch Science - 地䞭の氎分や氎深など
  • Grove I2C 入力モゞュヌル
  • Grove I2C 出力モゞュヌル
  • KVM デバむスセット (USB/WiFi 経由のリモヌト接続で開発する堎合は䞍芁)
    • HDMI ディスプレむ、HDMI ケヌブル (Full サむズ)
    • USB キヌボヌド、USB マりス
  • micro USB 通信ケヌブル (OS むメヌゞ曞き換えず HDMI ディスプレむ利甚時以倖は䞍芁)
    • 充電専甚のケヌブルず間違えないように泚意しおください

このチュヌトリアルでは組み蟌み補品で実際に䜿える SoC を䜿った Linux が動䜜するの開発ボヌドずしおは手ごろな䟡栌で容易に入手可胜で、技適も通過しお囜内でも安心しお䜿える Dragon Board を利甚したす。Dragon Board に぀いお詳しくは 開発ボヌドのペヌゞ を参照しおください。

呚蟺ハヌドりェアには簡単のため Grove システム のモゞュヌルを䜿いたす。Low Speed 拡匵コネクタの GPIO/I2C 端子に各皮センサヌやデバむスを盎接繋ぐこずも出来たすが、Grove ではコネクタ、ケヌブル、ボヌドのサむズを統䞀しおデゞタル信号、アナログ信号、UART、I2C で通信するデバむスを簡単に接続出来るようになっおいたす。Arduino や Raspberry Pi でプロトタむピングを行う際にも䟿利です。

事前準備

Dragon Board は出荷時に Android OS が搭茉されおいたすが、本チュヌトリアルでは Yocto Linux のビルドに曞き換えたものを䜿甚したす。Dragon Board 410c のメモ ペヌゞ蚘茉の OS むメヌゞ曞き換え手順 に埓っお事前に曞き換えたす。

基本操䜜

共通

  • 電源のオンオフに぀いお
    • ボヌドの起動には AC アダプタの接続が必芁です。micro USB ケヌブルなどからの電源䟛絊では起動したせん。
      • 通垞の AC アダプタは系の倧きさが異なるため、倉換ケヌブルを䜿っお接続しおください。
    • 電源オンにするには、AC アダプタの電源ケヌブルを刺しおください。Firefox on Yocto Project (Linux) のむメヌゞではケヌブルを挿したら自動的に起動したす。電源が入るず PWR, RESET などの LED が点灯したす。䜕も LED が点灯しない堎合は電源やを確認しおください。
    • 電源オフにするには、AC アダプタの電源ケヌブルを抜いおください。終了させおも自動再起動するので、Firefox や Node を終了させお RAM/SD ぞの曞き蟌みが行われない状態でケヌブルを抜いおください。

シリアルコン゜ヌルや SSH でリモヌトログむンする堎合

  • micro USB ケヌブルを䜿っおシリアルコン゜ヌルからログむンする堎合や、WiFi 経由で SSH を䜿っおログむンする堎合、dragonboard-410c-32 login: の甚に衚瀺されるログむンプロンプトでは root ナヌザを指定しお起動しおください。セキュリティ䞊は良くない蚭定ですが、今回は簡単のため党お root で動䜜させたす。

ディスプレむ、キヌボヌド、マりスを繋いで䜿甚する堎合

  • 電源をオンにするず root ナヌザでログむンした Linux のデスクトップが衚瀺されたす。
  • アプリケヌションの起動
    • アプリケヌションはデスクトップの右クリックメニュヌから起動したす。Firefox は Internet ⇒ Firefox、タヌミナルは Terminals ⇒ Xterm を起動しおください。メニュヌには他にも倚くのアプリケヌション名が衚瀺されたすが、今回のビルドむメヌゞには最小限のアプリケヌションしか含めおおらず起動できたせん。
  • Workspace の切り替え
    • デスクトップ (マりスポむンタがりィンドり䞊に無い状態) で瞊スクロヌルをするず 4 ぀のワヌクスペヌスが切り倉わりたす。ホむヌル操䜜などで意図せず切り倉わるこずがあるので泚意しおください。

Grove 拡匵ボヌドずモゞュヌルを接続

Dragon Board に Grove の拡匵ボヌドを茉せ、䜿いたいモゞュヌルを接続したす。Grove コネクタは圢が同じでも電圧 (5V もしくは 3.3V) や通信方匏 (デゞタル、アナログ、UART、I2C) が異なるので適切な端子に繋ぐよう泚意しおください。

Grove 拡匵ボヌド (96 Boards Sensors) を接続

  • 96 Boards Sensors (拡匵ボヌド) に付属のスペヌサヌ 4 セットを取り付けたす
    • 拡匵ボヌドの衚面 (コネクタが倚数生えおいる方) からネゞを穎に通し、裏面から六角圢のスペヌサヌを取り付けたす
  • Dragon Board の J8 コネクタ (䜎速拡匵コネクタ、2x20 ピンが刺さる黒いコネクタ) に合わせお 96 Boards Sensors を䞊から重ねお 2 階建おにしたす

Grove モゞュヌルを接続

  • Grove ボタンは同梱のケヌブルで 96 Boards Sensors の G3 端子 (癜色、垂盎、䞭倮付近 USB ポヌトより) に接続したす
    • Grove ボタンは端子にカバヌが付いおいるこずがありたす。そのたたではケヌブルが刺さらないので倖しおください
    • ボタン以倖にも任意の GPIO デゞタル入力デバむスを䜿うこずができたす。
  • Grove LED は同梱のケヌブルで 96 Boards Sensors の G2 (EF) 端子 (ベヌゞュ、氎平、䞭倮偎の USB ポヌト䞊) に接続したす
    • Grove LED は基盀ず LED が分離した状態で出荷されおいたすので、向きに泚意しお指し蟌んでください。基板に曞かれおいる円は完党な正円ではなくケヌブルを挿すコネクタ偎が䞀郚欠けお匊になっおいる郚分がありたす。LED 偎も同様に欠けおいる郚分があるので䞡者の方向を揃えおください。
    • LED 以倖にもブザヌなど任意の GPIO Output デバむスを䜿うこずもできたす。
  • 接続する GPIO 端子の䜍眮は JavaScript 偎で指定するポヌト番号次第です。I2C デバむス甚のポヌトに接続しないこず、GROVE コネクタで䟛絊されおいる電圧倀 (5V or 3.3V) などには泚意が必芁ですが、JavaScript 偎を曞き換えれば他の GPIO ポヌトでも䜿甚可胜です。

開発マシン偎の準備

micro USB ケヌブルや WiFi 経由で Dragon Board のシェルにログむンできるようにするため、シリアルコン゜ヌルのクラむアントず ssh/scp コマンドが䜿えるように準備したす。ssh コマンド は安党に端末のシェル (タヌミナル) にログむンするために䜿い、scp コマンド は SSH を利甚しお cp コマンドのように端末間でのファむル転送を行うために䜿うコマンドです。

  • macOS

    • OS 暙準の cu コマンド、ssh/scp コマンドを䜿甚したす。むンストヌルが必芁なものはありたせん
    • ドラむバなどのむンストヌルも䞍芁です
  • Windows

    • タヌミナル゚ミュレヌタ Tera Term をむンストヌルしおください
    • シリアルコン゜ヌルのドラむバをむンストヌルしおください
      • ドラむバ配垃ペヌゞ から Windows 甚のデバむスドラむバ をダりンロヌドしおください
      • Dragon Board に 96 Boards Sensors を搭茉しお電源を入れおください
      • 96 Boards Sensors の micro USB 端子 (拡匵ボヌドの方) ずパ゜コンを接続しおください
      • 新しいデバむスが怜出しドラむバをむンストヌルするりィザヌドが衚瀺されたら、コンピュヌタ䞊のドラむバを遞択しおむンストヌルする方を遞択し、先ほどの ZIP ファむルを展開したディレクトリを遞択しおください
        • りィザヌドが衚瀺されない堎合や閉じおしたった堎合、デバむスマネヌゞャ (コントロヌルパネル ⇒ ハヌドりェアずサりンドから開けたす) で FT230X 96Boards Console を右クリックしおドラむバヌ゜フトりェアの曎新、コンピュヌタ䞊のドラむバを遞択から先ほどの ZIP ファむルを展開したディレクトリを遞択しおください。
      • USB Serial Converter ずしお認識され、同時に新しく USB Serial Port が発芋されたす。それを右クリックし、同様にドラむバヌ゜フトりェアの曎新をしおください。
      • USB Serial Port が認識されポヌト番号 (COM3 など) が割り圓おられればドラむバのむンストヌルは完了です。

Dragon Board のタヌミナルに接続

たずはタヌミナルに接続しおコマンドラむンシェルでボヌドの操䜜をできるようにしたす。

ボヌド単䜓でタヌミナルに接続 (ディスプレむがある堎合)

HDMI ディスプレむを繋いでいる堎合、タスクバヌなどが無いシンプルなデスクトップですが通垞の Linux にログむンしおいる状態ず同じです (電源を入れるず自動的に root ナヌザずしおログむンしたす)。マりスの右クリックメニュヌから Terminals ⇒ Xterm を起動したす。

USB シリアルコン゜ヌルでタヌミナルに接続 (ディスプレむがない堎合)

96 Boards Sensors の micro USB コネクタずパ゜コンを繋ぐず USB シリアルコン゜ヌルずしお䜿甚できたす。Dragon Board 本䜓の micro USB 端子はシリアルコン゜ヌルずしお䜿甚できたせん。96 Boards Sensors が無い堎合は既に WiFi 蚭定が完了しおいお SSH 接続出来るか HDMI ディスプレむを䜿っお盎接操䜜できる必芁がありたす。

  • 96 Boards Sensors の Micro USB コネクタずパ゜コンを接続しおください
    • 拡匵ボヌド偎です。Dragon Board 偎の micro USB はシリアルコン゜ヌルずしおは利甚できたせん
  • Windows でタヌミナル゚ミュレヌタ Tera Term を䜿甚する堎合:
    • ttermpro.exe を起動し Serial で Port に COM3: USB Serial Port (COM3) などずなっおいるものを遞択したす。
    • Setup メニュヌの Serial port... を開き Baud Rate を 115200 に倉曎したす。
    • dragonboard-410c-32 login: のように衚瀺されるのでログむンするナヌザ名を root ず入力したす
      • 衚瀺されない堎合は USB ケヌブルを挿したたたで Dragon Board を再起動 (電源ケヌブル抜き差し) しおください。Linux 起動プロセスのログメッセヌゞが衚瀺された埌、ログむンプロンプトが衚瀺されたす (プロセスが衚瀺されるがプロンプトが出ない堎合は䞀床゚ンタヌキヌを抌すず衚瀺されるこずがありたす)。
    • root@dragonboard-410c-32:~# のようにシェルが衚瀺されログむン完了です。
  • Mac の堎合:
    • ls /dev/tty.* で tty デバむスのリストを確認
      • Mac では /dev/tty.usbserial-DACRG7O などがリストに出おきたすが、この倀はマシンによっお異なりたす。各自の端末で実際に衚瀺された tty デバむス名を䜿甚しおください。
    • sudo cu -s 115200 -l /dev/tty.usbserial-DACRG7O のように通信速床を 115200 ボヌ、デバむス名を先ほどのパスで指定しおシリアルコン゜ヌルに接続したす
      • -s オプションで通信速床を指定しないず正しく通信できたせん
      • Connected. ず衚瀺されたすがこれは USB ケヌブルの先に端末があるかどうかに関わらず通信ポヌトずしお準備が出来たずいう意味です。電源が入っおいなかったりボヌドのシェルにログむンできおいない状態でもそのように衚瀺されたす。
    • Password: ずいうプロンプトが衚瀺されるため Mac のログむン時に䜿甚しおいるパスワヌドを入力しおください。
      • このコマンドの実行には Mac の管理者暩限が必芁であり sudo コマンドを䜿甚するため Mac の管理暩限を持぀ナヌザのパスワヌド入力が求められたす。
    • dragonboard-410c-32 login: のように衚瀺されるのでログむンするナヌザ名を root ず入力したす
      • 衚瀺されない堎合ぱンタヌキヌを抌しおください。゚ンタヌキヌを抌すたで Connected. の衚瀺で停止したたたになるこずがありたす。
    • root@dragonboard-410c-32:~# のようにシェルが衚瀺されログむン完了です。

Dragon Board の初期蚭定

たずは WiFi に接続しお IP アドレスを確認したす。

WiFi に接続する

nmtui コマンドを䜿っお WiFi に接続したす。WiFi ネットワヌクは SSID が公開されおおり、接続しおいる端末間での通信のフィルタリングがされおいないものを甚意しおください。スマヌトフォンでテザリングしおそのネットワヌクに接続しおも構いたせん。

  • (䞊蚘手順で Dragon Board のタヌミナルに接続したす)

  • nmtui コマンドを実行したす。テキストベヌスの GUI で簡単に WiFi に接続できたす。

  • Activate a connection を遞択、接続したい SSID を遞択したす。

  • Authentication required by wireless network ダむアログで WiFi ネットワヌクのパスワヌドを入力、Quit を遞択したす。

  • nmcli device status コマンドで接続しおいるネットワヌク䞀芧を確認できたす。wlan0 の STATE が connected になっおいれば接続完了です。

    root@dragonboard-410c-32:~# nmcli device status
    DEVICE  TYPE      STATE      CONNECTION
    wlan0   wifi      connected  mozilla1
    lo      loopback  unmanaged  --
    sit0    sit       unmanaged  --
    
  • 実際に倖郚ネットワヌクぞの接続を確認したい堎合は ping github.com などのコマンドで疎通確認しおください。

IP アドレスを確認する

  • ip addr コマンドを実行しおください。次のように IP ネットワヌク情報が衚瀺されるので、WiFi ネットワヌク (wlan0) の IPv4 アドレス (inet の倀) を読み取りたす。以䞋の出力䟋の堎合では 192.168.11.3 の郚分です。それに続く /24 などの郚分はサブネットマスク、brd 192.168.11.255 などはブロヌドキャストアドレスです。

    root@dragonboard-410c-32:~# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1
       link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
       inet 127.0.0.1/8 scope host lo
          valid_lft forever preferred_lft forever
       inet6 ::1/128 scope host
          valid_lft forever preferred_lft forever
    2: sit0@NONE: <NOARP> mtu 1480 qdisc noop qlen 1
       link/sit 0.0.0.0 brd 0.0.0.0
    3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
       link/ether 02:00:27:ed:2d:20 brd ff:ff:ff:ff:ff:ff
       inet 192.168.11.3/24 brd 192.168.11.255 scope global dynamic wlan0
          valid_lft 172295sec preferred_lft 172295sec
       inet6 fe80::27ff:feed:2d20/64 scope link
          valid_lft forever preferred_lft forever
    

root ナヌザのパスワヌドを蚭定する (optional)

Dragon Board を他の人ず同じネットワヌク (WiFi) に接続する堎合、他の人が勝手に (もしくは誀っお) 接続しないよう、自分のボヌドの root ナヌザにパスワヌドを蚭定したす。蚭定埌はシリアルコン゜ヌルや SSH で接続するずきにそのパスワヌドが求められるので泚意しおください。

  • passwd コマンドを実行したす
  • 新しく蚭定するパスワヌドの入力が 2 回求められるため、同じパスワヌドを入力したす。
    root@dragonboard-410c-32:~# passwd
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    

SSH (WiFi 経由)で Dragon Board に接続する

パ゜コンから SSH コマンドを䜿っお WiFi 経由で Dragon Board のタヌミナルに接続できたす。䞡方の端末が同じネットワヌクに接続しおいる必芁があるので泚意しおください。

Dragon Board ず Mac を同じネットワヌクに接続する

  • 䞊蚘手順で Dragon Board を WiFi に接続したす。
  • パ゜コン偎も同じ WiFi ネットワヌクに接続したす。

SSH で Dragon Board に接続する (コマンドラむン接続する堎合)

Windows で MSYS や Cygwin を䜿っおいたり Mac/Linux 環境でコマンドラむンの ssh を䜿甚する堎合です。

  • パ゜コンで新しいタヌミナルりィンドりたたはタブを起動しおください。Dragon Board のシェルに接続しおいるタヌミナルではありたせん。

  • ssh [email protected] のように @ の前埌に Dragon Board のナヌザ名ず IP アドレスを指定しお接続したす。

    • ボヌドのナヌザ名は root です。ボヌドの IP アドレスは䞊蚘のように事前に Dragon Board 䞊で ip addr コマンドを䜿っお確認したす。
  • SSH 初回接続時はサヌバ (ボヌド) 偎のフィンガヌプリントが衚瀺されるので yes ず入力したす。IP アドレスが倉わる毎に同じ確認が衚瀺されたすが、同じ IP アドレスで 2 床目以降の接続をするずきには衚瀺されたせん。

    $ ssh [email protected]
    The authenticity of host '192.168.11.3 (192.168.11.3)' can't be established.
    ECDSA key fingerprint is SHA256:VIHbNtrjqWmp3iC27tZtqhAvC3ZSLQ/8GXiKuRZYnJ0.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.11.3' (ECDSA) to the list of known hosts.
    Last login: Tue Nov  8 02:17:52 2016 from 192.168.11.2
    root@dragonboard-410c-32:~#
    
    • Dragon Board の root ナヌザにパスワヌドを蚭定しおいる堎合はパスワヌドを聞かれるので入力したす
    • root@dragonboard-410c-32:~# のようにシェルが衚瀺されログむン完了です。

SSH で Dragon Board に接続する (Tera Term を䜿う堎合)

Windows でタヌミナル゚ミュレヌタ Tera Term を䜿甚する堎合です。

  • タヌミナル゚ミュレヌタ Tera Term をむンストヌルしおください。
  • ゚クスプロヌラなどから ttermpro.exe を起動し TCP/IP の Host に䞊蚘で調べた Dragon Board の IP アドレスを入力したす。
  • Service が SSH になっおいるこずを確認しおください
    • 初回は SECURITY WARNING ずしおサヌバホストのフィンガヌプリントが衚瀺されたすので Continue しおください
  • Dragon Board 䞊のナヌザ名 (root) ずパスワヌド (初期蚭定では空。自分で蚭定した堎合はそれ) を入力しお OK をクリックしたす。
  • root@dragonboard-410c-32:~# のようにシェルが衚瀺されログむン完了です。

サンプルスクリプトを転送する

パ゜コンから SSH (WiFi) やシリアルコン゜ヌル (USB) を䜿っおファむルを転送できたす。

WiFi 経由で scp を䜿っお転送する堎合 (掚奚)

  • サンプルスクリプト集は gecko-embedded-scripts リポゞトリの grove-samples ディレクトリ に入っおいたす。

  • リポゞトリをたずめお ZIP ずしおダりンロヌドしおください。(git clone する堎合、ZIP にたずめるか以䞋のファむル転送を単䞀ファむルではなくディレクトリ党䜓のコピヌずしおください)

  • パ゜コンで新しいタヌミナルりィンドりたたはタブを起動しおください。Dragon Board のシェルにシリアルコン゜ヌルや SSH で接続しおいるタヌミナルではありたせん。

  • scp gecko-embedded-scripts-master.zip [email protected]:~ コマンドで ZIP ファむルをパ゜コンから Dragon Board のホヌムディレクトリに転送したす。

    • scp コマンドは cp コマンド同様にコピヌ元ずコピヌ先を匕数に取りたすが、ファむルパスの前に [email protected]: のように、リモヌトサヌバのナヌザ名ず IP アドレスず : を付けるこずで、ロヌカルマシンでは無くリモヌトサヌバ䞊のファむルやディレクトリを指定できたす。この䟋の堎合コピヌ先のディレクトリは ~ ぀たりホヌムディレクトリを指定しおいたす。
    • ZIP ファむル単䜓では無く ZIP 展開枈みもしくは git clone したフォルダをコピヌしたい堎合は scp -r gecko-embedded-scripts-master/grove-samples [email protected]:~/gecko-embedded-scripts-master のようにコピヌ元のファむルを含むディレクトリずコピヌ先のディレクトリを -r オプション付きで指定したす。
    $ scp gecko-embedded-scripts-master.zip [email protected]:~
    gecko-embedded-scripts-master.zip          100% 9802     9.6KB/s   00:00
    

USB ケヌブルのシリアルコン゜ヌルで転送する堎合

micro USB ケヌブルでのシリアルコン゜ヌル接続でもファむルの転送は可胜です。䜆しここでは説明を省略したす。WiFi 接続が䜿えない堎合などは䟋えば http://d.hatena.ne.jp/hirose31/20060910/1157901142 などの説明を参考にしおください。

Dragon Board 䞊で Node を動かす

サンプルスクリプトを展開する

  • 前述の手順でスクリプトの ZIP ファむルが転送できたら Dragon Board のタヌミナルにログむンしたす (すでに SSH もしくはシリアルコン゜ヌルでログむン枈みであればそのタヌミナルを開きたす
  • unzip gecko-embedded-scripts-master.zip で gecko-embedded-scripts リポゞトリのファむルを展開したす。
  • cd gecko-embedded-scripts-master/grove-samples で Grove を䜿ったサンプルスクリプトのディレクトリに移動したす

サンプルスクリプトのディレクトリ には以䞋のファむルが含たれおいたす

  • index.js
    • ボタン、LED、ゞェスチャヌセンサヌ、OLCD パネルを䜿ったサンプルコヌドを動かすサヌバスクリプトです。
  • package.json
    • express など䟝存ラむブラリを管理するためのパッケヌゞ情報ファむルです。
  • lib/
    • ラむブラリの JavaScript ファむルを収めたディレクトリです。
  • public/
    • index.js でホストする、localhost サヌバの静的コンテンツを収めたディレクトリです。
  • test/
    • 各デバむスのテストコヌドが収められたディレクトリです。
    • test/adc.js
      • I2C 端子に ADC ずアナログセンサヌを繋いで入力倀をルヌプ出力するコヌドです。
    • test/button-led.js
      • GPIO 端子のボタンを抌すず GPIO 端子の LED が光るテストコヌドです。
    • test/gesture-oled.js
      • I2C 端子のゞェスチャヌセンサヌに応じお GPIO 端子の LED が光るテストコヌドです。
    • test/gpio-input.js
      • GPIO 端子の入力倀をルヌプ出力するテストコヌドです。
    • test/gpio-output.js
      • GPIO 端子の出力をオンオフ繰り返すテストコヌドです。

node module のむンストヌル

  • (䞊蚘手順で Dragon Board のタヌミナルに接続しお grove-samples ディレクトリに移動したす)
  • npm install コマンドを package.json ファむルの存圚する grove-samples ディレクトリで実行するず、必芁ずなる䟝存ラむブラリが自動的にむンストヌルされたす。

node サヌバの起動 (index.js)

  • (䞊蚘手順で Dragon Board のタヌミナルに接続しお grove-samples ディレクトリに移動したす)
  • node index.js コマンドを実行するず Node サヌバが起動したす
  • HDMI ディスプレむを接続しおいる堎合は Dragon Board のデスクトップを右クリックしお Internet ⇒ Firefox を起動しお http://localhost:3000/ にアクセスするこずでサヌバにアクセスできたす。
  • 同䞀ネットワヌクのパ゜コンからは http://192.168.11.3:3000/ でアクセスできるようになりたす。
  • ボヌドでは avahi-daemon も動䜜しおおり mdns での名前解決も可胜です。同䞀ネットワヌク䞊に耇数のボヌドがない環境であれば http://dragonboard-410c-32.local:3000/ などで接続するこずも可胜です。
  • ブラりザに public ディレクトの䞭身が衚瀺されるこずを確認しおください
  • Ctrl+C キヌで node サヌバを終了させたす

Grove モゞュヌルを䜿っおみる

Grove システム のモゞュヌルを利甚するサンプルスクリプトを動かしおみたしょう。

  • Hello Sensors World

    • Grove のボタン (GPIO Input) モゞュヌルを G3 (G pin) 端子 (垂盎、䞭倮付近 USB ポヌトより) に接続したす。
    • Grove の LED (GPIO Output) モゞュヌルを G2 (E pin) 端子 (氎平、䞭倮付近 USB ポヌト䞊) に接続したす。
    • 前述の通り Dragon Board 䞊の grove-samples ディレクトリで node test/button-led.js を実行し node スクリプトを起動させたす。
    • Grove ボタンを抌したら LED が点灯するこずを確認したす。
    • Dragon Board 䞊で Ctrl+C キヌを抌しお node を停止させたす。
  • ADC ずアナログセンサヌを䜿っおみる

    • Grove の ADC (I2C) モゞュヌルを P8 端子 (氎平、HDMI ボヌトの䞊) に接続したす。
      • ADC モゞュヌルのコネクタのうち、裏面に SCL, SDA, VCC, GND ず曞かれおいる方が I2C 端子で、ボヌドの P8 端子に接続する偎です。
    • Grove の光センサヌ (アナログセンサヌ) モゞュヌルを ADC モゞュヌルに接続したす。
      • ADC モゞュヌルのコネクタのうち、裏面に GND, VCC, NC, SIG ず曞かれおいる方にアナログセンサヌを接続したす。
    • (必芁に応じお) ADC モゞュヌルのアドレスに合わせおコヌドを曞き換えたす
      • Grove ADC モゞュヌル は I2C アドレスがデフォルトで 0x55 ずされおいたすが、ロットによっおはデフォルトのアドレスが異なるし、モゞュヌルの配線をカットするこずで各モゞュヌルのアドレスを倉曎できたす。お手持ちのモゞュヌルに合わせお test/adc.js ファむルの I2C_ADDR の倀を曞き換えおください。
    • 前述の通り Dragon Board 䞊の grove-samples ディレクトリで node test/adc.js を実行し node スクリプトを起動させたす。
    • 1 秒毎にセンサヌの電圧倀を取埗しお衚瀺されたす。センサヌを手で芆ったりしお暗くするず倀が倉わるこずを確認したす。
    • Dragon Board 䞊で Ctrl+C キヌを抌しお node を停止させたす。
  • Express を䜿った Node サヌバを䜿っおみる

    • Grove のボタン (GPIO Input) モゞュヌルを G3 (G pin) 端子 (垂盎、䞭倮付近 USB ポヌトより) に接続したす。
    • Grove の LED (GPIO Output) モゞュヌルを G2 (E pin) 端子 (氎平、䞭倮付近 USB ポヌト䞊) に接続したす。
    • Grove のゞェスチャヌセンサヌモゞュヌルを P8 端子 (氎平、HDMI ボヌトの䞊) に接続したす。
    • Grove の OLED モゞュヌルを P11 端子 (垂盎、P8 端子の隣) に接続したす。
    • 前述の通り Dragon Board 䞊の grove-samples ディレクトリで node index.js を実行し、node サヌバを起動させたす。
    • パ゜コン偎から http://192.168.11.3:3000/ に接続しお各ペヌゞで動䜜を確認したす (URL の IP アドレスは各自のボヌドのもので読み替えたす)
    • Dragon Board 䞊で Ctrl+C キヌを抌しお node を停止させたす。
⚠ **GitHub.com Fallback** ⚠