RaspberryPi　PythonとC#でLチカ

###PythonでLチカ
<a href="https://px.a8.net/svt/ejp?a8mat=3HA5YE+3SXPWY+3L4M+BW8O2&a8ejpredirect=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmonoxit-iot101%2F" rel="nofollow">
<img width="300" alt="スクリーンショット 2020-05-28 15.57.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/3d7950b7-8bdf-70c6-2d20-14e11e80728c.jpeg">
</a><a href="https://px.a8.net/svt/ejp?a8mat=3HA5YE+3SXPWY+3L4M+BW8O2&a8ejpredirect=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fmonoxit-iot101%2F" rel="nofollow">知識ゼロから作って学ぶIoT入門</a>

Arduinoではありますがブレッドボードの説明やLチカ説明が載っており、1500円セールの時なら元はとれます。

#####gpioのピンの一覧を表示する

基板のGPIOの番号を確認します。

```
$ gpio readall
```
#####wiringpiライブラリー古い場合はエラーが出た場合
ライブラリーが古い場合はエラーが出ます

```
Oops - unable to determine board type... model: 17
```

####wiringpiを更新する

```
cd /tmp
$ wget https://project-downloads.drogon.net/wiringpi-latest.deb
$ sudo dpkg -i wiringpi-latest.deb
```

再度
gpio readall

####gpioのPIN番号の表示

Physical = 連番 PIN
0v = GND
ターミナルに表示されます
<img width="555" alt="スクリーンショット 2020-05-28 15.57.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/89033175-fe98-06a1-30d7-404a0243f222.png">

左側に3.3Vの電流がそれぞれのPINに流れています
右側に5Vの電流がそれぞれのPINに流れています

0vがGNDになります。GNDはマイナス
GNDについてはUmedyの動画で詳しく説明しています。
GPIについてUmedyの動画で体系的に学ぶことをお勧めします。
 
    GPIO.BOARD: 物理ピン番号（連番）
    GPIO.BCM: 役割ピン番号（broadcomが命名しているもの）


####GPIO番号はモデルごと違うのでPIN連番(BOARD)を使う

GPIO番号はモデルごと違う場合があるので、PIN番号で指定するGPIO.BOARD(連番)を使った方がよいみたいです。

<img width="355" alt="スクリーンショット 2020-05-28 15.57.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/6cf64fd8-7968-513d-af12-c8cf910a11e1.png">

```l.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import RPi.GPIO as GPIO
#RPi.GPIOモジュールをインポート 
from time import sleep

#GPIO.setmode(GPIO.BCM)

#GPIO.setmode(GPIO.BOARD)

#連番を利用する
GPIO.setmode(GPIO.BOARD)

GPIO.setup(7, GPIO.OUT)

try:
  while True:
      GPIO.output(7, GPIO.HIGH)
      sleep(0.5)
      
      GPIO.output(7, GPIO.LOW)
      sleep(0.5)    
except KeyboardInterrupt:
    # GPIO設定クリア 
    GPIO.cleanup()
```

```
$ python l.pay
```

<img width="257" alt="スクリーンショット 2020-05-29 17.26.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/7cd0facc-10b5-e99d-4e15-4638576dc7b3.png">
####全体の流れ
PINのプラス(赤）からブレッドボードを通してPIN マイナス(黒)(GND)につなげる
ダイオードに電流が流れすぎないように抵抗を加えて調整する必要がある

<img width="305" alt="スクリーンショット 2020-05-28 15.57.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/c95b67b4-fed8-428f-0ff3-15e7b38dab82.jpeg">
[パーツをまとめて購入（サンプルファイルCD付き）](https://www.amazon.co.jp/gp/product/B01M6ZFNSS/)
<img width="288" alt="スクリーンショット 2020-05-29 18.02.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/9b7f8711-de5f-c58d-7d54-671a47ee809b.png">
最終的にこれらをC#に変換しマイクロソフトのGPIOライブラリを使って使おうと思います。

追記
[Sample File URL](https://osoyoo.com/ja/2017/10/09/raspberry-pi-starter-kit-v1-introduction/)
OSOYOOのサイト　サンプルファイルと動画がありました

####ポイント
センサーパーツをAmazonでまとめて購入できる
体系的にGPIOを学んだほうがよい。UmedyにRaspberyの動画があった
Amazonの安いテスターを買って電流がちゃんと流れているか確認すると理解が早まる
パーツをまとめて購入セットにはサンプルプロジェクトファイルがあり、自走学習が可能と思われる

####次回 C#でLチカ

マイクロソフトがGPIOライブラリをリリースしてきたのでそれを使ってlチカをやってみます。

[マイクロソフトのGPIOライブラリ](https://github.com/dotnet/iot)
[MONOのGPIOライブラリ](http://abyz.me.uk/rpi/pigpio/)

[C#でLチカ](https://qiita.com/tana_/items/f24c861827179811f912)