Deep Insider の Tutor コーナー
>>  Deep Insider は本サイトからスピンオフした姉妹サイトです。よろしく! 
.NET対応組み込みデバイス「Netduino」入門(13)

.NET対応組み込みデバイス「Netduino」入門(13)

MESHとNetduinoでiOSデバイスとの連携を実現

2015年11月9日

SONYのスマートDIYキット「MESH」とは? さまざまな連携が実現可能なMESHを使って、NetduinoとiPadを連携をさせてみよう。

Microsoft MVP for Windows Development 初音 玲
  • このエントリーをはてなブックマークに追加

 今回は、SONYのスマートDIYキットMESHを使って、NetduinoとiPadを連携させてみたいと思う。

 MESHは、2015年1月にクラウドファンディングの「Indiegogo」で資金調達して開発されたドミノ牌に似た「タグ」と呼ばれるブロックを、iPadアプリを使ってBLE(Bluetooth Low Energy)で連携させて動作させることができる新しいタイプのDIYキットだ。MESHの特徴は、タグ間の連携だけではなく、iPad/iPhone上の音声ファイルの再生やカメラでの写真撮影、さらにIFTTTのレシピでWebサービスとも連携できる点だ。

MESHタグについて

 MESHは、MESHタグ(図1)とMESHアプリ(旧名称:MESH Canvasアプリ)から構成されている。

図1 MESHタグ

 MESHタグは、入力用のセンサータグと出力用のアクチュエータータグがある(表1)。

タグ用途
Buttonタグ ボタン(センサー)
LEDタグ フルカラーLED(アクチュエーター)
Moveタグ 加速度センサー
GPIOタグ デジタルおよびアナログの入出力スイッチ(アクチュエーター)
Motionタグ 人感センサー
Brightnessタグ 照度センサー
Temperature & Humidityタグ 温湿度センサー
表1 MESHタグ一覧

 最初の4つは初期発売のタグで、MESH Bundle 4としてセット販売も行われているMESHの基本的なタグになる。

MESH Button タグ

 MESH Buttonタグは、ボタンが押されたとき(Pressed)、長押しされたとき(Hold)、ダブルクリックされたときに(Double)、ONの信号が送信されるセンサータグだ。どの操作のときにONになるかは、MESHアプリのCanvas上で設定できる。

図2 MESH Buttonタグの設定

MESH LED タグ

 MESH LEDタグは、ON信号によりLEDを光らせるアクチュエータータグだ。光らせ方としては、点灯(Light Up)、蛍のような明滅(Firefly)、点滅(Blink)、消灯(Off)がある。

図3 MESH LEDタグの設定

 MESH LEDタグのLEDはフルカラーLEDなので、[Color]で13色から光るときの色を選択でき、明るさ(Brightness)、点灯時間(Duration (sec))も設定できる。また、[Firefly]や[Blink]のときは明滅間隔(Cycle)も指定できる。

MESH Move タグ

 MESH Moveタグは、加速度センサーが内蔵されていて振ったとき(Shake)、裏返したとき(Flip)、叩いたとき(Tap)、面を変えたときに(Orientation)、ONの信号が送信されるセンサータグだ。どの操作のときにONになるかは、MESHアプリのCanvas上で設定できる(図4)。

図4 MESH Moveタグの設定

 操作だけではなく、どれくらいの強さで操作したらON信号を出力するかも[Sensitivity]で指定できる。何度も操作してベストな値を導き出せるかが、MESH Moveタグをうまく使えるかのキーポイントになる。

MESH GPIO タグ

 MESH GPIOタグは他のMESHタグと異なり、単体では何もできないMESHタグだ。その代り、3.3V出力(VOut Supply)、デジタル入力(Digital In)、デジタル出力(Digital Out)、アナログ入力(Analog In)、PWM出力(PWM Out)が可能なので(図5)、電子工作との入出力とMESHワールドを橋渡しする万能MESHタグとも言える。本稿のサンプルでも Netduinoとの接続には、このMESH GPIOタグを使用する。

図5 MESH GPIOタグの設定

 MESH GPIOタグには、次の10ピンが備わっている(図6)。

  • 3.3V出力(VOut Supply)×1
  • デジタル入力(Digital In)×3
  • デジタル出力(Digital Out)×3
  • アナログ入力(Analog In)×1
  • PWM出力(PWM Out)×1
  • GND×1
図6 MESH GPIOタグ

10本のピンの位置は、図12で説明する。

