目次
- はじめに
- 機能概要
- 実装コード
- 感想と反省点
はじめに
◆飲み会で、周囲の人のグラスが空いていたら、「何か飲まれますか?」と聞いて飲み物を注文せねばならぬ。
◆俺はただ、ビールが飲みたいんだ!飲む物は決まってるんだから注文せずにズッて持ってこいや!
って思うこと、ありませんか?
少なくとも、私は常々思ってます。
なので、空いたグラスをドッと置いたらビールがズッと来るデバイスを作れないだろうかと思って、実際に作りました。
また、居酒屋にあると嬉しい(主に私が)ので、養老乃瀧ハッカソン2019で発表してきました。
機能概要
3.飲む!
実装コード
'use strict';
// Obniz用定数
var Obniz = require('obniz');
var obniz = new Obniz('yourObnizNumber');
var obniz2 = new Obniz('yourObnizNumber');
var stringWeight;
// Obniz関数
obniz.onconnect = async function ()
{
obniz.display.clear();
// ロードセル
var hcsr04 = obniz.wired("hx711", { gnd: 0, dout: 1, sck: 2, vcc: 3 });
while (true)
{
hcsr04.offset = 88815;
hcsr04.scale = 88925;
var val = await hcsr04.getValueWait(1);
stringWeight = Math.abs(roundFloat(val, 4) * 10000);
console.log(Math.abs(roundFloat(val, 4) * 10000));
await obniz.wait(10);
if (Number.isInteger(stringWeight) == false)
{
hcsr04.powerDown();
obniz.close();
};
}
function roundFloat(number, n)
{
var _pow = Math.pow(10, n);
return Math.round(number * _pow) / _pow;
}
}
obniz2.onconnect = async function ()
{
obniz2.display.clear();
// ソレノイド
var solenoid = obniz2.wired('Solenoid', { gnd: 0, signal: 1 });
await obniz2.wait(3000);
if (obniz.connectionState == 'closed')
{
solenoid.on();
await obniz2.wait(3000);
solenoid.off();
obniz2.close();
}
}
感想と反省点
実際に作ったとき、これは賞とれるだろ!と思ったのですが、取れませんでした。
原因を自分なりに考えた時、養老乃瀧ハッカソン2019のテーマが「皆が笑顔になる」ことがメインだったようで、それとはちょっと合わなかったのかなと。
また、ほかの作品たちがインパクトありまくりで、印象に残らなかったというのもあったのかなと。ぶっちゃけ自分の作品地味だし
ただ、結構悔しかったので、リメイクしてリベンジしたいと思ってます。
改善案としては、コースターを光らせたり、なにか音を出したりすることを考えてます。
なお、個性的な作品たちの詳細は、以下サイトをチェックだ!
・protopedia
※タグ検索で 'yorohack2019' を入力してね!