2018/07/31

rmx 電波式リモコン #1



 Kodi 用のリモコン制御システム rmx の赤外線を、2.4GHzの無線に置き換えたものを実験中。使っていない機能も削除、リレーも HDD制御3+主電源1の4chに変更。シフト入力として、ボタンの数を倍にする機能があったが、送信側でいじれるので、これも不要。rmx 赤外線版とは、別物になってしまうのは仕方ないな。

 手元に電源が確保できるなら、色々出来そうだが、それならば ESP8266 でやればいいので、シンプルに省電力な送信モジュールにするべきかと。実際の入力インターフェイスは後回しにして、とりあえず、赤外線入力で受け取ったコードを無線で転送する形にした。

 ざっとテストした感じでは、遅れるような感じはしないし、普通に使えそう。後は、電波式のメリットがあるかどうかと、電池駆動で使えるレベルなのかだ。


追記 2018-08-08

 送信ユニットの電池化。赤外線リモコンと合体させると無線化される。ソケットなしでハンダすれば、もう少し小さく作れる。リモコンの電池から電源を取ればスッキリするが、ダメならコンパクトなリチウムを使うか。とりあえず、どのぐらい電流消費するのか調べたい。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

2018/07/14

ATmega8 のスリープ&復帰

 ATmega8 の、スリープ&復帰の試み。省電力動作には欠かせない。
参考リンク
 Atmel ATmega8 データシート
 Arduino Playground - ArduinoSleepCode スリープ&復帰のソース

 スリープは問題ないが、そこから再始動、つまり動作の復帰をさせるためには、割り込みを使う。ATmega8 にも、INT0 と INT1 があるので、スリープ中に、このピンに信号を送れば目覚めさせる事ができる。
プルアップ回路

 スリープ中に、タクトスイッチを押すと復帰する。pinMode(interruptPin, INPUT_PULLUP); の指定で、内部の抵抗を使ってくれるらしい。

プルダウン回路

 青い部品が、振動センサ。プルアップ回路のタクトスイッチを、振動センサに交換しただけでは動かない。テスタで振動センサ単体の導電を調べてみると、通常時はON、振動があるとOFFになる仕様のようだ。つまり、普通のスイッチとは、オン・オフが逆になるのが、置き換えてもダメな理由。

 で、写真のように VCC-INT0間に、振動センサ。INT0-GND間には、抵抗をつけたプルダウン回路とする。スリープ中に振動を感知すると復帰する。

2018/07/10

Real Arcade VF 改 #4


 元は、3ボタン+スタートだけだったのを、6ボタン+特殊2ボタン+スタート&セレクト+ホットキー用4ボタンの計14ボタン仕様に。天板は、2mmのアクリル板を切り出した。この機種は、天板下に筐体のサポートがあるので、柔らかいアクリルでも大丈夫。といっても、薄いと加工時に割れやすくなる。

 一般の仕様と違うのは、24mmボタンを使っていること(普通は、30mm)。せっかく小さなボタンなのだから、もう少しピッチを狭めるべきだったかも。

 乗っ取り基板は、ナイロン袋にいれておく。

 連射オンオフのスライドスイッチを、横着してホットボンドで固定したら干渉してしまって動きがいまいち。あまり使わないとは思うが、ダメそうならここは作り直さないといけない。

 同時押しを、7、8番の特殊ボタンに割り当てる。2つ同時押しならともかく、3つ同時押しとか難しいじゃん。ヘッダになっているので、ジャンパケーブルで自由に設定できる。

 とりあえず、使えるようになって良かった。そもそもゲームキューブ(Wii)用のアーケードスティック自体が、あまり出回ってない。このHORIの兄弟機があったようだが、今となっては手に入らない。ちなみに、Wii 用は、本体ではなく、リモコンに接続するタイプなんで論外。

2018/07/07

ATmega8(DIP)マイコンを試す


 ついに、裸のマイコンにまで手を出した。電池で動かす省電力っぽいのを作りたい。

 基板付きは、色々と使ってきたが、DIP型のマイコンは初めて。USBtinyISP と avrdude で、ちまちまコマンドを入力していたが、何気に、Arduino IDE から普通に書き込めることが判明。プログラム的には、ATmega386P のしょぼい版。ピン以外も、微妙にちがうのか、同じプログラムが動かなかったりする。

 ボードマネージャに、このURLを指定して追加すれば、ATmega8 も選択可能に。

 よく考えたら、Pro Mini の方がコンパクトだな、薄いし、小さいし。それほど、安いわけでもないし、見た目のカッコよさ?だけだな。Arduino というか、電子部品全体の値段があがっている。なんでだろ。

2018/06/29