MESH Motion タグ

 MESH Motionタグは、タグの検知エリアで人や動物を検知したとき(Detected)、検知しなかったとき(Undetected)、その両方で(Check Motion)、ONの信号が送信されるセンサータグだ。どの操作のときにONになるかは、MESHアプリのCanvas上で設定できる(図7)。

図7 MESH Motionタグの設定

 人や動物の検知は、センサーの前を周囲よりも温度差のある物体が横切ることで行われる。距離は計測していないので、近づいたり遠ざかったりするだけでは検知できない。

MESH Brightness タグ

 MESH Brightnessタグは、タグの周囲の明るさが変化したとき(Changed)、物が近づいたとき(Get Near)、近くから物が離れたとき(Get NotNear)、指定した明るさだったとき(Check Brightness)、近くに物があるとき(Check Near)、近くに物がないときに(Check NotNear)、ONの信号が送信されるセンサータグだ。どの操作のときにONになるかは、MESHアプリのCanvas上で設定できる(図8)。

MESH Brightnessタグの設定
図8 MESH Brightnessタグの設定

 なお、近くに物があるかどうかの判定には、赤外線センサーが使用されている。

MESH Temperature & Humidity タグ

 MESH Temperature & Humidityタグは、指定した範囲内の温度になったとき(Temp Changed)、指定した範囲内の湿度になったとき(Humid Changed)、指定した範囲の温度だったとき(Check Temp)、指定した範囲の湿度だったときに(Check Humid)、ONの信号が送信されるセンサータグだ。どの操作のときにONになるかは、MESHアプリのCanvas上で設定できる(図9)。

図9 MESH Temperature & Humidityタグの設定

MESHアプリについて

 MESHアプリ(無料)は、Canvas画面(図10)上でMESHタグなどを配置して、そのタグ同士をつなぎ合わせるためのアプリだ。なお、配置・接続したCanvas内容はレシピ(Recipe)と呼ばれる。

図10 MESHアプリのCanvas画面

 Canvas画面を使用するうえでの基礎知識を説明しておこう。

 Canvas上に配置するMESHタグは、いったんペアリング(Bluetooth)する必要がある。ペアリングが成功すると、タグリスト(=iPadの場合は画面右上)にそのMESHタグが表示される。

 Canvas上でのMESHタグは、センサータグなら右側に半円マークがあって、その部分をドラッグ&ドロップで伸ばしてアクチュエータータグの左側にカチッとはめることができる(図11)。このように接続しておくと、センサータグが設定した操作と条件を満たすときに、接続先のアクチュエータータグへONの信号が出てそのタグが動作する。

 また、単純に1本の線でつなぐだけではなく、例えば、1つのセンサータグから2つのアクチュエータータグに接続を分岐して並列動作させたり、2つのセンサータグが同時に条件を満たしたときにONにしたいときは2つのセンサータグから1つのアクチュエータータグにつなげたりと、直感的な関係性を描くことができる(図11)。

図11 MESHアプリのCanvas上での定義例

 Canvas画面で配置できるのはMESHタグだけではない。図11にあるようにiPad*1のマイク/カメラなどをセンサータグ/アクチュエータータグとして配置することもできる。こうすることで、iPadのマイクやカメラと連携が可能になる。

  • *1 MESH Canvasアプリが初めて登場した当時は、iOS 8.0以降を搭載したiPad(第3世代)以降またはiPad mini以降が必要であったため、少しだけ敷居が高かった。しかしつい最近の2015年10月22日に公開されたMESHアプリのバージョン1.3.0で、iPhoneiPod Touchにも対応し、その動作環境の敷居は一気に下がりつつある。

 Canvas上のMESHタグは、物理的なタグと1対1には対応していない。そこで複数の動作(以下、タスク)を割り当てたいときは、画面右上から同じMESHタグを何個もドラッグ&ドロップでCanvas上に配置して、それぞれに別の動作を割り当てることも可能だ。例えば、閾値(いきち)を別にしたiPadマイクタグを2つ置いて、小さい音のときと大きな音のときで別々のアクチュエータータグにつないでおけば、音の大小により動作を変えることも可能である。

【動画】音量によりMESH LEDタグの色を変える例

