// ライブラリの実装 //
#import "@preview/codelst:2.0.1": sourcecode
#import "@preview/i-figured:0.2.4"

//フォント設定//
#let gothic  = "YuMincho"

//本文フォント//
#set text(11pt, font: gothic, lang: "ja") 

//タイトル- 見出しフォント//
#set heading(numbering: "1.1")
#let heading_font(body) = {
  show regex("[\p{scx: Han}\p{scx: Hira}\p{scx: Kana}]"): set text(font: gothic)
  body
}
#show heading: heading_font

// ページ設定 //
#set page(
    paper: "a4",
    margin: (x: 25mm, y: 25mm),
    columns: 1,
    //fill: 背景色,
    numbering: "1",
    number-align: center,
    header: [
        #set text(8pt)
    ]
)

// 数式の表示の仕方を表示 //
#set math.equation(numbering: "(1)")

// 図の表示の仕方を表示 //
// #show heading: i-figured.reset-counters.with(level: 2)
// #show figure: i-figured.show-figure.with(level: 2)


//タイトルページここから//
#align(right, text()[
  #text[提出日]#datetime.today().display("[year]年[month]月[day]日")
])
#v(150pt)
#align(center, text(30pt)[
  #heading_font[*プレ- レポート5*]
])
// #align(center, text(14pt)[
//   #heading_font[*サブタイトル*]
// ])
#v(1fr)
#align(right)[
  #table(
    columns:(auto, auto),
    align: (right, left),
    stroke: none,
    [講義名],[マイコン制御および演習],
    [担当教員],[伊藤 暢浩先生],
    [],[],
    [学籍番号],[k22120],
    [所属],[情報科学部 情報科学科],
    [学年],[3年],
    [氏名],[牧野遥斗]
  )
]
#pagebreak()

// 目次
#outline(
    title: "目次",
    depth: 2,
    indent: auto,
)
#pagebreak()


//本文ここから//
= プレ- レポート（課題 4）
== @LEDマトリクス の電子部品 ( LEDマトリクス TOM-1588BH-B) を次のような点から調べなさい。

#figure(
  image("./img/LEDマトリクス.png",width: 50%),
  caption: "LEDマトリクス"
)<LEDマトリクス>

=== どのような部品か

8列8行のドットマトリックスディスプレイで、赤色の発光ダイオードを64個搭載している。 
8列8行のLEDで構成されており、各LEDは各列で共通のアノードと各行で共通のカソードを持っている。
電光掲示板や電子時計などに使用される。

=== どのような仕組みか

TOM-1588BH-Bは廃盤となっており、データシートが見つからなかったため、代わりに後継機であるTOM-1588AMG-N について調査した。
@LEDマトリクス回路図 に示すように、各LEDはアノードとカソードに接続されており、アノードに正の電圧を加え、カソードに接地することでLEDを点灯させる @led_matix_oasistek_dataheet。
各LEDは行と列の交点に配置されており、行と列の交点に電圧を加えることで、特定のLEDのみを点灯させることができる。

#figure(
  image("./img/LEDマトリクス回路図.png",width: 50%),
  caption: "LEDマトリクス回路図"
)<LEDマトリクス回路図>

=== どのような入力を取り扱うのか

電圧を入力として取り扱う。各LEDに対してアノードに正の電圧を加え、カソードに接地することでLEDを点灯させる。

=== 入力に応じて出力がどう変化するのか (データシートや仕様書を参考に) 

一つ一つのLEDは独立して制御されるため、入力に応じて出力が変化する。各LEDに対してアノードに正の電圧を加え、カソードに接地することでLEDを点灯させる。

=== どのようなピンアサイン (各ピンの役割) か 

@LEDマトリクスピンアサイン に示すように、8列8行のLEDマトリクスには、各列に対してアノードが、各行に対してカソードが接続されている。
実際のピンアサインと光る位置は綺麗に並んでいる訳ではないため、ピンアサインを確認しながら接続する必要がある。

#figure(
  image("./img/LEDマトリクスピンアサイン.png",width: 90%),
  caption: "LEDマトリクスピンアサイン"
)<LEDマトリクスピンアサイン>

=== 正しい動作の条件，範囲は何か

