2018年5月21日月曜日

Vcc、Vee、Vbb、Vdd、Vss、Vgg、V+、V-、GND、の違いとは?

トランジスタの歴史的な経緯により、異なる表記になったようです。
とりあえず Vcc、Vdd は入力電圧。
Vee、Vss は出力電圧ないしは GND と思っておけば OK と思われます。(すごいマサカリ飛んできそうですがw)

具体的には回路の内部構造が TTL なのか CMOS なのかによって使い分けられているようです。

TTL なら
Vcc:コレクター
Vee:エミッター
Vbb:ベース

CMOS なら
Vdd:ドレイン
Vss:ソース
Vgg:ゲート

ってことらしいよ。
でも TTL と CMOS が混在している回路も増えてきて、人類の見通しの甘さを露呈しているらしいよw

2018年5月2日水曜日

Arduino の使い方(初心者向け)2018年版

Arduino 互換ボードを買ったので自分用の初心者向け基礎知識な備忘録。
いつものごとく間違っていることも自信満々に書いてるぞ☆
[書き始め2018年5月/飽きるまで随時更新]

以下、Arduino UNO 互換ボードと NANO 互換ボードでの話だよ。
Arduino は、いろいろな種類があって特にハード面ではかなり異なるので、しっかり確認してから使う。(電源とか)

Arduino とは?

マイコンの動作に必要なものをボードにまとめたもの。
つまりマイコンを簡単に使えるようにしたもの。
Arduino の種類によって乗っているマイコンが異なり、当然仕様や機能なども変わってくる。
ハード自体がオープンソースなので、色々と派生したり亜種があったりする。

ちな、Raspberry Pi とは違って OS はない。

スケッチ?

プログラムのこと。

便利なサイト

Web Editor とかある。

Tinkercad Circuits

ブレッドボード図(回路図)作成から、シミュレーション、スケッチ作成までできるちょっと凄すぎる Web サービス。
Fritzing ほど部品はないけど、基本的なものは揃っているし、なによりシミュレーションできるのが助かりすぎる!
提供元は 3DCG ソフトウェアで有名な Autodesk 。要 Chrome か Firefox。

Circuit Simulator Applet
Webブラウザ上で動く回路シミュレータ。
ちょっと癖のある使い勝手だけど、ショートカットキーを覚えるとすごく早く回路が組める。
Arduino に繋ぐ回路のテストに便利。

開発環境(IDE)

やっぱ今どきは Web IDE っしょ。
Arduino Create
互換ボードでもOK。
【要確認】Arduino 以外のマイコンは、Libraries で検索して Favorites からzipダウンロードして Custom に上げれば使えるっぽい?

電源

電源スイッチはない。PC じゃないから電ブチOK。

UNO

動作電圧:5V
DCジャックの入力電圧(推奨):7-12V

給電は USB から DCジャックから VIN ピンからのいずれか。
ただし VIN は直でマイコンにつながっているので、5V 以外繋いだらイカン。(5.5V くらいまでらしいよ)

NANO

動作電圧:5V
VIN の入力電圧(推奨):7-12V

給電は USB から VIN から 5V ピンからのいずれか。
UNO とは異なり VIN はレギュレータに繋がっているので、7~12V を繋げられる。
また、5V ピンからも給電できるが、これは安定した 5V を繋げる必要がある。

(アナログ・デジタル)I/O ピン

I / Oピンあたりの扱える推奨DC電流は 20mA まで。
いくつかのピンをまとめて出力 150mA 入力 100mA の制限もあるけど、1ピン 20mA を制限としていれば問題ない。はず。(さすがに 10 本のピンで 20mA 出したら壊れるそうです;)

5Vピンは200mA。
3.3Vピンは50mA。

PWM 出力ができるのは、UNO の場合はボードに~が描かれているピンのみ。
NANO の場合は D3,D5,D6,D9,D10,D11 ピンが対応。
アナログ出力(PWM)のためにデジタルピンを使うという点がややこい。

13番のピン

13番は内蔵 LED と連動している。
プログラムの定数「LED_BUILTIN」がこれ。

UNO と NANO のマイコン

ATmega328P
スケッチ済みのマイコンを Arduino から取り外してブレッドボード上で動作させるなんてことも可能。
まぁ互換ボードは殆どマイコン取り外せないけどなw
よく商品説明とか名称に「SMD」とか書いてあるけど、それは表面実装(Surface Mount Device)されてるから(結果的に)マイコン取れないぞってことらしいよ。

マイコンのタイマー

割り込みとは?

SPI、I2Cとは?

どちらもシリアル通信の規格。
マスター(親機・Arduinoなど)とスレーブ(子機・センサーなど)の通信に利用される。
SPI は線が多くなるけど比較的高速に通信できる。
I2C は線は少なくて済むけど比較的低速な通信になる、といった違いがある。
どちらも複数のデバイスを接続できる。
デバイスの電源電圧に注意。