GPIO 3.3V出力(VOut Supply)について

 GPIOタグの3.3V出力は、3.3V 100mAの電力供給が可能だ。試しに、Moveタグを振ると3.3Vが供給され、Buttonタグを押すと供給が止まるようにし、テスターにつないでその動作を確認してみよう。

 まずは、1枚の新規レシピのCanvas上にGPIOタグを2つ配置して、ONのタスクOFFのタスクを設定する。電力供給を使うには、GPIOタグの[VOut Supply]を設定する必要があるが、これには図5が参考になるだろう。タグ項目の下の部分をタップすると、図12のようにそのタグの詳細な設定内容を確認・変更できる。

図12 VOut Supplyの設定内容

 次にMoveタグはONのタスクに、ButtonタグはOFFのタスクにつなぐ(図13)。

図13 VOut Supplyレシピ例(ON/OFF用に別々のタスクを設定する)

 レシピが完成したら、GPIOタグの1番ピンと5番ピンにコネクター付きコードを差し込み、それぞれテストのプラスとGNDに接続する(図14)。

図14 VOut Supply 接続例

 これでMoveタグをシェイクすると3.3V、Buttonタグをプッシュすると0Vに下がるのが確認できる。

【動画】GPIOタグ VOut Supplyサンプル

GPIOデジタル入力(Digital In)について

 GPIOタグの2番ピン~4番ピンがデジタル入力ピンだ(図15)。データシートによれば、デジタル入力は、GPIOに入力する電圧がHigh(2.1~3.0V)とLow(0~0.9V)の間で変化することによりGPIOタグからトリガーが発行される。変化の方向がHighLowなのかLowHighなのかも指定できる。

図15 Digital In設定画面

 Netduinoのデジタル出力はHigh 3.3V、Low 0Vなので、Highのときに0.3VほどMESH側の入力値仕様をオーバーするが、データシートには注釈として「絶対最大定格 -0.3V~3.3V」とあるので特に対策は不要のようだ。

Digital InとNetduinoの接続(Netduinoデジタル出力→デジタル入力)

 Netduinoのデジタル13番ピンとGPIOタグの2番ピン、NetduinoのGNDピンとGPIOタグの5番ピンを接続する。

図16 Digital In配線例
図17 Digital In接続例(実写真)

Digital Inのレシピ

 MESHアプリを立ち上げて、GPIOタグに対してOUTPUTでiPadから音を流すようにレシピを作成する。具体的には図18のようになる。

図18 Digital Inレシピ例