- ピーク順⽅向電流（1/10 デューティ サイクル、0.1ms パルス幅）: 80mA
- ドットあたりの消費電⼒ : 75mW
- 連続順⽅向電流 : 20mA
- 推奨動作電流 : 12mA
- 逆電圧 : 5V
- 動作温度範囲 : -25°C 〜 +85°C
- 保管温度範囲 : -30°C 〜 +85°C
- 鉛フリーはんだ温度（座⾯下1/16インチ）: 260°C 3秒

#pagebreak() // ページを分ける

== @OJリレー の電子部品 ( リレー OJ-SH-105LM 000) を次のような点から調べなさい。

#figure(
  image("./img/OJリレー.jpeg",width: 50%),
  caption: "OJリレー"
)<OJリレー>

=== どのような部品か

直流回路の高電圧・高容量緊急遮断を行うリレー。
DC回路の通電はもとより異常発生時に高電圧回路を高速遮断する @relay_omron 。

=== どのような仕組みか <H_リレーの仕組み>

リレーは電気信号を受けて機械的な動きに変えるコイル部と、電気を開閉する接点部で構成される。
コイルに電気信号を流すと、コイル部が磁化して、接点部が動く。
接点部が動くと、電気を開閉できる。
そのため、小さな電流で大きな電流を制御できる。

@リレー仕組み は、リレーの仕組みを図式化して示している @relay_omron2。

#figure(
  image("./img/リレー仕組み.png",width: 50%),
  caption: "リレー仕組み"
)<リレー仕組み>

=== どのような入力を取り扱うのか

コイルに電気信号を入力として取り扱う。

=== 入力に応じて出力がどう変化するのか (データシートや仕様書を参考に) 

コイルに電流を流すことで、コイル部が磁化して、接点部が動く @oj_relay_datasheet。
接点部が動くと、電気を開閉できる。
277V 10Aまでの電流を制御できる。

=== どのようなピンアサイン (各ピンの役割) か 

@OJリレーピンアサイン に示すように、OJ-SH-105LM 000のピンアサインは以下の通りである @relay_datasheet 。
真っ直ぐに並んでいるピンがコイル部で、L字型に並んでいるピンが接点部である。

#figure(
  image("./img/OJリレーピンアサイン.png",width: 50%),
  caption: "OJリレーピンアサイン"
)<OJリレーピンアサイン>

=== 正しい動作の条件，範囲は何か

アールエスコンポーネンツ株式会社によると、OJ-SH-105LM 000の仕様は以下の通りである @relay_rs 。

- コイル電圧 : 5V dc
- 接点構成 : SPST
- 取り付けタイプ : 基板実装
- スイッチング電流 : 3A
- 極数 : 1
- ラッチ : なし
- 最大スイッチング電圧 AC : 277V
- 最大スイッチング電圧 DC : 30V dc
- 長さ : 18.2mm
- コイル抵抗 : 125Ω
- コイル電力 : 200mW
- 基準適合 : CQC03001007764, TUV R 50139166, UL E82292, VDE 40007630
- 接点材質 : 銀
- 奥行き : 10.2mm
- 寿命 : 100000回(電気的)、10000000回(機械的)
- コイルと接点間の耐電圧 : 4kVrms
- 動作温度 Max : +90°C
- 高さ : 14.7mm
- 動作温度 Min : -30°C
- シリーズ : OJ
- アプリケーションタイプ : 機器、産業用制御



#pagebreak() // ページを分ける

== @LEDマトリクス の電子部品 ( リレー G5V-2) を次のような点から調べなさい。

#figure(
  image("./img/G5リレー.jpg",width: 50%),
  caption: "G5リレー"
)<G5リレー>

=== どのような部品か

小型なリレーで、高密度実装に適している。
プラスチックシール･タイプでクロスバ･ツイン接点が標準。耐環境性が高くかつ高信頼性を持つ @relay_omron2 。

=== どのような仕組みか

@H_リレーの仕組み に示すように、リレーはコイル部と接点部で構成される。
小型のリレーであるため、かけれる電圧量が小さめである。

=== どのような入力を取り扱うのか
コイルに電気信号を入力として取り扱う。

=== 入力に応じて出力がどう変化するのか (データシートや仕様書を参考に) 

コイルに電流を流すことで、コイル部が磁化して、接点部が動く @g5_relay_omron 。
接点部が動くと、電気を開閉できる。
125V 2Aまでの電流を制御できる。

