2020年3月11日水曜日

ラズパイ(IOT・62)

まずは、配線!基板にピンソケットを
はんだ付けします。
そして、ピンをラズパイに接続します。
プログラムとマイコンを接続する
インターフェースが充実してるのが
ラズパイの魅力のひとつでもありますね。

SDA(シリアルデータ)
SCL(シリアルクロック)
あとは、モーターの配線と
電源の配線を接続します。

2020年3月10日火曜日

ラズパイ(IOT・61)

これまでは、センサーを付けている場所での
測定であったりと、固定して作動させることが前提でしたが、
移動手段としてDCモーターを取り付けて
自由に動き回ることができるようにしてみたいと
思います。
まずは、モータードライバーの基板を
使えるようにしてみます。
基板には、DRV8830使用DCモータードライブキットを
利用してみます。

2020年3月9日月曜日

新しい機器について(色々・5)

テレビって色々な機器を接続しますよね~。
最近はほとんどがHDMIの端子を利用するようになった事もあり、
HDDレコーダー・Nintendo Switch・AppleTV・Microsoft Xboxなど
テレビの本体についているHDMIの端子だけでは足りなくなってきて
しまいました。
そこで、HDMI切り替え機を試してみました。
購入の条件としては、
・見た目がかっこいい
・シンプル
・低電力(できれば、電源を別途使わない)
という感じから、ELECOM HDMI切り替え機をチョイスです。

本体もコンパクトで場合によっては、MicroUSBによる
電源供給も可能で(今のところ外部電源は使わなくても利用できてます。)
選択されている機器のランプが柔らかく光る感じで、
邪魔になることもなく、丁度いい感じでした。

2020年3月6日金曜日

新しい機器について(色々・6)

Appleのワイヤレスヘッドホンもノイズキャンセリング機能付きなのが
出て気にはなっていたのですが、そのノイズキャンセリングが
如何程なのか試してみました。
サイズ的には、他の製品と比べても小型ですね。
ケースも持ち運びに負担がなく、Appleらしさを
感じられます。
そして、使ってみての実感としては、
周りの雑音・ざわざわ感が減る!といった感じです。
体から伝わる音もあるので、決して全てが消せるっという感じでは
ないのですが、雑音が消えた!っという感じでした。
でも、人の声とかは、そんなに消されているようにも
感じないので、消している周波数も調整されているような気がします。
初めての試したノイズキャンセリング製品でしたが、
面白いという印象でした~

2020年3月4日水曜日

ラズパイ(IOT・60)

Webの表示側に距離センサーから送られたデータが表示される
部分を追加します。
ここには、Socket.IOでリアルタイムに送られてきた
データが自動的に表示されるようにします。

  <ul id="messages"></ul>
  <form id="message_form" action="#">
    <input id="input_msg" autocomplete="off" /><button>Send</button>
    <input type="button" value="距離計測" onclick="sendGetDistance();" />
  </form>
  <script>
    var socketio = io();
    $(function(){
      $('#message_form').submit(function() {
        socketio.emit('message', $('#input_msg').val());
        $('#input_msg').val('');
        return false;
      });
      
      // メッセージを取得した場合
      socketio.on('message', function(msg) {
        $('#messages').append($('<li>').text(msg));
      });
      
      // 距離を取得した場合
      socketio.on('rec_distance', function(dat) {
        $('#messages').append($('<li>').text(
          dat.distance1 + 'mm ' + dat.distance2 + 'mm ' + dat.distance3 + 'mm ' + dat.distance4 + 'mm'
        ));
      });
    });
    
    function sendGetDistance() {
      socketio.emit('get_distance', '');
    }
  </script>

2020年3月3日火曜日

ラズパイ(IOT・59)

これでNode.jsとPythonをつないで連携がとれるように
なりましたので、この前接続できたレーザー距離センサーを
接続して、リアルタイムに距離が通知できるように
してみます。

まず、Node側のプログラムを拡張して、センサーからの
値を配信できるようにコマンドを増やします。

io.on('connection', function(socket) {
  // 距離計測開始を依頼
  socket.on('get_distance', function(msg) {
    console.log('get_distance: ' + msg);
    io.emit('get_distance', msg);
  });
  
  // 距離計測結果を受信
  socket.on('rec_distance', function(msg) {
    console.log('rec_distance: ' + msg);
    io.emit('rec_distance', msg);
  });

2020年3月2日月曜日

ラズパイ(IOT・58)

前回、Socket.IOの接続先サーバー用プログラムが
できたので、Python側からSocket.IOに接続するための
プログラムを作成します。

node_client.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import socketio

sio = socketio.Client()

@sio.event
def connect():
    print('connection established')

@sio.event
def my_message(data):
    print('message received with ', data)
    sio.emit('my response', {'response': 'my response'})

@sio.event
def disconnect():
    print('disconnected from server')

@sio.on('message')
def on_message(data):
    print('I received a message! ' + data)
    if (data == 'aaa'):
      sio.emit('my message', {'response': 'my response'})
      sio.emit('message', 'response')

sio.connect('http://localhost:3000')
sio.wait()