見出し画像

腕立ての回数、まだ自分で数えてるの?AIと作った「スマホが勝手に数えてくれる」魔法のツールが凄すぎた! ※プロンプト付 ※プログラム付

正直に言います。自分の数える「10回」が、もう信じられません
気合を入れて始めたはずの宅トレ。でも、5回を過ぎたあたりから腕はプルプル、頭の中は「あと何回だっけ…?」でいっぱい。
結局、キツくなると自分に甘えて「さっきのが10回目だったはず!」なんて、都合のいいカウントダウンを始めちゃう。
そんな自分にガッカリして、結局三日坊主。重たい鉄のような絶望感と、だらしないお腹を抱えて「明日から本気出す」と呟く夜。…そんな不毛なループ、もう終わりにしませんか?

絶望からの大逆転!AI相棒と「最強の目」を開発してみた
「アプリを入れるのは面倒。でも、正確に数えたい!」
そんなワガママな願いを叶えるべく、私は最強のAI、Geminiに泣きつきました。
最初はスマホのセンサーを使おうとしたけれど、iPhoneのガードが固すぎて断念。でもそこで諦めないのが僕らです。
「インカメラで自分の動きを追いかければいいじゃん!」という逆転の発想から、Safariのブックマークをポチッとするだけで動き出す、自作の「腕立てカウンター」が誕生したんです!

見よ、この8x6のモザイク!これぞ未来のトレーニング
完成したのは、自分をカクカクの「白黒モザイク」に変えちゃう不思議な画面。
床に置いたスマホの前に顔が近づくと、画面が真っ黒に染まって、巨大な数字が「ドン!」とカウントアップ!
• 縦8x横6のブロックが、私の動きを逃さずキャッチ
• 「どれくらい暗くなったか」を数値でリアルタイム判定
• カウントした瞬間に数字がピカッと緑に光る快感
• ズルできないように設定した1.5秒の絶妙なインターバル
スマホの画面の中で、モザイクになった自分が一生懸命上下している。その姿はまるで、昔懐かしいドット絵のゲームキャラみたいで、なんだか愛着が湧いてくるんです。

汗とデジタルが混ざり合う!最高の「シズル感」を味わえ
実際にやってみると、これがもう、めちゃくちゃ楽しい!
腕の筋肉が熱くなって、床にポタポタと落ちる汗。鼻をくすぐるフローリングの匂い。
そんな泥臭いトレーニングが、デジタルな「ピコーン!」という反応ひとつで、最高のエンターテインメントに変わります。
自分で数えるストレスから解放されて、ただ「画面を黒く染める」ことだけに集中する。
15回、20回…。「あともう1回、モザイクを動かしたい!」そんなゲーム感覚が、止まっていた私の体を突き動かしました。

これが「自分専用」のハック術!注目ワードまとめ
今回のDIY開発で、トレーニングの常識がちょっとだけ変わりました。
• アプリ不要!Safariのブックマークだけで即起動
• プライバシーも安心!超低解像度の白黒解析
• 部屋の明るさに合わせて「感度」を自由自在に微調整
• 1.5秒のウェイトが作る、自分だけの完璧なリズム
• AIと一緒に、不便を「遊び」に変えてしまう知的なワクワク


<使用イメージ>


以上いかがでしたでしょうか?
もし共感したら、コメントやスキを押してくれると励みになります。

この記事が少しでもお役に立てたら、今後の活動の励みになりますので、チップいただけると嬉しいです!
なお、チップは全て地元NPOへ寄付させていただきます。

#宅トレ #ダイエット記録 #JavaScript #ライフハック #AIと共作 #筋トレ初心者 #モチベーション維持 #プログラミング #iPhone活用術 #未来の日常