#pagebreak() // ページを分ける

=== どのようなピンアサイン (各ピンの役割) か 

@G5リレーピンアサイン に示すように、G5リレーのピンアサインは以下の通りである @g5_relay_omron 。

1と16がコイル部で、2-15が接点部である。
コイル部に電流を流すことで、接点部が動く。
コイル部に電気を流していない時は
4-6, 11-13が接続されており、コイル部に電気を流すことで、4-8, 9-13が接続される。

#figure(
  image("./img/G5リレーピンアサイン.png",width: 50%),
  caption: "G5リレーピンアサイン"
)<G5リレーピンアサイン>

#pagebreak() // ページを分ける

=== 正しい動作の条件，範囲は何か

OMRON によると、G5V-2の仕様は以下の通りである @g5_relay_omron 。
@リレーの性能表 に示すように、G5V-2の性能表は以下の通りである。


#figure(
  table(
    columns: 2 * (1fr,) + 1 * (2fr,),
    align: center,

    table.cell(colspan: 2, "項目"), table.cell(colspan: 1, "基準形"),
    ["接触抵抗"],[],["50mΩ以下"],
    ["動作時間"],[],["7ms以下"],
    ["復帰時間"],[],["3ms以下"],
    ["絶縁抵抗"],[],["1,000MΩ以上（DC500Vメガ）"],
    ["耐電圧"],["コイルと接点間"],["AC1,000V 50/60Hz 1min"],
    [],["同極接点間"],["AC750V 50/60Hz 1min"],
    [],["異極接点間"],["AC1,000V 50/60Hz 1min"],
    ["振動"],["耐久"],["10~55Hz 片振幅0.75mm（複振幅1.5mm）"],
    [],["誤動作"],["10~55Hz 片振幅0.75mm（複振幅1.5mm）"],
    ["衝撃"],["耐久"],["1,000m/s^2"],
    [],["誤動作"],["200m/s^2"],
    ["耐久性"],["機械的"],["1,500万回以上（開閉ひん度36,000回/h）"],
    [],["電気的"],["10万回以上（開閉ひん度1,800回/h）"],
    ["故障率P水準（参考値\）"],[],["DC10mV 10μA"],
    ["使用周囲温度"],[],["−25〜+65℃（ただし、氷結および結露しないこと）"],
    ["使用周囲湿度"],[],["5〜85％RH"],
    ["質量"],[],["約5g"],
  ),
  caption: [リレーの性能表]
)<リレーの性能表>

#pagebreak() // ページを分ける

== @トランジスタ の電子部品 ( トランジスタ 2SC1815Y) を次のような点から調べなさい。

#figure(
  image("./img/トランジスタ.jpg",width: 50%),
  caption: "トランジスタ"
)<トランジスタ>

=== どのような部品か 

トランジスタは、電気信号を増幅したりスイッチングしたりする機能を持っている。
ラジオの場合、空中を伝わってきた極めて微弱な信号を拡大（増幅）して、スピーカーを鳴らす。
また、あらかじめ決められた信号が来た時だけトランジスタが動作するスイッチの役割も果たす @transistor_rohm 。

2SC1815Yは、小型で尚且つそこそこ色々な用途に使えるトランジスタであるため、有名なトランジスタである。

@トランジスタとは は、トランジスタの基本機能を示している。

#figure(
  image("./img/トランジスタとは.png",width: 90%),
  caption: "トランジスタとは"
)<トランジスタとは>

#pagebreak() // ページを分ける

=== どのような仕組みか 

トランジスタは、PN接合により構成され、ベースに電流を流すことで、コレクタ-エミッタ間に電流が流れる
ベース-エミッタ間に順方向電圧（VBE）を印加すると、エミッタの電子（-の電荷）がベースに流れ込み、一部の電子がベースの正孔（+の電荷）と結合する。これが、ベースの微小電流（IB）となる。
ベース（P型半導体）は構造的に薄く作られており、エミッタからベースに流入してきた電子の多くはコレクタに抜け出す。
コレクタ-エミッタ間電圧（VCE）によって電子（-の電荷）が誘導されてコレクタ電極方向に移動する。これがコレクタ電流ICとなる @transistor_rohm 。

@トランジスタの仕組み は、トランジスタの基本的な仕組みを示している。

