mALEDが1個のとき前回と同じように計算を進めます。30個を直列につなぐとき同様に30個のとき。50個を直列につなぐときさらに50個のとき。V抵抗にかかる電圧が負の数になりました。50個が必要としている電圧が電源電圧よりも大きいということです。1個あたりにかかる電圧を考えると、100/50=2(V)となります。これはVF(=2.2V)よりも低いので、LEDは光らないということになります。しても50個のLEDを同じ電源で光らせたいときは、25個連なったLEDを2並列にするなどの方法があります。まとめ下の表のようになりました。Vのときの計算結果です。-一般的な(ピーナツのような?)抵抗器は1/2Wとか1/4なので、この条件では使えないという判断になります。対策として考えられることを思いつくままに書いてみると、こんな感じです。(トレードオフは考えてないし、身も蓋もないことも書きます・・・)定格電力が高い抵抗を使用するVFが高いLEDに変える複数個の抵抗を並列接続して制限抵抗を構成する電源電圧を下げる降圧回路を追加して低い電圧でLEDを駆動する専用のLEDドライバICを使用するPWM制御などで、電流が流れている時間を減らす(平均の消費電力を下げる)とりあえずこのあたりで。気が向いたらそれぞれ検証するかもです。M5STICK-C本記事は移転しました。約10秒後にリダイレクトします。リダイレクトしない場合はここをクリックしてください。ダイオードの一種で、ほかのダイオードと同じように一方向にだけ電流が流れます。下図がLEDの回路図記号で、アノード(Anode)からカソード(Cathode)の方向へ電流が流れます(回路記号の三角形の向きと覚えればOK)。この方向が順方向です。砲弾型LEDの場合は足が長い方がアノードなので、長い方を電源の+側につなぎます。電気用図記号と呼ぶそうです。LEDの電流についてLEDの光の強度は流す電流で決まります。電圧と光の強度は直接は関係していません。光量増加というふうに連動しますが。LEDは流す電流を大きくしすぎると壊れてしまいます。壊れなかったとしても寿命が短くなったり、まぶしすぎて目に優しくないなどあまり推奨されません。そのため、LEDに流れる電流を制限する必要があります。この記事で説明しますなどです。下の表は、秋月電子のサイトで特性が近そうで色が違うLEDをピックアップしてきたものです。mAを超えないようにする必要があります。(正確にはデータシートで確認するべきです。VVFはこの後で説明します。逆耐圧は、アノードとカソードを逆につないでもこの電圧までなら逆方向に電流を流さずに耐えられますということです。それ以上の電圧を逆方向にかけると電流が流れ始めてLEDが壊れます。(多分)VF(順方向電圧降下)順方向に電流を流すために、LEDにある値以上の電圧(←LEDの製品ごとに決まっている)をかける必要があります。さっきの表にもあるとおり、LEDのVFは赤色で2V前後、青色や白色は3~3.6V程度です。電源の電圧は少なくともVF以上は必要なので、1.5Vの乾電池1本ならでLEDを点灯させるためには昇圧回路が必須となります。LEDに流れる電流を制限するためにLEDに直列に接続する抵抗です。(電流)抵抗値を求めるには、「その抵抗にかかる電圧を、抵抗を流れる電流で割る」キルヒホッフの第一法則(電流則)回路全体で、電流は増えたり減ったりしない枝分かれした回路に流れる電流の和は、枝分かれする前の電流と等しい要するに、図の回路なら電源(BAT1)と抵抗(R4)とLED(D5)には同じ電流が流れるということ。キルヒホッフの第二法則(電圧則)閉じた回路で電圧の方向を一方向に決めたとき、各素子の電圧の和は0さきほどの図でいうと、電源(BAT1)の電圧(の和)と、負荷(R4とD5それぞれ)にかかる電圧の和が等しいということ。計算オームの法則と、キルヒホッフの法則で計算します。ポイントを整理します。抵抗に流れる電流と抵抗にかかる電圧から、オームの法則で抵抗値を求めるということで計算します。Rオームの法則より複数のLEDを接続する2個以上のLEDを1つの電源で駆動するときは直列か並列のどちらかを決める必要があります。どちらがよいかは回路全体の構成から考えた方がいいと思うので一概に言えませんが、1つの目安としてはこんなところでしょうか。LEDと抵抗を枝分かれなく接続します。Rオームの法則より並列こちらが並列接続の回路図です。並列の場合は、枝分かれした後にそれぞれ制限抵抗を直列に接続します。この回路の場合、抵抗とLEDの各ペアにはそれぞれ電源と同じ電圧がかかります。(R2とD3全体にBT2の電圧、R3とD4全体にBT2の電圧がかかる。(Ω)左側と右側に分けてそれぞれ計算するだけ。R1オームの法則より[右の経路]同様にシミュレーションで確認LTspiceでざっと確認してみました。適当にピックアップしたNSCW100というLEDに約5mAを流すための抵抗値を求めました。LEDのVFはデータシートを見るべきなのですが、今回はシミュレーションから値を拾いました。VF=3.14Vとしています。電源電圧は12Vとしました。kΩの抵抗を直列に入れればよいということになります。これでシミュレーションした結果です。抵抗を流れる電流が4.9mAとなっていて、求めた抵抗値は正しいことが確認できました。なんとなくハードルが高そうだけど、すんなりいきそうな期待を持ってスタート。加速度センサの値を取得できるか。設計の流れIMUのリファレンス設計の流れこれで動くんじゃないかという予想。LED周りのハードを作る必要あり。APIのリファレンス。このページを参考にすれば動きが理解できるはず。(サンプルスケッチもあるのかなぁ。)docs.m5stack.comと思って進んでみましたがダメでした。Exampleどおりじゃ動かない。delay(500);}IMUの型番が違うからかな。IMU(SH200Q)。いうことで、もうちょっと調べ回って↓のサイトにたどり着きました。ページを参考にして、さっきのコードを修正しました。delay(200);}これをコンパイルして書き込むと・・・おおぉぉ!動いたぁ!!XYZ各軸の加速度の値が連続的に取得できてる。値が妥当かどうかはわからないけど。苦労しながらもM5StickCので加速度の値の取得に成功!ソースはすごい短いけど馴染みがないソフト系のデータシートに難儀。2019この調子で次はLEDの準備をしていきます。次の案この週末にM5STICKCなるものの存在を教えていただいたから調べてみました。設計の仕事を離れて本当に情報に疎くなってた。自分から情報を入手しにいく習慣って大事だなと思うこの頃です。M5STICKCは、ESP32を搭載したIoT開発基板です。スイッチサイエンスの製品ページに詳しい説明があります。www.switch-science.com仕様概要(気になるところ)スイッチサイエンスのページはいい感じにまとまっています。気になったところだけ改めてあげてみます。ESP32データシートの5ページ目にブロック図があります。いろいろな機能ブロックが入っていてプロセッサのブロック図っておもしろいですよね。ESP32はWi-FiとBluetoothに対応しているSoCです。https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf無線このサイズでWi-FiとBluetooth対応で、技適マークもついています。サイズも小さくて、IoTに最適だと思いました。M5STICKCには2.4GHzのアンテナが入っていると。(高周波回路の設計大変そう。電源供給はUSB-Cコネクタから。それに加えて80mAhのバッテリーが入っていますね。検索したら図にまとめてくださっている方が・・・すごい!lang-ship.com6軸IMU6軸ってなんだ?と思って一瞬調べてみた。3軸加速度センサ+3軸ジャイロセンサ(角速度センサ)のことなんですね。設計側として加速度センサを使うの初めてなので、何かやってみよう思ってるところ。入手先スイッチサイエンス日本の正規代理店。この記事を書いている時点(2019/9/1)では在庫が0でした。サポート面を考えるとこちらがいいと思います。共立、マルツ、せんごく、ツクモなどスイッチサイエンス経由で流通しているようです。アマゾン日本の正規代理店経由かどうかわかりませんが売られていました。キットが複数種類あるのか、腕時計マウンタが付属していないものが売られていました(2019/9/1時点)。してもすぐに必要なら買ってもいいんじゃないかな。サポートが受けられるかどうかも含め自己責任ですが。作ってみたクイックスタートスイッチサイエンスの製品ページの中段あたりから、資料のクイックスタートに移動して進めてみました。開発環境はArduino-Windowsです。docs.m5stack.com資料どおりに進めて開発環境のインストールボードマネージャインストールライブラリインストールサンプルの書き込みまで問題なし。LEDチカチカこちらのWebサイトを参考にソースを書いて、デバイスに書き込んでみました。delay(1000);}たったこれだけです。記述量の比較対象がVHDLなので勝負にならないんですけどね。↓M5STICKC、全然理解せずにLEDを動かせた。LEDの色を変えるぐらいのものを作ろうかと思ってます。Intel(Altera)本記事は移転しました。約10秒後にリダイレクトします。リダイレクトしない場合はここをクリックしてください。Kitを使って、MAX10にNios(CPU)を作ります。CPUからソフト制御でLEDを点滅させてみます。LEDが5個あるので、まずはそのうち2個をハード制御します。動作確認ちなみに私のソフトのスキルはPC上でpythonをちょくちょくいじれる程度で、初ファームウェア設計です。冒頭に書いた通り、このボードにはユーザが制御できるLEDが5個あるので2個はハード制御、残り3個はソフト制御にします。(ハードウェア制御)ハード側から制御する場合は、HDL(VHDLやVerilig-HDL)で動作を記述します。大まかにいうと、HDLのソースコードを元にツールが回路を合成します。(ソフトウェア制御)ソフトウェア制御では、FPGA上に作ったCPUに命令を実行させるようにC言語などでファームウェアを設計します。(CPU)ソフトウェア設計、コーディング、デバッグの流れで進めていきます。順番が入れ替わってなければ大丈夫かと。ハードウェアのLED制御回路設計はCPU&ソフトとは完全に独立して進められるので。ブロック図ブロック図はこんな感じです。(最終的には)スイッチで点滅速度を変えられるようにしようと思っているぐらいで、基本的には電源を入れるとLEDが点滅し続けるだけを考えています。FPGA(とCPU)と外部のやりとりは、基板上のスイッチとLEDだけになります。電源は基板外から供給する必要があるので、電源ケーブル(USBケーブル)だけが外につながる予定です。設計途中では、JTAGコネクタに電源の他にUSBブラスターをつないでプログラムの書き込みなどを行います。PrimeプロジェクトVHDLソース省略。Wizard)開発環境にプロジェクトを作成します。Wizardをクリックしてプロジェクトを作っていきます。プロジェクト名を適当に決めて、Nextをクリックして進んでいきます。下の図はデバイス選択の画面です。FPGAデバイスの型番を選択してもいいんですが、隣の[Board]タブの中に使用する評価ボードが用意されていればそれを選択するとお手軽です。Kitが選択肢にあったのでこちらから選択しました。Settingsは今回はデフォルトのままいきます。rangeも自動で設定されています。[Finish]をクリックして完了。