MESHデジタル入力確認用ソースコード

 GPIOタグのデジタル入力に対になるのはNetduinoのデジタル出力だ。GPIOタグにデータを送るためのコードを作成する。

 プロジェクトの作成方法は、これまでと同様なので割愛する(第3回などを参考にされたい。本稿の例では、プロジェクト名はVB.NET用は「MeshDigitalInVB」、C#用は「MeshDigitalInCS」とした)。もし、Visual Studio 2015をお使いの場合は番外コラム01も参照にしてほしい。

Visual Basic
Imports System.Threading
Imports Microsoft.SPOT.Hardware
Imports SecretLabs.NETMF.Hardware.Netduino

Namespace MeshDigitalInVB
  Public Module Module1
    Private Digital1 As OutputPort = New OutputPort(Pins.GPIO_PIN_D13, False)

    Sub Main()
      Dim flag = False
      Do While (True)
        flag = Not flag
        Digital1.Write(flag)
        Thread.Sleep(1000)
      Loop
    End Sub
  End Module
End Namespace
C#
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
using System.Threading;

namespace MeshDigitalInCS
{
  public class Program
  {
    private static OutputPort Digital1 = new OutputPort(Pins.GPIO_PIN_D13, false);
    public static void Main()
    {
      var flag = false;
      while (true)
      {
        flag = !flag;
        Digital1.Write(flag);
        Thread.Sleep(1000);
      }
    }
  }
}
リスト1 デジタル出力用コード(上:Program.vb、下:Program.cs)より抜粋

 準備ができたら動かしてみよう。一定間隔でiPadから音が鳴るはずだ。

【動画】GPIOタグ Digital Inサンプル

GPIOデジタル出力(Digital Out)について

 GPIOタグの6番ピン~8番ピンがデジタル出力ピンだ(図19)。データシートによれば、デジタル出力は、GPIOタグへのトリガーによりHigh(2.7~3.0V)とLow(0~0.3V)の間で出力電圧が変化する。

図19 Digital Out設定画面

Digital OutとNetduinoの接続(デジタル出力→Netduinoデジタル入力)

 Netduinoのデジタル13番ピンはプログラムコードによりデジタル出力とデジタル入力が選択できるので、ここでもデジタル13番ピンとGPIOタグの6番ピン、NetduinoのGNDピンとGPIOタグの5番ピンを接続する。

Digital Out配線例
図20 Digital Out配線例
図21 Digital Out接続例(実写真)

Digital Outのレシピ

 MESHアプリを立ち上げて、MoveタグのシェイクでGPIOタグのデジタルOutがONになるようにレシピを作成する。また、トグルを挟むことで、ONの状態でシェイクするとOFFになるレシピも加えておく。

図22 Digital Outレシピ例

MESHデジタル出力確認用ソースコード

 GPIOタグのデジタル出力と対になるのはNetduinoのデジタル入力だ。GPIOタグからデータを取得するためのコードを作成する。

 本稿の例では、プロジェクト名はVB.NET用は「MeshDigitalOutVB」、C#用は「MeshDigitalOutCS」とした。

Visual Basic
Imports System.Threading
Imports Microsoft.SPOT.Hardware
Imports SecretLabs.NETMF.Hardware.Netduino

Namespace MeshDigitalOutVB
  Public Module Module1
    Private Din As InputPort = New InputPort(Pins.GPIO_PIN_D13, False, Port.ResistorMode.Disabled)
    Private Led As OutputPort = New OutputPort(Pins.ONBOARD_LED, False)
    Sub Main()
      Do While (True)
        Dim flag = Din.Read()
        Led.Write(flag)
        Thread.Sleep(1000)
      Loop
    End Sub
  End Module
End Namespace
C#
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
using System.Threading;

namespace MeshDigitalOutCS
{
  public class Program
  {
    private static InputPort Din = new InputPort(Pins.GPIO_PIN_D13, false, Port.ResistorMode.Disabled);
    private static OutputPort Led = new OutputPort(Pins.ONBOARD_LED, false);
    public static void Main()
    {
      while (true)
      {
        var flag = Din.Read();
        Led.Write(flag);
        Thread.Sleep(1000);
      }
    }
  }
}
リスト2 デジタル入力用コード(上:Program.vb、下:Program.cs)より抜粋

 準備ができたら動かしてみよう。MoveタグをシェイクするたびにNetduinoボード上のLEDがON/OFFする。

【動画】GPIOタグ Digital Outサンプル

GPIOアナログ入力(Analog In)について

 GPIOタグの9番ピンがアナログ入力ピンだ(図23)。データシートによれば、アナログ入力は0.0~3.0Vを0.05V刻みで閾値を設定できる。すなわち、0.05V単位で指定した閾値を上から下にまたいだのか(Below→Above)/下から上にまたいだのか(Above→Below)によりGPIOタグが次のタグを叩くように指定できる。

図23 Analog In設定画面

Analog InとNetduinoの接続(Netduino I2C→DA変換→アナログ入力)

 Netduinoはアナログ出力を持っていない。PWM出力を使って試したところGPIOタグのアナログ入力では3.3Vとして認識され、10msごとにON/OFFを繰り返す入力元になってしまい、延々とトリガーを送出するという事態になってしまった。感心したのは、そのような短い周期でもiPadまでは信号を送れるくらいに遅延しながらも追従しており、しばらくトリガーが発生し続けたことだ。このような使い方で何かできるかもしれないが、素直にアナログ値をGPIOタグに送りたいので、I2C接続でアナログ出力できるMCP4725 12bit D/Aコンバーターを使ってPWMではないアナログ値の電圧(この表現も少し変だが)を作り上げる(MCP4725の説明は割愛。基板上にピンの内容が記載されている)。

 NetduinoのSCLピンとMCP4725のSCLピン、NetduinoのSDAピンとMCP4725のSDAピンを接続し、3.3VピンはMCP4725の+V(VDD)ピン、GNDはMCP4725のGNDピンに接続する。またI2Cアドレスとして0x60を使うので、MCP4725のA0ピンもGNDに接続する。VDDに5Vではなく3.3VとしたのはMESHの入力上限が3.3Vだからだ。これでMCP4725への入力側の配線は完了だ。

 MCP4725出力側は、MCP4725のVOUTピンとGPIOタグの9番ピン、NetduinoのGNDピンとGPIOタグの5番ピンを接続する。

 以上の配線を行うと、図24・図25のようになる。

図24 Analog In配線例
図25 Analog In接続例

Analog Inのレシピ

 MESHアプリを立ち上げて、1.0V、2.0V、2.5Vで別の音がなるようにレシピを作成する。

図26 Analog Inレシピ例

MESHアナログ入力確認用ソースコード

 GPIOタグのアナログ入力に対応できるアナログ出力がNetduinoにはないので、I2C接続したD/Aコンバーターと接続する。NetduinoではD/Aコンバーターを制御するためのコードを作成する。

 MCP4725はI2C接続でコマンドを投げることにより+V(VDD)ピンに入力した電圧から指定された電圧を取り出す。

図27 MCP4725コマンド

 電圧指定は12bitのDAC Register Dataで指定し、04096の値を入力すると、次の計算式の電圧が出力される。

出力電圧=VDD×指定値/4096

出力電圧=VDD×指定値/4096

 I2C用クラスについては、第5回で作成したI2C用クラスのWriteメソッドをPrivateからPublicに変更して使用する。

 MCP4725用クラスについては、出力をパーセンテージで指定すると、内部的に対4096比に変化して2バイト化して送信する。

 本稿の例では、サンプルコードのプロジェクト名は、はVB.NET用は「MeshAnalogInVB」、C#用は「MeshAnalogInCS」とした。

Visual Basic
Imports System
Imports System.Threading

Namespace MeshAnalogInVB
  Friend Class MCP4725
    Inherits I2CLib

    Public Sub New()
      MyBase.New(&H60, 100, 500)
      Thread.Sleep(40)  ' 40ms待つ
    End Sub

    Public Sub FastModeWrite(value As UInteger)
      Dim reg = 4096 * value / 100                   ' 1
      Dim byteReg = BitConverter.GetBytes(reg)       ' 2
      Me.Write(New Byte() {byteReg(1), byteReg(0)})  ' 3
    End Sub
  End Class
End Namespace
C#
using System;
using System.Threading;

namespace MeshAnalogInCS
{
  internal class MCP4725Lib : I2CLib
  {

    public MCP4725Lib()
      : base(0x60, 100, 500)
    {
      Thread.Sleep(40);  // 40ms待つ
    }

    public void FastModeWrite(uint value)
    {
      var reg = 4096 * value / 100;                      // 1
      var byteReg = BitConverter.GetBytes(reg);          // 2
      this.Write(new byte[] { byteReg[1], byteReg[0] });  // 3
    }
  }
}
リスト3 アナログ出力用コード(上:MCP4725Lib.vb、下:MCP4725Lib.cs)より抜粋

出力をパーセンテージ(=引数value)で指定すると、内部的に対4096比に変化して2バイト化して送信する。

  • 1対4096比を計算。
  • 2数値からバイト配列に変換(最下位バイトが1番目、最上位バイトが4番目になる)。
  • 32byte分をI2CでMCP7425へ送信。

 これを実行すると、次の動画のように毎秒10%ずつ出力電圧が上がっていき、1.0Vに達すると1つの音、続いて2.0Vで2つの音、2.5Vで3つの音が鳴る。

【動画】GPIOタグ Analog Inサンプル

GPIO PWM出力(PWM Out)について

 GPIOタグの10番ピンがPWM出力ピンだ(図28)。データシートによれば、PWM出力はHighが2.7~3.0V、Lowが0.0~0.3V、パルスの周波数は125Hz=8ミリ秒周期となっている。

 MESHアプリの設定画面ではDuty比、つまりパルス周期の中で何パーセントをHighにするかを指定できる。

図28 PWM Out設定画面

PWM OutとNetduinoの接続

 発光ダイオードのように、PWM出力そのもので電圧を変化させたときと同じように振る舞えるものもある。Netduinoのアナログ入力を確認したところ、PWM出力直結では3V固定値相当のアナログ値固定であった。このような場合、周波数電圧変換いわゆるFV変換回路を使ってPWM出力の変化を電圧に変換すると、パルスではなく中間の電圧としてアナログ入力に入力することも可能だ。

 今回もFV変換回路で問題を解決してもよかったが、パルスの変化をNetduinoのアナログ回路で確認してみることにした。とはいえ、そのまま直結では少しつまらないのでGPIOタグにMESH GPIOタグ用モータードライバーを取り付けてアナログ出力を実現して、それをNetduinoのアナログ入力に接続してみた(図29、図30)。

図29 PWM Out配線例
図30 PWM Out接続例(実写真)

PWM Outのレシピ

 MESHアプリを立ち上げて、Moveタグを使って、Moveタグを置く方向に応じてPWM出力のDuty比が変化するレシピを作成する(図31)。MESH GPIOタグ用モータードライバーを使う場合、PWM出力に加えて、VOut出力を常時ONにしておくことも忘れないようにする。

図31 PWM Outレシピ例

MESHアナログ出力確認用ソースコード

 GPIOタグのアナログ出力と対になるのはNetduinoのアナログ入力だ。GPIOタグからデータを取得するためのコードを作成する。

 本稿の例では、プロジェクト名はVB.NET用は「MeshAnalogOutVB」、C#用は「MeshAnalogOutCS」とした。

Visual Basic
Imports System.Threading
Imports Microsoft.SPOT
Imports SecretLabs.NETMF.Hardware
Imports SecretLabs.NETMF.Hardware.Netduino

Namespace MeshAnalogOutVB

  Public Module Module1
    Private In1 As New AnalogInput(Pins.GPIO_PIN_A0)
    Sub Main()
      In1.SetRange(0, 3000)

      Do While (True)
        Dim value = In1.Read()
        Debug.Print(value.ToString())
        Thread.Sleep(1000)
      Loop
    End Sub
  End Module
End Namespace
C#
using Microsoft.SPOT;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
using System.Threading;

namespace MeshAnalogOutCS
{
  public class Program
  {
    private static AnalogInput In1 = new AnalogInput(Pins.GPIO_PIN_A0);
    public static void Main()
    {
      In1.SetRange(0, 3000);
      while (true)
      {
        var value = In1.Read();
        Debug.Print(value.ToString());
        Thread.Sleep(100);
      }
    }
  }
}
リスト4 アナログ入力用コード(上:Program.vb、下:Program.cs)より抜粋

 これで、Moveタグを上向きに置けば常に0、横向きに置けば3000前後の値と0が一定間隔で交互に、縦向きに置けば常に3000前後の値が測定できるようなる。実際の実行結果(上向き→横向き→縦向き→横向き→上向き→横向き→縦向きの順で置いた場合)をグラフ化すると、図32のようになった。

図32 実行結果をグラフ化したもの

まとめ

 こんなに簡単に動きを設定できるMESHと合わせてNetduinoを使うのは魅力的であった。また、今回は触れなかったが、MESH SDKを使用してWebサービスなどをMESHタグとして定義してMESHアプリに登録して使うこともできる。

 MESHアプリの稼働環境も今はiPad/iPhone/iPod Touch版のみであるが、日米以外のタブレットシェアを考えると、将来的にはXperiaタブレット版のMESHアプリが出てくる可能性もあるだろう。Androidアプリが出てくれば、Windows Bridge for AndroidでWindowsタブレットでも動くようにもできる。あくまでも想像でしかないが、今のうちから情報を収集しておいて損はないだろう。

 次回は、I2C接続で16個のPWM出力ができるAdafruit I2C接続16チャンネル12ビットPWM/サーボシールドを使って複数のサーボモーター制御に挑戦する予定である。目標は稼働関節数(=サーボモーター数)18個のPLEN Dの制御だ。

※以下では、本稿の前後を合わせて5回分(第12回~第16回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

.NET対応組み込みデバイス「Netduino」入門(13)
12. Bluetoothで遠隔操作しよう

BluetoothでPCと連携し、電源もバッテリー給電とすることで、移動体などへの搭載も可能なコードレス仕様のDCモーター制御を実現してみよう。

.NET対応組み込みデバイス「Netduino」入門(13)
13. littleBitsではんだ付けなしの電子工作を実現

磁石で電子回路をつないで電子工作が行えるlittleBits。Netduinoと組み合わせると、どのような電子工作が実現できるのか? その可能性を探る。

.NET対応組み込みデバイス「Netduino」入門(13)
14. 【現在、表示中】≫ MESHとNetduinoでiOSデバイスとの連携を実現

SONYのスマートDIYキット「MESH」とは? さまざまな連携が実現可能なMESHを使って、NetduinoとiPadを連携をさせてみよう。

.NET対応組み込みデバイス「Netduino」入門(13)
15. Netduinoでロボットコントロール(前編) ― PLEN.Dを直接動かす

組み立て式のロボット「PLEN.D」に使われているサーボモーターを、NetduinoのPWM出力で制御してみよう。

.NET対応組み込みデバイス「Netduino」入門(13)
16. Netduinoでロボットコントロール(後編) ― 16個のサーボモーターを一度に制御する

連載最終回。前回に引き続き、Netduinoを使ってPLEN.Dを制御してみる。今回は16個のサーボモーターを制御できるボードを使って複雑なロボットの動きを実現する。

サイトからのお知らせ

Twitterでつぶやこう!