#figure(
  image("./img/トランジスタの仕組み.png",width: 50%),
  caption: "トランジスタの仕組み"
)<トランジスタの仕組み>

=== どのような入力を取り扱うのか

ベース、エミッタ間の電流を入力として取り扱う。

#pagebreak() // ページを分ける

=== 入力に応じて出力がどう変化するのか (データシートや仕様書を参考に) 

TOSHIBA によると、トランジスタの電流増幅率は、ベース電流が増加すると、コレクタ電流が増加する @transister_datasheet 。

@トランジスタグラフ の左の図は、Ic-Vbeの特性を示している。
エミッタ接地トランジスタの静特性で、コレクタ電流ICとベース-エミッタ間電圧Vbeの関係を表した特性である。
ベース- エミッタ間の電圧Vbeを変化させたときのコレクタ電流Icの変化を示している。
0.7V以上のVbeで急激にIcが増加する。立ち上がりの部分が急激なため、トランジスタのスイッチング特性として利用される。

@トランジスタグラフ の右の図は、Ic-Vceの特性を示している。
静特性(IC-VCE特性)はコレクタ電流Icとコレクタエミッタ間電圧VCEの関係を示している。静特性(IC-VCE特性)とは、あるコレクタエミッタ間電圧Vceにおいて流すことが可能なコレクタ電流Icの能力を示したものである。
Ibの電流を流したときに、Vceを変化させたときのIcの変化を示している。
Ibにそこそこの電流が流れていないと、Icはほとんど流れない。Ibに十分な電流が流れていると、Icはほぼ一定の値を取る。この二つの特性を見ることで、トランジスタの特性をざっくり理解することができる。

#figure(
  grid(
    columns: 2,
    image("./img/トランジスタグラフ1.png",width: 75%),
    image("./img/トランジスタグラフ2.png",width: 75%)
  ),
  caption: "トランジスタグラフ"
)<トランジスタグラフ>


#pagebreak() // ページを分ける
=== どのようなピンアサイン (各ピンの役割) か 

TOSHIBAによると、トランジスタのピンアサインは、エミッタが1番、コレクタが2番、ベースが3番である @transister_datasheet 。

@トランジスタピンアサイン は、トランジスタのピンアサインを示している。

#figure(
  image("./img/トランジスタピンアサイン.png",width: 50%),
  caption: "トランジスタピンアサイン"
)<トランジスタピンアサイン>


=== 正しい動作の条件，範囲は何か

TOSHIBAによると、正しい動作の条件は以下の通りとなる @transister_datasheet。

- コレクタ･ベース間電圧 : 60V
- コレクタ･エミッタ間電圧 : 50V
- エミッタ･ベース間電圧 : 5V
- コレクタ電流 : 150mA
- ベース電流 : 50 mA
- コレクタ損失 : 400 mW
- 接合温度 : 125°C
- 保管温度 : -55°C 〜 125°C


#pagebreak() // ページを分ける

==  @ダイオード の電子部品 (ダイオード 1N4007) を次のような点から調べなさい。 

#figure(
  image("./img/ダイオード.jpg",width: 50%),
  caption: "ダイオード"
)<ダイオード>

=== どのような部品か

電流を一定方向に通す半導体素子。電流が一方向にしか流れない性質を利用して、整流器や電圧安定器などに使用される。

=== どのような仕組みか 

金属と半導体との接合によって生じるショットキー障壁を利用したダイオード。
pnダイオードと仕組みは似ていて、P型チャネルは電子を多く含み、N型チャネルは電子を少なく含む。このため、純電流を流すことで、P型チャネルからN型チャネルに電子が流れ、電子が流れることで電流が流れる。しかし、逆電流になると、電子が電極側に集まり、PN結合部に空白地帯が発生して、電気が流れなくなる。
この仕組みを応用して、ショットキーダイオードを作成して、整流を行なっている @diode_rohm。

@ダイオード仕組み は、ダイオードの仕組みを示している。

#figure(
  image("./img/ダイオード仕組み.png",width: 70%),
  caption: "ダイオード仕組み"
)<ダイオード仕組み>

=== どのような入力を取り扱うのか

ベース、エミッタ間の電流を入力として取り扱う。

=== 入力に応じて出力がどう変化するのか (データシートや仕様書を参考に) 