2018年4月11日水曜日

Stencyl 3.4.0 での HTML5 書き出しについて

Flash 死亡とともに、どうも Stencyl も衰退しつつあるようですが、実験的とは言え HTML5 書き出しもできるようなのでテストしてみました。

テスト環境は以下のとおりです。
  • Windows 8.1 64bit
  • Stencyl 3.4.0 (Build 9300)
まずいきなり Test Game はできるのに HTML5 での Pubilish が
「Encountered errors while building your game.」
などと表示されて失敗する現象に遭遇。

シーンを作っただけのゲームでも発生するので、初っ端から絶望モードですが、思い切って Stencyl を再インストールしたら、このエラーは発生しなくなりました。
ただし、単に再インストールするだけではなく事前に
C:\Users\{ユーザー名}\AppData\Roaming\Stencyl
を削除またはリネームしておく必要がありました。

なお、そのフォルダ内の
stencylworks\games
にはゲームデータが入っているので、再インストールして作成された同フォルダにコピーすれば、引き続き利用できます。
先の書き出せなかったゲームも新環境では書き出せたので、このフォルダ内の何かが悪さしていたのかなと思います。

ちなみに、そうしてインストールした Stencyl を立ち上げたら「パーミッションがないぞ」みたいなメッセージが出ましたが無視しても問題なく使えておりますw

HTML5での注意点

  • IE11 では動かない。(Edge は未確認)
  • Sound ファイルは ogg を要求される。
  • iPhone では音が出ない。(Android は OK)
  • Setting の項目は WEB っぽい
  • Setting の Scale Mode は無視されるっぽい
  • Setting の Start In Full Screen? をチェックすると動かない
PCの Chrome と FireFox そして Android の Chrome では問題なし。

SWF 向けに作ったものを HTML5 で書き出し直したアホなゲーム

いずれもスマホでは画面サイズとかタップとかの関係で遊べません。

分かりにくいけどタイトル画面で既に商品並び替えできますんで。

概ね問題なし。

ドワーフに捕まった時のシーンリロードで Blur Out が機能していない。
他の効果では問題なかったけど、あえてそのままにしています。

あれ?結構いけるじゃないですか。
スマホ向けゲームもちゃんと意識して作ればいける気がします。
まぁミニゲームばかりなので、もっと大規模なゲームだとなにか問題が出るかもしれませんが、いつまでも実験段階なのは何が問題なのでしょうか。
購入者専用フォーラムとか見たら書いてあるのかなー。

しかし告知通り2017年中に HTML5 対応が完了していればワンチャンあったのではないかと思うだけに残念でなりません。

2018年1月26日金曜日

Raspberry Pi の純正カメラモジュール(v2)を Motion で利用する方法

そもそも Motion の公式ドキュメントにやり方は書いてあります。

https://motion-project.github.io/motion_config.html#Basic_Setup_PiCam

Motion で純正カメラモジュール(Piカメラ Official V2)を利用したい場合は

sudo apt-get install motion

で Motion をインストールした後

sudo modprobe bcm2835-v4l2

で bcm2835-v4l2 モジュールをインストールすればOK。

もちろん「Raspberry Pi の設定」で「インターフェイス」の「カメラ」は有効にしておきましょう。

引き続き raspistill コマンドなんかも Motion が動いていないときであれば利用できます。

motion の設定方法や使い方も、まずは公式ドキュメントをご覧になることをおすすめします。

https://motion-project.github.io/motion_guide.html

ブラウザ上で確認しながら設定変更する方法なんかもあります。(ちょっと野暮ったいですが…)

2018年1月5日金曜日

Microbit の稼働時間(ミリ秒)があんまり正確ではない問題

Microbit で時計やタイマーやストップウォッチを作ってみたくなるのは誰しもが通る道かと思いますが、いざ「稼働時間(ミリ秒)」や「一時停止(ミリ秒)」を使ってやってみると、全然正確ではないことがわかります。

まず試しに、このような3分タイマーを作ってみました。
タイマー開始と終了時にニャンキャットが流れます。
エディターでみる
シミュレーター上では特に問題ないのですが、実機で動かして実際のストップウォッチで計ってみると、だいたい3分1秒くらいで音がなります。
これを10分にしてみると、だいたい10分3秒くらいに音がなりました。
どうやら1分間で約0.3秒ほど遅れるようです。

まぁ数秒のズレならまだ良いのですが、そもそも私は1時間毎にお知らせするタイマーを作りたかったので、これでは1時間18秒毎にお知らせするタイマーになってしまいます。
(2時間後には36秒もズレるわけです)

ただ、何度試しても結果が大きく変わることはなかったので、ある程度正確に「遅れている」ようです。
つまりこの遅れ分、早めてあげればもう少し精度が上げられそうです。

ということで、60 - 0.3 = 59.7 = 59700ミリ秒を1分としてカウントするタイマーを作ってみました。
エディターでみる
上記のとは変数「分」の使い方が変わっている点に注意w