javascript:(function(){const v=document.createElement('video'),c=document.createElement('canvas'),d=document.createElement('div');let n=0,w=false;Object.assign(d.style,{position:'fixed',top:0,left:0,width:'100%',height:'100%',backgroundColor:'#000',zIndex:1e5,color:'#fff',textAlign:'center',fontFamily:'sans-serif',display:'flex',flexDirection:'column',justifyContent:'center',alignItems:'center'});const x=document.createElement('div');x.style.fontSize='120px';x.innerText=n;const row=document.createElement('div');row.style.marginBottom='15px';row.style.display='flex';row.style.alignItems='center';const b=(t,f)=>{const e=document.createElement('button');e.innerText=t;Object.assign(e.style,{margin:'0 5px',padding:'8px 12px',fontSize:'16px',borderRadius:'8px',minWidth:'50px'});e.onclick=f;return e};const rs=b('RST',()=>{n=0;x.innerText=n});const ed=b('END',()=>{if(v.srcObject)v.srcObject.getTracks().forEach(s=>s.stop());d.remove()});const inp=document.createElement('input');inp.type='number';inp.value=40;Object.assign(inp.style,{width:'45px',fontSize:'18px',textAlign:'center',margin:'0 5px',borderRadius:'5px',border:'none',height:'35px'});row.append(rs,inp,ed);c.style.width='80%';c.style.imageRendering='pixelated';c.style.transform='scaleX(-1)';d.append(x,row,c);document.body.appendChild(d);navigator.mediaDevices.getUserMedia({video:{facingMode:'user'}}).then(s=>{v.srcObject=s;v.play();const h=c.getContext('2d');setInterval(()=>{if(v.paused||w)return;c.width=6;c.height=8;h.drawImage(v,0,0,6,8);const i=h.getImageData(0,0,6,8);const a=i.data;let b=0;for(let j=0;j<a.length;j+=4){const f=(a[j]+a[j+1]+a[j+2])/3<90?0:255;a[j]=a[j+1]=a[j+2]=f;if(f===0)b++}h.putImageData(i,0,0);if((b/48*100)>parseInt(inp.value)){n++;x.innerText=n;x.style.color='#0f0';w=true;setTimeout(()=>{w=false;x.style.color='#fff'},1500)}},100)})})();


<参考プロンプト>
(1) iPhoneのSafariのブックマークレットで、近接センサーを使って腕立て伏せで、顔が近づいたらカウントする様なブックマークレットは作れますか?

(2) やはりそうなんですね。とりあえずまたの機会にします。

(3) ちなみに加速度センサーの値はブックマークレットから取得出来ますか?

(4) ただし、進捗具合を見ながら計測出来るわけでもなさそうですね。

(5) とりあえずカメラ画像で、映り込んでいる画像の変化率で判定してカウントするブックマークレットを作ってください。圧縮形式でお願いします。

(6) 2秒でいいです。

(7) 検知する変化率はスライダーで調整出来る様にしてください。

(8) 終了ボタン、カウンターリセットボタンを付けてください。また、閾値の設定は数値を上下ボタンで操作できる様にして、デフォルトを6にしてください。

(9) 1.5秒にしてください

(10) 表示画像をモザイク調にして白黒明暗にして、その白黒の数量の割合で判断する様な仕組みに出来ますか?今のままだと、何が判断に影響しているのか分かりづらいです。

(11) モザイクのメッシュは縦8x横6にして下さい。

(12) コードサイズが大きくなりすぎた様で表示されません。判定値はとりあえず手入力にして、ボタンは無くして構いません。

(13) 動きはいい感じです。サイズ的にギリギリかも知れませんが、カウンターリセットと終了ボタンを英略語で付けてください。

(14) RSTとXボタンは並べて、メッシュ画像の表示位置を中央にしてください。

(15) いい感じです。変化率の入力を数値で入れられる様にしてください

(16) ボタン等の配置をRST、閾値入力枠、終了として、終了はENDにしてください

(17) 上記のやりとりを元にして、腕立て伏せの実際の動きでカウントするブックマークレットを作れないかをGeminiと思案して、JavaScriptから呼び出せてスマホを前にしてカウント出来る方法として、インカメを使った画像の変化でとりあえずカウントするブックマークレットを作って、コツは要るけどなんとなく使える感触を得たというストーリーで、次の点を考慮してnote向けの記事を書いてください。
①noteで注目を集めるキーワードを織り交ぜる。
②冒頭に共感を誘うような強めのネガティブ要素もしっかり入れる。
③総じて「共感→問題提起→解決策→感動」の構成とする。
④五感を刺激する「シズル」を織り込む。
⑤身近なものや日常のことに例えること。
⑥各項目のタイトルは共感を呼ぶ刺激的な内容にする。
⑦記事のタイトルは失敗したけど解決出来た風で共感が持てて検索に掛かり易く、また4U法則を交えたものにする。
⑧表になる内容は、表は使わず箇条書きにする。
⑨ 記事の内容に沿うように、SEOに強いワードを入れてください。
⑩ 絵文字や特殊記号は使わないでください。 

記事が終わった後に下記の#文末テキストを挿入してください。

後、noteでヒットしそうな記事内容と関連したハッシュタグも作ってください。

#文末テキスト
以上いかがでしたでしょうか?
もし共感したら、コメントやスキを押してくれると励みになります。

この記事が少しでもお役に立てたら、今後の活動の励みになりますので、チップいただけると嬉しいです!
なお、チップは全て地元NPOへ寄付させていただきます。

(18) もっとカジュアルで陽気な感じの文体にしてください。

いいなと思ったら応援しよう!

アラ還AIプログラマ ここまで読んでくださり、ありがとうございます。 静岡生まれの還暦オヤジ、「とりあえずやってみる」を合言葉に記事を書いています。 もし「ちょっと応援してやるか」と思っていただけたら、チップで励ましてもらえると次の“やってみる”の力になります😊