「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>IoT]] *目次 [#sdbdf474] #contents *概要 [#hdf821fe] 電子工作の未経験者がイロハを調べた。 *ハードウェア [#p8ae897d] **[[Raspberry Pi]] [#y1f38540] **[[Arduino Wiring sketches]] [#abcafcbf] **[[LattePanda]] [#pd10bee0] *IoT向けLinux [#a103869f] -【OSS】IoT向けOS主要5選~ 「Ubuntu Core」「RIOT」「Contiki」「TinyOS」「Zephyr」~ https://www.ossnews.jp/oss_info/article.html?oid=9149 **[[Rasbian]] [#a16d1cec] ***[[Docker On Rasbian]] [#ld572448] ***[[Node-RED On Rasbian]] [#i5bbd01c] ***[[.NET On Rasbian>https://techinfoofmicrosofttech.osscons.jp/index.php?.NET%20On%20Rasbian]] [#n23feb9b] **Ubuntu Core [#xc7157a3] -Ubuntu Core | Ubuntu~ https://ubuntu.com/core -[[Ubuntuのインストール - 開発基盤部会 Wiki>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Ubuntu%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB]] **RIOT [#fec1b03c] -[[RIOT (オペレーティングシステム) - Wikipedia>https://ja.wikipedia.org/wiki/RIOT_(%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0)]] -RIOT - The friendly Operating System for the Internet of Things~ https://riot-os.org/ **Contiki [#m77266a3] -Contiki - Wikipedia~ https://ja.wikipedia.org/wiki/Contiki -Contiki:~ The Open Source Operating System for the Internet of Things~ http://contiki-os.org/ **TinyOS [#n309185b] -TinyOS - Wikipedia~ https://en.wikipedia.org/wiki/TinyOS -tinyos/tinyos-main:~ Main development repository for TinyOS (an OS for embedded, wireless devices).~ https://github.com/tinyos/tinyos-main -[[TinyCLR OS>#gb90be61]] **Zephyr [#w568bec8] -[[Zephyr (オペレーティングシステム) - Wikipedia>https://ja.wikipedia.org/wiki/Zephyr_(%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0)]] -Qiita --Zephyr入門(概要 & (スケジューラ:概要編))~ https://qiita.com/ueba/items/c5fe99bedd8862854ebd --Zephyrがおもしろい~OSSのRTOS~~ https://qiita.com/tomoyuki-nakabayashi/items/6e09ee86fc77ac293553 -Home - Zephyr Project~ https://www.zephyrproject.org/ *接続 [#j31fb60f] 配線や、機器の[[ハンダ付け>#kde15c2a]]などが必要になる。 **配線 [#t43b24ba] [[Raspberry Pi>#y1f38540]]などから機器への配線。 ***Fritzing [#w392a878] 配線描画ツール -Fritzing Download~ http://fritzing.org/download/ ***ブレッドボード [#ucd15d34] -ブレッドボードを使用すると、[[ハンダ付け>#kde15c2a]]をしなくて済む事が多い。 -両端は、横に繋がっていて、中央部分は縦に繋がっている(みたいな)。 -参考 --ブレッドボード - Wikipedia~ https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AC%E3%83%83%E3%83%89%E3%83%9C%E3%83%BC%E3%83%89 ***ジャンパワイヤ [#f013e241] -[[GPIO>#l47a20f8]]ピンと[[ブレッドボード>#ucd15d34]](若しくは直接、機器と)接続するのに使用する。 -ジャンパ線、ジャンプワイヤとも呼ぶ。 -端子部分にオス型・メス型が存在する。 ***抵抗器 [#q046d5d9] -抵抗器の役目は電源の調整~ (電源の供給する[[電圧>#p8750d11]]から流れる[[電流>#jb859ab0]]を調整する)。 -電子工作では、一般的に、[[炭素皮膜抵抗器>#r33077ed]]を使用する。 -極性は無い(どちらの向きに差し込んでも動作する)。 -抵抗器を忘れて[[スペック値>#e1258aae]]よりも大きな[[電流>#jb859ab0]]を流すと発熱して事故の元になる。 -[[オームの法則>#ubf73ef4]]に則る特性を利用すると、所定の部品に対して --電源[[電圧>#p8750d11]]とは異なる[[電圧>#p8750d11]]を供給したり、 --[[電流>#jb859ab0]]を必要な大きさに制御したりできる。 -抵抗器([[炭素皮膜抵抗器>#r33077ed]])には以下のモノがあり、色で識別可能。 --100Ω --1KΩ --5KΩ --10KΩ ***コンデンサ [#u9d55af2] -電気(電荷)を蓄えたり、放出したりする電子部品 -この機能で、電子回路では、バイパスコンデンサとして利用される。~ (ノイズ成分が後続の回路へ伝わらないようにフィルタリングする) -参考 --コンデンサとは? | 村田製作所 技術記事~ https://article.murata.com/ja-jp/article/what-is-capacitor --コンデンサ - Wikipedia~ https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%87%E3%83%B3%E3%82%B5 ***ハンダ付け [#kde15c2a] -[[ブレッドボード>#ucd15d34]]・[[ジャンパワイヤ>#f013e241]]を使用していれば不要。 -配線の際や、ピンヘッダ実装、などでハンダ付けを行うことがある。 **抵抗器の種類 [#pc2f374a] ***固定抵抗器 [#r33077ed] -炭素皮膜抵抗器 --電子工作で使う抵抗器は一般的にコレ。 --セラミックの円筒表面に抵抗体である炭素の被膜が焼き付けられたもの --炭素皮膜抵抗器の精度誤差は5%程度。 -金属皮膜抵抗器 --電子工作ではあまり使われないがオーディオ回路などに使われている。 --抵抗体にニッケルクロム合金などの金属を使っている。 --固体誤差が小さく(誤差1%程度)、温度による抵抗値の変化も少ない。 --炭素皮膜抵抗器よりも1.5~2倍の価格差がある。 ***可変抵抗器 [#c0ec645c] 抵抗値を変えることができる抵抗器 ***半固定抵抗器 [#l7c81676] 頻繁に変更はしないが例えばセンサーの感度などを~ 微調整するのに抵抗値を可変にしたいときに使用する。 ***カラーコード [#g28e30f7] 固定抵抗器(炭素皮膜抵抗器)のスペックをカラーコード(模様)で判断できる。 *周辺機器 [#s84c59d8] [[Raspberry Pi>#y1f38540]]などと接続する周辺機器。 **ダイオード [#f628f3aa] ダイオードは一方向にだけ電気を流す電子部品である。 ***特性 [#p8fed026] -順方向バイアス --P型半導体とN型半導体の2つを接合 ---P型半導体側をアノードと呼ぶ。 ---N型半導体側をカソードと呼ぶ。 --アノード側からカソード側方向には電流が流れるが、逆方向には流れない。 -逆方向(のI-V)特性 --電圧が小さいときには電流は流れないが、ある電圧を超えると急激に流れる電流量が増加する。 --急激に電流が流れ始める電圧を、順方向電圧=VFと表す。 -逆方向(のI-V)特性 --アノード側よりカソード側に高い電圧をかけた時の特性 --逆方向に電圧を印加しても電流はほとんど流れない。 --電圧を更に上げていくと ある電圧で急激に電流が流れる。~ これ以上の電圧を印加するとダイオードが破壊される。 ***発光ダイオード(LED) [#d62cd59c] -LED表示器とも言う。 --順方向電圧=VFは、2[V]前後(発光する色によっては3[V]以上) --流れる電子のエネルギーを光エネルギーに直接変換するためエネルギー効率が良い -Lチカが基本らしい。 --最も簡単な[[電子回路>#b63066ab]] --コンピューター言語でいうところの“Hello World”のようなもの -極性がある。 --アノード(長い)をプラスに接続 --カソード(短い)をマイナスに接続 -保護抵抗同梱のモノもある。 -参考 --Raspberry Piで電子工作!Lチカ…の前にLピカ! | Device Plus - デバプラ~ http://deviceplus.jp/hobby/raspberrypi_entry_009/ --今日から始めるカンタン電子工作!Raspberry Pi で~ LED を光らせよう | 株式会社INDETAIL - ブログ~ https://www.indetail.co.jp/blog/8431/ ***その他のダイオード [#p901bdb6] -フォトダイオード --光を検知すると、流れる電流値が変化するダイオード(光起電力効果) -ツェナーダイオード(定電圧ダイオード) --安定化電源の基準電圧を作るために、降伏電圧がを低くなるように設計されたダイオード --一定の電圧を得る目的で使用される。 --その用途から定電圧ダイオードと呼ばれる。 -定電流ダイオード --加える電圧や負荷抵抗が変化しても一定の電流を流すことができるダイオード --定電流になる値をピンチオフ電流と呼ぶ。 --電圧の下限・上限に範囲がある。 **LCD(液晶ディスプレイ) [#mb6b7e4b] ***AQM0802 [#b226d3e8] -概要 --[[I2C>#xf8a0e3a]]接続小型キャラクタLCDモジュール --8×2行、[[Apple Pi>#lc8833bb]]に載っている。 -仕様~ https://akizukidenshi.com/catalog/g/gP-06669/ |#|項目|値|h |1|電源電圧|3.3V| |2|消費電流|1mA| |3|液晶コントロールIC|ST7032i| |4|[[I2C>#xf8a0e3a]]アドレス|0x3e| -マニュアル --I2C接続小型8文字×2行液晶 AQM0802A-RN-GBW~ http://akizukidenshi.com/download/ds/xiamen/aqm0802.pdf -初期化~ マニュアルの初期設定例に従って初期化 --電源オン --40m sec以上待機 --Function set(行数の設定)~ 0000111000b(0x38) --26.3μsec以上待機 --Function set(拡張コマンドの設定開始)~ 0000111001b(0x39) --26.3μsec以上待機 --Internal OSC frequency(内部OSC周波設定)~ 0000010100b(0x14) --26.3μsec以上待機 --Contrast set(コントラスト設定)~ 0001110000b(0x70) --26.3μmsec以上待機 --Power/Icon Contrast control(パワー/アイコン コントラスト設定)~ 0001010110b(0x56) --26.3μsec以上待機 --Follower control(Follower設定)~ 0001101100b(0x6c) --200m sec以上待機 --Function set(拡張コマンドの設定終了)~ 0000111000b(0x38) --26.3μsec以上待機 --Display ON/OFF control(ディスプレイ オン)~ 0000001101b(0x0c) --26.3μsec以上待機 --Clear Display(ディスプレイ クリア)~ 0000000001b(0x01) --1.08m sec以上待機 ***ACM1602NI [#q97c10c1] -概要 --[[I2C>#xf8a0e3a]]接続小型キャラクタLCDモジュール --16×2行 白色バックライト付 -仕様~ https://akizukidenshi.com/catalog/g/gP-06669/ -マニュアル --ACM1602NI-FLW-FBW-M01 PDFデータシート~ https://akizukidenshi.com/download/ds/xiamen/ACM1602NI-FLW-FBW-M01_20190219.pdf -初期化~ ... **センサー類 [#uc6dc953] ***アナログ・センサー [#aaf88548] -[[Raspberry Pi>#y1f38540]]にはアナログ入力ポートが用意されていないため、~ SPIインターフェースのA/DコンバータICを外付けして対応する。 -A/Dコンバータは、ブレッドボードに搭載する。~ Microchip TechnologyのMCP3002、MCP3008、MCP3208などがある。 -参考 --Raspberry Pi 3 model Bが入手できました (6) | 電子工作(MAKE)~ http://www.denshi.club/make/2016/06/raspberry-pi-3-model-b-6.html --Potentiometer sensor | Windows IoT~ https://developer.microsoft.com/en-us/windows/iot/samples/potentiometer ***BME280 [#ca1b88b8] -概要 --BOSCH社製の温度/湿度/気圧モジュールで、[[Apple Pi>#lc8833bb]]にも載っている。 --ハンダ付けが必要らしいが、ピンヘッダ実装済でハンダ付け不要のものもある。 --ブレッドボードを使用せず、ジャンパワイヤで直接接続も可能な模様。 --仕様 |#|>|項目|値|h |1|>|電源電圧|DC 1.71 V - 3.6 V| |2|>|[[I2C>#xf8a0e3a]]アドレス|0x76| |3|>|通信方式|[[I2C>#xf8a0e3a]](最大 3.4 MHz)&br;SPI(最大10 MHz)| |4|>|>|測定レンジ| |4.1||温度|-40~+85℃| |4.2||湿度|0~100%| |4.3||気圧|300~1100hpa| |5|>|>|分解能| |5.1||温度|0.01℃| |5.2||湿度|0.008%| |5.3||気圧|0.18hpa| |6|>|>|測定精度| |6.1||温度|±1℃| |6.2||湿度|±3%| |6.3||気圧|±1hpa| -マニュアル --BME280 Combined humidity and pressure sensor~ http://akizukidenshi.com/download/ds/bosch/bst-bme280_ds001-10.pdf --BME280 – スイッチサイエンス~ https://trac.switch-science.com/wiki/BME280 -初期化~ マニュアルの初期設定例に従って初期化 --キャリブレーション・データの読み込み。 --レジスタの設定 ---configレジスタ ---ctrl_measレジスタ ---ctrl_humレジスタ --測定開始 --測定データ計算 --結果出力 -参考 --ラズベリーパイで温度・湿度・気圧をまとめて取得!~ AE-BME280でIC2通信 | Device Plus - デバプラ~ http://deviceplus.jp/hobby/raspberrypi_entry_039/ --BME280で温度と湿度と気圧を測る | pinky blog てきとぅ ブログ~ http://pinky-blog.com/raspberry-pi/bme280-temperature-humidity-atmospheric-pressure/ --Raspberry Pi3とBME280(温湿度気圧センサ)で~ 部屋の温度を測定する - Desktop Linux のススメ~ http://desktop-linux.namakemono345.com/raspberry_pi3_bme280/ ---BME280搭載 温湿度・気圧センサモジュール~ ピンヘッダ実装済 - スイッチサイエンス~ https://www.switch-science.com/catalog/2323/ --Windows 10 IoT Core用のBME280ライブラリ: Todotaniのはやり物Log~ http://todotani.cocolog-nifty.com/blog/2016/01/windows-10-iot-.html **モーター制御 [#sb267a08] ***モーターの種類 [#oda71ff8] ||価格|角度制御|脱調||h |[[DCモーター>https://ja.wikipedia.org/wiki/%E7%9B%B4%E6%B5%81%E9%9B%BB%E5%8B%95%E6%A9%9F]]|安い|不可|-|直流電流で回転し、回転数を印加電圧により自由にコントロールできる。| |[[ACサーボ・モーター>https://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%BC%E3%83%9C%E3%83%A2%E3%83%BC%E3%82%BF]]|中|可能|なし|エンコーダのフィードバックによって回転位置を検知・制御する。&br;このため、回転の停止中も位置がずれたときには元の位置に戻る。| |[[ステッピング・モーター>https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC]]|高い|可能|あり|パルス信号によって回転角度・回転速度を正確に制御できるが、位置ずれを認識できない。| ***DCモーター・ドライバーIC [#tafdf1d0] -DRV8830:[[GPIO>#l47a20f8]] -TA721SG:[[I2C>#xf8a0e3a]] ***ステッピング・モーター・ドライバーIC [#v03e9ff7] -[Raspberry Pi] ラズパイでステッピングモータ制御 - Qiita~ https://qiita.com/zoo_dj/items/0c7f632967e266bac64a **カメラ [#t4ef17d5] ***[[Raspberry Pi]] Camera Board [#ic59bd91] [[Raspberry Pi]]本体のCSI端子に接続して使用。 ***USBカメラ [#i959a9bd] [[Windows 10 IoT Core>https://techinfoofmicrosofttech.osscons.jp/index.php?Windows%2010%20IoT%20Core]]では[[Raspberry Pi Camera Board>#ic59bd91]]は動作しないので、USBカメラを使用する。 **拡張ボード [#w56e93cd] ***[[Apple Pi]] [#lc8833bb] ***[[Sense HAT]] [#y4f2b4cc] **[[Wio]] [#a924c24c] ***[[Wio Node>Wio#w9318fba]] [#c4b8bab8] ***[[Wio LTE>Wio#k3763eed]] [#i809dcf4] ***[[Wio Terminal>Wio#aeadb201]] [#p45f3923] **購入先 [#ob8754ac] ***通販サイト [#ddc24f3b] -千石電商~ https://www.sengoku.co.jp/ -秋月電子通商~ https://akizukidenshi.com/catalog/ -マルツ電波~ https://www.marutsu.co.jp/ -スイッチサイエンス~ https://www.switch-science.com/ -ストロベリー・リナックス~ https://strawberry-linux.com/ -RSコンポーネンツ~ https://jp.rs-online.com/web/ *電子回路 [#h75fddbe] **電子回路とは? [#b63066ab] ダイオードやトランジスタ等の能動素子を構成要素に含む電気回路。 **インターフェイス [#aed8f9a3] ***GPIO [#l47a20f8] -汎用I/O、GPIO(General Purpose I/O) -[[ハードウェア>#p8ae897d]]上から電子回路を操作する際のインターフェイス -プラットフォーム・プログラム言語スタック上のライブラリから使用する。 -[[Raspberry Pi>#y1f38540]]では、5V、3.3Vを給電できる。 ***I2C [#xf8a0e3a] -[[概要>高度午前 - コンピューター・システム - コンピュータ#u4dc8d3d]] -端子図、配線 --[[Raspberry Piの端子図>Raspberry Pi#bbd90275]] --[[Apple PiのI2C>Apple Pi#ge8468bd]] -実装例 --[[Windows 10 IoT Core>https://techinfoofmicrosofttech.osscons.jp/index.php?Windows%2010%20IoT%20Core#m9b9f8bf]] ---LCD ---センサー --[[.NET Core On Rasbian>https://techinfoofmicrosofttech.osscons.jp/index.php?.NET%20Core%20On%20Rasbian#pca4ca96]] ---LCD ---センサー -参考 --ボクにもわかる I2C (IIC) インタフェース方式 for IchigoJam~ https://bokunimo.net/ichigojam/i2c.html --Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法~ (ラズパイ3の GPIO端子の I2C機能を有効にして各種センサーを繋げる方法まとめ)~ http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_gpio_enable_i2c/ **回路の作成 [#c6186e96] ***直列と並列 [#b7091c1c] -[[電圧>#p8750d11]]~ (水圧・気圧みたいに高さでイメージすると良い) --直列~ 電圧は足し算(徐々に低くなる)。 --並列~ 電圧は電源と同じ(同じ高さ)。 -[[電流>#jb859ab0]] --直列~ 電流は電源と同じ(分岐しないから)。 --並列~ 電流は足し算(分岐するから)。 ***回路図 [#e8f1d597] -電源 --プラス ---Vdd、Vcc ---回路記号 --マイナス ---GND、Vee、Vss ---回路記号 -注意事項 --電源のプラス(Vdd or [[GPIO>#l47a20f8]])→マイナス(GND)とループさせる。 --部品の極性や端子の接続を正確に行い、ショートに注意する(端子同士が触れる)。 --作業前に静電気除去を行う(部品内で絶縁破壊が起きて壊れる)。 --スイッチ ---プルアップ or プルダウンでは、スイッチOFFの場合にも値が安定するよう、Vdd→[[GPIO>#l47a20f8]]をGNDにも繋げておく。 ---チャタリング(一回の押下を複数にカウントしてしまう)は、プログラム側にスリープなどを入れて防止する。 *[[電流>#jb859ab0]]と[[電圧>#p8750d11]] [#vf066d5f] **スペック値 [#e1258aae] ***電流 [#jb859ab0] -電気の流量~ 電荷の程度を表す。 -単位: --アンペア([A]) --電子工作ではミリアンペア([mA])の表記が多い。 --1[A]=1000[mA] ***電圧 [#p8750d11] -電気の圧力~ --電位差ないしその近似によって定義される。 --電位差とは、 ---車のバッテリーの電圧は12Vで、~ プラス側が12Vでマイナス側が0V。 ---12V分の(電位)差があるから、電気が流れる。 ---水に例えると電気の高さ(≒水圧的な) -単位: --ボルト([V]) --Vは電圧だけでなく、電位差・起電力の単位としても用いられる。 --電子工作では5V、3.3V、1.8Vなどのボルト([V])の表記が多い。 **関係 [#fe794d0b] ***電力 [#r164e811] 仕事量の単位 -電力 = [[電流>#jb859ab0]] * [[電圧>#p8750d11]] -1 ワット([W]) = 1アンペア([A])* 1 ボルト([V]) ***抵抗 [#ubf73ef4] -オームの法則~ 電気抵抗の単位は、オーム([Ω]) V(電位差) = R(電気抵抗) * I(電気抵抗) -直列~ 直列接続の合成抵抗 抵抗1 + 抵抗1 = 直列接続の合成抵抗1 -並列~ 並列接続の合成抵抗 1 / ( 1 / 抵抗1 ) + ( 1 / 抵抗1 ) = 並列接続の合成抵抗1 -[[抵抗器>#q046d5d9]] *参考 [#ua2bf24b] **Build Insider [#aa666738] -ゼロから分かる電子工作の必須知識シリーズ~ http://www.buildinsider.net/small/electronics --電流と電圧 ― 電子工作を始める前の基礎知識~ http://www.buildinsider.net/small/electronics/01 --乾電池 ― 身近で重要なパーツを知る~ http://www.buildinsider.net/small/electronics/02 --抵抗 ― 電圧と電流をコントロールする~ http://www.buildinsider.net/small/electronics/03 --ダイオード ― 知ると便利な基本部品~ http://www.buildinsider.net/small/electronics/04 **SIOS Tech. Lab [#c245cd34] -Raspberry Piで 一緒に「Lチカ」しましょう --(前編)~ https://tech-lab.sios.jp/archives/jtp-raspberrypi-20180618 --(後編)~ https://tech-lab.sios.jp/archives/jtp-raspberrypi-20180824 **ENGINEER - YouTube [#bb16cee1] -query=ラズパイ~ https://www.youtube.com/c/ENGINEER-story/search?query=%E3%83%A9%E3%82%BA%E3%83%91%E3%82%A4 -再生リスト(ラズパイ)~ https://www.youtube.com/watch?v=PVMBAiimeMk&list=PL7F24EWrm-fuioOBGNyA-W_fYGmyTM7To