今度は開始は「ピコーン!」でアラームを「ニャンキャット」にしました。
また、簡素化のためグラフ表示は無しw

これで3分程度ならば、気にならないレベルになりました。

しかし、1時間で試してみたところ、まだ数秒ズレが発生してしまいます。
しかも困ったことに試す度に微妙に結果が異なるようになってしまいました。
流石にこのレベルになると、電源や気温、個体差などによって変化してしまうのかもしれません。

私の環境では、59690ミリ秒を1分とすることで、1時間あたりの誤差を1秒以下にすることができました。
そのあたりは環境に合わせ、みなさん調整してみてください。

おしまい。

2017年12月27日水曜日

Azure の Web App Bot(Bot Framework)の Teams チャンネルが繋がらない場合の対処法

なんかバグらしいですよw(2017年12月現在)
https://stackoverflow.com/questions/tagged/microsoft-teams

Azure の Bot Framework (Web App Bot とか Bot Channels Registration とか Functions Bot とか)を Microsoft Teams チャンネルと接続してもサーバーにメッセージが送られないという問題があります。

で、どうすればいいかというと、なんと!
  1. Microsoft Teams チャンネルを追加する前に Skype チャンネルを追加します!
  2. それからMicrosoft Teams チャンネルを追加!
  3. すると動くwww
もし先に Teams チャンネルを追加してしまっている場合は、Skype 追加してから Teams 消すと動きます。(私の環境では消しただけで動きました超意味不明w)


早く修正されるといいなー。お試しあれ。

2017年12月20日水曜日

microbit にネジをつけると色々捗る

micro:bit の大きな GPIO 端子にはバナナクリップやワニクリップを繋ぐことができますが、何度もガシガシしてると傷ついてしまいそうで心配になります。
そこで、Kitronik の電源ボードを参考に、GPIO 端子にネジ(ボルト)を付けてみたところ、すごく便利だったので記事にしてみました。

なお、この記事は microbit Advent Calendar 2017 の21日に参加しています。

作り方

まず、以下のものを用意します。
※写真のスペーサーは 10mm です;
  • 皿ネジ×5個:サイズ M3、長さ 5mm
  • スペーサー(オネジ・メネジ)×5個:サイズ M3、長さ 5mm
  • ナット×5個:サイズ M3
通電させたいので、いずれも素材は黄銅(真鍮)、メッキはニッケルのものが良いです。
ネジは皿です。なべネジだと隣接する端子に接触してしまう恐れがあります。
画像内の「お菓子の箱の紙」は絶縁用に用意したものですが、お金に余裕のある人は素直に絶縁ワッシャーを用意すべきだと思います。(でも後記の理由により要らないかも)

で、それらをこんな感じに取り付けます。
※しつこいようですがこのスペーサーは 10mm です;
ネジ・micro:bit・絶縁体・スペーサー・ナット、という順番です。
ちなみに、こちらの記事によると micro:bit の裏側の GPIO 端子(っぽいもの)はどこにも繋がっていないらしいので、そもそも絶縁する必要もないかもしれません…未確認ですが…(^o^;)

さて、これらを取り付けるだけで、なんと micro:bit が!
※既にご承知の通り 10mm です
立ちます!(爆)

LED も見やすくなるし、操作もしやすくなるので個人的にはこれだけでもやる価値はあると思います。まじで。
ただし、うっかり鉄板などの上に置くとショートするのでご注意くださいw
ちなみに写真のように 10mm のスペーサーを利用すると、より安定します(>▽<)b

そして当初の目的通り、心置きなくワニれます。
ネジ山は気にしない派
さらにナットで足を挟めば……
足はかぎ状にすると良い
ブレッドボードに刺せれて、これまた便利!
しかも立つ!
さらにさらに、ユニバーサル基板をなんやかんやすることでオリジナルの電源ボードなんかも付けることができます!ヽ(=´▽`=)ノ
せっかくなので圧電サウンダとブザーとLEDも付けた
コンパクトかつコードレスなので持ち運びやすくなって、超絶便利です。
こういった使い方をする場合、スペーサーの長さを 5mm にすることがポイントです。
皆さんお待ちかね 5mm の写真です
写真では私の無計画な半田付けがそれを台無しにしていますが、5mm スペーサーだと基盤がうまいこと電源用コネクターに乗っかって、安定することが分かるかと思います。

このオリジナル電源ボードの作り方も、いつか記事にしたいと思います。

おわりに…

ネジとかナットってホームセンターとかだと100個単位とかでしか売ってなくて全然安くないし、そもそも鉄ユニクロとかしかなかったりするので、電子部品屋さんで買ったほうが良かったりしますよねー。

初めてアキバの西川電子部品さんで買ったんですが、「全部で60円!」とか言われたときはなんか申し訳ない気持ちになりましたw

おしまい!