ロム吸い出し機にカセット差込ガイドを追加



 スロット脇に、カセットの凹みに合わせた木製ブロックを追加。差し込むだけでぴったり位置決めできるようになった。無理やりくっ付けたので汚いが、ぐらつきも無くなって一石二鳥。

 スロットをハンダ付けする前なら、カセットに刺して、裏から隙間を埋める工作が簡単に出来るので、キレイに仕上げられると思う。ブロックじゃなくて、アルミ板をコの字に曲げたものでもいいかも。

 そもそも、スーファミ実機か、スーファミ用のスロットを見つけてくれば良かったのかもしれない。でも、フルサイズのスロットは、シールド基板に収まらずに、ハミダシそう。いっそ、ケーブル式にしたほうが、スマートかな。いや、でも Arduino と合体したほうがカッコいいじゃない。



 スーパーゲームボーイ改の変換アダプタもスーファミ・カセットと同じサイズだから、こちらもピッタリ。ついでに軽量化した。スーファミよりも、ゲームボーイのカートリッジの端子面が小さいので、酸化の影響が大きい気がする。ふうふう吹いて差しなおすと認識するとか。

2018/06/25

YouTube Data API (v3) 下調べ #6


 アクティブにしたウィンドウを取り込むようにした。chrome 上のライブも、他アプリと同様に呼び込めるので、埋め込みブラウザっぽくみえる。

2018/06/23

Real Arcade VF 改 #3


 使うか分からないが、一応、連射基板も作っておく。LED をつないで、GCコントローラの電源を借りてテスト。可変抵抗に合わせて、それっぽく点滅している。

 前に、クラコン用のを作ったはずなのに、すっかり忘れてる。コンデンサが、はみ出してるし。計算ソフトは、作っておいて正解だった。

LMC555 タイマーIC 計算ソフト 抵抗、コンデンサ値を入力して連射/秒を計算

2018/06/19

Real Arcade VF 改 #2

 乗っ取りに使うゲームキューブ・コントローラの基板。バラすには、Y字ドライバが必要。MITSUMI の 23-0899D と書いてある。ネットで見かけたのとは、微妙に違っていた。

 アナログ部品は、使わないので、ハンダを吸い取って外す。必要なのは、デジタルなボタン入力のみ。ボタンの所の黒い導電部分を削って配線する。ハンダ付け後、ホットボンドで外れないよう補強。

 ピンヘッダを付けた後、wii に接続してテスト。各ボタンピンと、GNDピンをショートさせて、反応しているか確認する。


追記 2018-06-20

 Wii 用と言っても、Wii で遊ぶゲームは無いわけで、ゲームキューブは、素のコントローラか、Wii リモコン経由のクラコン。この改造コントローラは、主に RetroArch で使うことになる。ホットキーの割り当て用に、アナログスティックを一つ有効にした。


追記 2018-06-23

 アナログスティックのケースへの取り付けが難しいようなので、スティック2つ分から、4本分の信号を取り、ボタンに接続できるようにした。

2018/06/17

Real Arcade VF 改 #1


 セガサターン用のHORI製コントローラ。レバーが何気にいい感じだったので、ついつい買ってしまった。wii で使えるよう改造するつもりなので、即分解。筐体とレバーとスタートボタンは、そのまま使えそう。

 分解には、+ドライバー、星型?ドライバー。後は、ボタンが基板に直接つけられているので、ハンダコテと、吸い取りすっぽん。吸い取る時は、一度新たにハンダを足してから吸うと、キレイに取れる。

 wii 用といっても、より使い勝手のいいゲームキューブ・ポートに接続するタイプをつくる。基板は、GCコントローラを乗っ取ればいいので、難しくはない。大変なのは、ボタンを乗せる天板の工作だな。

2018/05/30

YouTube Data API (v3) 下調べ #5


 
 配信モードと、閲覧モード。OBS でウィンドウを指定すれば、そのままフォーム内容を配信できる。

 みくみくまうすを召喚してみた。コメントを読ませるつもりは無くて、横にいるだけ。全く意味は無い(笑)。

 自前で、MMD描画の実装が出来れば、色々な事が出来そうではある。ま、無理だな。コメビュ作成の何倍も難しい。

 この右のスペースには、何か実用的な機能を盛り込みたい。



追記 2018-06-10

 配信補助機能として、お絵かき、ブラウザ、みくみくまうす。ブラウザは、CEF。ファイルごちゃごちゃで、実装がそもそも美しくない。最新のはエラーで動かないし。

 3つとも却下だな。バーチャルユーチューバー向けなら 3tene(ミテネ)ってのもあるが、いずれにしろ、MMD は、規約が色々とあって面倒くさそうだ。


追記 2018-06-11

 よく考えたら自前の中途半端なのを実装するよりも、好きなアプリを呼べるようにしておけばいいだけだな。ペイントだろうが、ブラウザだろうが、ウィンドウさえあればいいわけで。

2018/05/26

Gameboy Macro (DS Lite 改) #5

 結局、塗装というか、下地作りに失敗したので、仕上げ塗装せずに、諦めて使えるよう組み立てた。すでに新たなジャンク DS Lite は手に入れているので、時間があればパテ埋めから、やり直すつもり。



 初音ミクっぽい青緑色(タミヤのコーラルブルー)は、黒ボタンと合ってて良い。現行の Nintendo Switch もオレンジと、この色の組み合わせかな。裏側は、濃いグレー(Mr.カラーのネービーブルー)。

 カラースプレーは、100均にもあるが、クサすぎて体に悪そうなので、クレオスか、タミヤのプラモ用をオススメします。



 吸い出したロムは、Goomba Colorを使ってGBA 形式に変換後、SuperCard のツールで、メモリーカードに転送。SuperCard の同時押しは、無改造だと厳しい。

