Open12

ヒーローズリーグ

よしだじゅんやよしだじゅんや

13時までにProtoPediaの登録とURLをDiscord登録
16時30分までにGather集合

■発表と審査
・5分のプレゼンテーションと、参加者プラスα

よしだじゅんやよしだじゅんや

■テーマ:業務を遊びに

日々のルーティン化している家事などを、もっと楽しく、もっと素敵に、もっと激しく。

よしだじゅんやよしだじゅんや

動画で遊びたいすね。→多分UXのイメージがつくことが大事

・僕めちゃくちゃ集中して仕事をしている
┗LINEくるもめっちゃ無視している
・彼女がイライラして製品を使う(LINE送る)
・僕のもとにめっちゃくる。光る
・僕が彼女にすぐ電話かける
→解決

よしだじゅんやよしだじゅんや

■アイデアタイトル
【業務】彼女の怒りを早急に鎮火。いや、むしろ怒りを遊びに転換したい。

はっきり言って、僕にとって「彼女の怒りの鎮火作業は業務」です、、、
■困りごと
・仕事中は基本的にプライベートの返信はしない。けど「怒り」に関しては、早急に対応しないと炎上する。
・とはいえ「テキスト」だけだと「感情」が見えなくて、怒ってんのかわからない(「察して」は「毒」)
EX:「ごみ出しといたよ」「今日何食べたい」等 日常に潜む怒り
→鎮火できずに夜に対応した時には手遅れになっている
→お互いに不仲になると、尚メッセージの確認が億劫になって返信が遅くなるの負のスパイラル

■このアイデアの推しポイント
◯問題解決(よしだ)
・「情報」じゃなくて「感情」を先出しして「怒り」を検知漏れを防げる
・「怒っている」テキストだけ確認できる(優先度を明確にして)対応できる(稼働削減)

◯問題解決(彼女)
・本人としても、すぐに返信が帰ってきて精神安定上よい

◯怒りを遊びに
・早押し形式にすることで、「怒り」を超早急に解決することができる
・ランキング出すことで「誠意」が伝わるし、会話を開始した時のアイスブレークになる
┗遊びを前出しして、対応前にある程度「鎮火」している状況を作れる

■実装イメージ
・LINE bot
┗メニューから、「ブチギレてます」を表明することができる→よしだ宅に物理的アラート
┗二人で、早押しをランキング形成で確認することができる(遊びに転換)

・obniz
┗よしだ宅のLEDディスプレイに「ぶちぎれてます!」を表示(時間経過とともに激しくギミック)
┗ボタンを設置。ディスプレイ表示から、ボタン押されるまでを計測→ランキング生成

よしだじゅんやよしだじゅんや

■アイデアタイトル
【業務】彼女の怒りを早急に鎮火。いや、むしろ怒りを遊びに転換したい。

はっきり言って、僕にとって「彼女の怒りの鎮火作業は業務」です、、、
■困りごと
・仕事中は基本的にプライベートの返信はしない。けど「怒り」に関しては、早急に対応しないと炎上する。
・とはいえ「テキスト」だけだと「感情」が見えなくて、怒ってんのかわからない(「察して」は「毒」)
EX:「ごみ出しといたよ」「今日何食べたい」等 日常に潜む怒り
→鎮火できずに夜に対応した時には手遅れになっている
→お互いに不仲になると、尚メッセージの確認が億劫になって返信が遅くなるの負のスパイラル

■このアイデアの推しポイント
◯問題解決(よしだ)
・「情報」じゃなくて「感情」を先出しして「怒り」を検知漏れを防げる
・「怒っている」テキストだけ確認できる(優先度を明確にして)対応できる(稼働削減)

◯問題解決(彼女)
・本人としても、すぐに返信が帰ってきて精神安定上よい

◯怒りを遊びに
・早押し形式にすることで、「怒り」を超早急に解決することができる
・ランキング出すことで「誠意」が伝わるし、会話を開始した時のアイスブレークになる
┗遊びを前出しして、対応前にある程度「鎮火」している状況を作れる

■実装イメージ
・LINE bot
┗メニューから、「ブチギレてます」を表明することができる→よしだ宅に物理的アラート
┗二人で、早押しをランキング形成で確認することができる(遊びに転換)

