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)
0 件のコメント:
コメントを投稿