2020年4月21日火曜日

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

MacMiniのSSDを換装してみました。
前のモデルですが、容量を増やせばまだ色々つかえます。
FusionDriveモデルでしたので、2.5インチ側を2TBで増強です。
まずは、交換するSSD。サムソンの2TBを利用します。


特殊ねじが利用されているので、事前にツール類を用意してました。

分解していきます。
小さいスペース内を有効に使われるのが分かります。

もとあったHDDのフレームへSSDをのせかえます。

完了です。これで仮想マシンを複数設置してもラクラク運用可能です。
手間はかかりましたが、現役復活でまだまだ使えそうです。

2020年4月13日月曜日

ラズパイ(IOT・78)

実際に接続して起動してみます。
走行の操作と同時にカメラでとらえた
動画がリアルタイムに配信され、表示すること
が確認できました。

多少、動画が遅れるときもありますが、
ご愛敬ということで

2020年4月6日月曜日

ラズパイ(IOT・77)

カメラの画像は、コントローラーの背面において
操作の邪魔にならないようにするのと、画像をより
広く見えるようにしたいと思います。
動画の撮影には今回 pistreamingを利用してますので、
iframeに表示させてます。
このiframeの上に、divを重ねてコントローラーを設置してます。
上下に重ねる場合、なかなか苦労しますが、以下のような
感じで配置完了です。

<style>
.console_panel {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 z-index: 1;
}
</style>

  <div class="console_panel">
    ...
  </div>
  
  <iframe class="img_view" src="http://192.168.1.26:8082/index.html" width="100%" scrolling="no" frameborder="no" style="position: absolute; z-index:0;" />

2020年4月3日金曜日

ラズパイ(IOT・76)

動画を見ながら走行の操作できるように、カメラを繋げてみます。
動画の遅延は、低遅延でないと動作に支障がでますので、
node.jsを使った画像配信のものを利用します。
まず、接続です。
本体のカメラ専用のコネクタに接続して起動させます。

2020年4月1日水曜日

ラズパイ(IOT・74)

jQueryアナログパッドプラグインをラズパイ上で動作できるように
Webサーバーに設置し、node.jsと連携してみたいと思います。
今回追加するjQueryアナログパッドのjsとcssファイルを
組み込みます。

まず、node側
  socket.on('set_motor', function(msg) {
    console.log('set_motor: ' + msg);
    io.emit('set_motor', msg);
  });

ページ側
  setInterval(function() {
    var input1 = _analogpad1.input();
    var x1 = input1.x;
    var y1 = input1.y;
    var input2 = _analogpad2.input();
    var x2 = input2.x;
    var y2 = input2.y;
    if (_x1 != x1 || _y1 != y1 || _x2 != x2 || _y2 != y2) {
      _x1 = x1;
      _y1 = y1;
      _x2 = x2;
      _y2 = y2;
      $('#x1').val(_x1);
      $('#y1').val(_y1);
      $('#x2').val(_x2);
      $('#y2').val(_y2);
      socketio.emit('set_motor', { "x1": _x1, "y1": _y1, "x2": _x2, "y2": _y2 });
    }
  }, 50)

Python側もnodeに接続して制御します
    @sio.on('set_motor')
    def on_set_motor(data):
        print('I received a set_motor x1: ' + str(data['x1']) + ' y1: ' + str(data['y1']) + \
            ' x2: ' + str(data['x2']) + ' y2: ' + str(data['y2']))
        
        if (data['y1'] > 0.1):
            i2c.write_byte_data(adr0, 0, 0b10100101)
        elif (data['y1'] < 0.1):
            i2c.write_byte_data(adr0, 0, 0b10100110)
        else:
            i2c.write_byte_data(adr0, 0, 0b110100)
        
        if (data['y1'] == 0):
            i2c.write_byte_data(adr0, 0, 0b110100)
        
        if (data['y2'] > 0.1):
            i2c.write_byte_data(adr1, 0, 0b10100101)
        elif (data['y2'] < 0.1):
            i2c.write_byte_data(adr1, 0, 0b10100110)
        else:
            i2c.write_byte_data(adr1, 0, 0b110100)
        
        if (data['y2'] == 0):
            i2c.write_byte_data(adr1, 0, 0b110100)

2020年3月31日火曜日

ラズパイ(IOT・73)

前回、電源をGPIOポートから取れるようにしました。
接続して起動は可能です。
動作も可能です。
ですが、電力不足の注意ランプが表示されてしまいました。
今回、モーターの電力も使っているので、
その分の影響も出てしまったようです。
そこで、モバイルバッテリーについている
2つ目のプラグから電源を取得して起動できるように
接続してみます。
そこで、コネクタが飛び出さないように、
スリムケーブルを購入してみました。

2020年3月30日月曜日

ラズパイ(IOT・72)

USB電源を直接GPIOに接続してみます
この電源用マイクロUSBコネクタDIP化キットを使うと
USBの電源を2つに分岐して使えるようになります。

ついでに、背面に乗せていたモバイルバッテリーですが、
本体に入るように内部のフレームを若干削って、
スッキリ収まるに調整してみました。