・obniz
┗よしだ宅のLEDディスプレイに「ぶちぎれてます!」を表示(時間経過とともに激しくギミック)
┗ボタンを設置。ディスプレイ表示から、ボタン押されるまでを計測→ランキング生成

よしだじゅんやよしだじゅんや

1、宇宙からおはよう
・NASAのAPIがあるのね
┗毎日更新されて説明つき

2、直言直行
・ディスプレイが2枚ないと、WEB通話しながらメモ残せないよね
┗文字起こし
┗感情(表情)
・LIFULLの感情分析とかあるのね
・キントーンにDBとしてコメント残す

3、俺の格言はよく忘れるみょうが

4、今日はこれ着ていきなさい
・便利すよね
5、チーズ星人ごっこ
・音声を「チ」オリジナルで持ってきているのすごいいい
6、エンジニアのための掛け声
・骨格の検出ができるのすごい
→体勢によって識別してコメントくれる(孤独にならないためという動機が良い)
7、リベンジ夜更かし
・リベンジ夜更かしの根本的な要因にリーチしているのが良い

8、アルコールとスクワット
・お酒のみながら、スクワットしたいって初めてニーズ聞いた
・猫を挟むのがいいなあ
・リターンも猫(猫の暴力感ある)

よしだじゅんやよしだじゅんや

joystickの入力問題

以下記事を参照
https://obniz.com/ja/sdk/parts/JoyStick/README.md

ボタンを押したら一回だけ反応するものを使いたかったが、ボタンを押しても反応しない
押しっぱなしの状態でコード動かすと反応するという謎挙動した
今回のプロダクトに使えないので、違うやつを利用

// Javascript Example
var joystick = obniz.wired("JoyStick", {gnd:4, sw:0, y:1, x:2, vcc:3});
var isPressed = await joystick.isPressedWait()
if(isPressed){
  console.log("PRESSED");
}

これを使った

// Javascript Example
var joystick = obniz.wired("JoyStick", {gnd:4, sw:0, y:1, x:2, vcc:3});
joystick.onchangesw = function(pressed){
  console.log(pressed);
};
よしだじゅんやよしだじゅんや

マトリクスLEDの描画

沖中さんのものを活用
https://protopedia.net/prototype/2636

repeatってなんぞや?という感じだったが、どうやらx++を動かして、表示文字を横に流すためのものだった。
なのでtextをリピートで流し続けてくれる訳ではない。アナログにテキストの中身を繰り返して対応した

obniz.repeat(async function() {

        ctx.fillStyle = "black";
        ctx.fillRect(0, 0, matrix.width, matrix.height);
        ctx.fillStyle = "white";
        ctx.font = "10px sans-serif";
        ctx.fillText("ブチギレチュウ ブチギレチュウ タダチニ スイッチオセ ブチギレチュウ ブチギレチュウ タダチニ スイッチオセ ブチギレチュウ ブチギレチュウ タダチニ スイッチオセ",x, 7);

        x--;
        
        matrix.draw(ctx);
        }, 1000 / 130);
よしだじゅんやよしだじゅんや

LINEのプッシュメッセージ送れない問題

handleeventの中で、プッシュメッセージを送ろうとすると、なぜかmatrixgo();が読み込まれない。
button(event,startTime);のようにボタン関数にeventを渡して、中でプッシュメッセージを実装すると動いた

const handleEvent = async (event) => {
    // テキストメッセージ以外を受信したときは何も行わずresolveを返す
    if (event.type !== 'message' || event.message.type !== 'text') {
        return Promise.resolve(null);
    }
    // テキストメッセージを受信したとき
    //「ブチギレてます」と言われたとき
    if (event.message.text === 'ブチギレてます') {
        // アラートかけますね!メッセージを「リプライ」で先に返す
        await client.replyMessage(event.replyToken, {
            type: 'text',
            text: 'よしだじゅんやにアラートをかけますね!!!'
        });
        //タイマーを計測開始
        const startTime = new Date();
        //ディスプレイとボタンを呼び出し
        await matrixgo();
        button(event,startTime);