2018/05/17

YouTube Data API (v3) 下調べ #4

 Youtube のAPIを使うソフトウェアを動かすには、「クライアント ID」と「クライアント シークレット」の2つが必要。以下、両コードの記録されたファイルのダウンロードまでの手順をまとめておく。基本的には、YouTube Data API の概要 の手順通り実行すればいい。当然、Google アカウントを予め取得しておくこと。

 Google Developers Console の API のページで設定する。取得するコードはもちろん、操作もGoogle アカウントに全てヒモ付けされているので、他人にコードを渡したり、悪いことに使ったりしたら大変なことになるので、その辺を理解できていないユーザは、利用してはいけない。API の利用が有料な部分もあるので、おっちょこちょいな人は十分注意して操作すること。
新規プロジェクト作成

利用する API の有効化



OAuth の認証情報を作成

 OAuth クライアント ID → その他 を選択


 同意画面で、メールアドレスとサービス名を入力
コードの記録された JSONファイルをダウンロード

 作成した名前をクリックして、開いたページの上部メニューのダウンロード・リンクから JSONファイルを保存する。

2018/05/12

Lazarus 1.8.2


 1.6.4 から、最新の 32 bit版 1.8.2 に入れ直した。特別何か変わった感じはしない。メニューアイコンが違うくらいか。旧Delphi 風インターフェイスは、圧倒的に使いやすい。弱点は、悲しいまでの参考資料の無さ。

 新規の使い捨てプログラムは、Delphi 5。ユニコードを扱うなら、Lazarus。きちんとした新規プログラムは、Delphi 10.1 で。ま、似て非なるものなんで、どれかに統一とか、もはや無理。

2018/05/10

YouTube Data API (v3) 下調べ #3


 コメビュっぽく動くようになった。進捗60%くらいか。後は、書き込みテスト用に、自分でテスト放送しながら、試さないとダメか。YouTube のAPI実験用のサンプル放送してくれればいいのに、気が利かないな。API説明ページの日本語化も中途半端だし。

 API で使うアクセストークンてのは、1時間で期限切れになるんだね。なんで止まっちゃうのか、謎だったんだが、今頃気づいた。

 1万人越えのライブだと、アイコン画像の読み込みが間に合わない。画像読み込みスレッドを多重化すればいいのか。というか、そもそも、コメント数量的に、配信主は読み切れないよな。


追記 2018-05-12

 フォーム最上部の、チャンネルを登録しているリストと、そのチャンネルで放送している番組のリスト。この2つは、Lazarus の コンボボックス(TComboBox)を使っていたが、ドロップメニューが勝手に閉じるようになってしまって使い物にならない。数日前は、平気だったから、スレッド化が影響を与えていると思われる。

 解決方法が分からず、前のプログラムでは、コンボボックス風のフォームを表示してごまかしていたが、今回は、TComboBoxEx っていうのを初めて使ってみた。今ひとつ使い方が分かっていないが、こちらは、勝手に閉じるようなこともない。

2018/05/03

YouTube Data API (v3) 下調べ #2


 コメントビューアの最低限の通信処理はできた。後は、書き込み処理部分つくって、見やすいようセル表示にすればいい。ふわっちコメビュの通信部を入れ替えるよりも、新規で作ったほうが早いような気がするなぁ。


追記 2018-05-05
 コメントの書き込みが出来ない。どうやるんだ? これだから、マイナー言語は辛い。最近の言語は、みんなライブラリ化が進んでいて、参考にすらならない。とりあえず、セル表示になった。

2018/04/16

YouTube Data API (v3) 下調べ #1


 人気のライブは、すんごい勢いで、コメント流れてるなw。

 YouTube Live 用コメビュが、作成可能なのかチェック中。ネットの情報を参考にしつつ、ライブ動画の、チャットデータを取り出す部分を、Lazarus でプログラム。きちんとした API があるので、出来そうな気はする。

 OAuth の認証部分は、ツイキャス用を途中まで作業していたので、それが使えそう。デスクトップアプリなのに、ブラウザ使って認証ってのは、どうも馬鹿みたいなんだが、もっとスマートに出来る方法は無いのか。

 認証がうまくいくと、アクセストークンがもらえる。コレと、VideoId を使って、LiveChatId を引っ張ってくる。後は、その LiveChatId を指定してコメントを取り出す。ここで、更新のためのポーリング時間が指定されているのだが、5秒とか、とても使えないような間隔が指定されている。リアルタイムっぽく処理するには、それを無視しないとダメ。でも、それをやると、API のリクエスト数の制限に引っかかるかも? コメント自体は、API を使わずに取得するのが現実的か。

YouTube Data API (v3)
 OAuth 2.0 認証の実装
 API Reference


追記 2018-04-19
 API を使わずとも、とれないこともない。ダメなときはこちらで。普通にスクレイピングしても、データは、結局 JSON形式だしな。