アノードに正の電圧を加えると、キャリアがアノードに向かって移動し、電流が流れる。逆に、アノードに負の電圧を加えると、キャリアがアノードに向かって移動できなくなり、電流が流れなくなる。

@ダイオードグラフ は、電圧が増加すると電流値が増加する。グラフの形としては指数関数的に増加している @diode_datasheet。
立ち上がり電圧は0.6Vである。

#figure(
  image("./img/ダイオードグラフ.png",width: 50%),
  caption: "ダイオードグラフ"
)<ダイオードグラフ>

=== どのようなピンアサイン (各ピンの役割) か 
KYOCERAによると、ダイオード帯がついている側がカソードで、帯がついていない側がアノードである @diode_datasheet 。

@ダイオードピンアサイン は、トランジスタのピンアサインを示している。

#figure(
  image("./img/ダイオードピンアサイン.png",width: 40%),
  caption: "ダイオードピンアサイン"
)<ダイオードピンアサイン>


=== 正しい動作の条件，範囲は何か

秋月電子によると、1N4007の仕様は以下の通りである @diode_akituki。

- 構造:PN接合
- 素材:シリコン
- DC耐圧:1000V
- ピーク耐圧:1000V
- 平均順電流:1A
- ピーク順電流:30A
- 順電圧:1.1V
- 端子間容量:15pF
- 実装タイプ:スルーホール
- パッケージ:アキシャルリード
- パッケージタイプ:アキシャルリード



#pagebreak() // ページを分ける

= このLED マトリクスについて，次のことを調べなさい。

== ダイナミック点灯方式とは

ダイナミック点灯方式とは、LEDマトリクスの各LEDを点灯させる際に、一つのLEDを点灯させる時間を短くして、人間の目には一度に全てのLEDが点灯しているように見せる方式である。
この方式を用いることで、LEDマトリクスの全てのLEDを点灯させる際に、ピンを一つ一つ制御する必要がなくなり、制御が容易になる。


= @課題3フローチャート は、テキスト第5章プログラムchap5_1_1 のshowMatrix 関数のフローチャートである。下記のフローチャートの動作をまとめなさい。

#figure(
  image("./img/課題3フローチャート.png",width: 90%),
  caption: "課題3フローチャート"
)<課題3フローチャート>

以下は、提供されたフローチャート「showMatrix(matrix[][])」の動作と仕組みについてまとめる。

== 詳細な仕組み
*アノードループの初期化*

ano（アノード）を0から7までループさせるために変数anoを初期化する。

*カソードループの初期化*

cat（カソード）を0から7までループさせるために変数catを初期化する。

*LEDの点灯判定*

現在のano行とcat列のLEDが光るかどうかを、matrix[ano][cat]の値によって判定する。
matrix[ano][cat]が0であれば、次のステップ（5）。
0でない場合は、ステップ（6）。

*LEDを点灯*

digitalWrite(CATHODEPIN[cat], HIGH)を実行し、カソードピンをHIGHにする。

*LEDを消灯*

digitalWrite(CATHODEPIN[cat], LOW)を実行し、カソードピンをLOWにする。

*カソードループの終了判定*

catをインクリメントし、カソードループが終了しているか確認する。
まだ終了していなければステップ（3）に戻る。

*アノードの制御*

digitalWrite(ANODEPIN[ano], HIGH)を実行し、アノードピンをHIGHにする。
7msの遅延を発生させる。
digitalWrite(ANODEPIN[ano], LOW)を実行し、アノードピンをLOWにする。

*アノードループの終了判定*

anoをインクリメントし、アノードループが終了しているか確認する。
まだ終了していなければステップ（2）に戻る。

*終了*

すべてのループが終了した後、プログラムは終了する。

== 補足説明
アノードピンとカソードピンの制御: アノードピンをHIGHにしてからLOWに戻すことで、各LEDの点灯を制御する。
動的点灯方式の実現: アノードピンをHIGHおよびLOWに繰り返し設定することで、ダイナミック点灯方式を実現している。これにより、LEDマトリックス全体の制御が可能になる。
このフローチャートは、LEDマトリックスの各LEDの状態を更新するために必要な一連の手続きを示している。各ループを使ってマトリックス全体を走査し、対応するピンの状態を設定することで、任意のパターンを表示することができる。

#pagebreak() // ページを分ける

// bibファイルの指定 //
#bibliography("./bibliography.bib")

