おはようございます。じぇいかわさきです。
IoTの実現に向け、自分でプログラミングや評価する環境がやっと整いました。
手作り感満載なので、余計に愛着があり頑張ろうかなっていう思いになりました。
今回は、IoTを実現するには避けて通れない、プログラミングのPythonを練習し、最初のハードウェアを制御するプログラムまで完了することができました。

簡単なPythonから学んでいこう
自分は今まで、プログラミングと言えば、昔MS-BASICを一生懸命にやったくらいで、Windowsになってから、どうしてもイベントという概念が分からず挫折しました。
同様に、制御系のアプリはC言語で作られることが多くなり、こちらも挑戦をしてみたのですが、C言語の肝心要のポインタが理解出来ず、これまた挫折。
プログラミングについては、挫折の人生しか歩んでこなかったように思えます。
そんな自分が、最新のPythonなんか覚えられるのだろうか?
半信半疑の中、とりあえず作ったラズパイを使って勉強をはじめました。
まずは基本中の基本で、どんなプログラミングでも一番最初に実施するのは、Hello Worldと表示させること。
Python3の本を見ながら、フムフム、画面に表示させるのは他の言語と同じで、print文をつかうのかと理解。
Thonny Python IDEというPython用IDEをメニューから選んで立ち上げる。
このIDEはPythonで書いたプログラムの流れを表示してくれる初心者用の学習ツールです。
そして、上側の枠にprint文を打ち込んでいく。
print(‘Hello’)
print(‘Raspberry Pi’)
print(1+2*3-4/5)
こんな感じで打ち込み、三角マークの緑のボタンを押すと、下側に結果が出てくる。

画面が見にくいですが、こんな感じで実行されています。
[ads]
次に、よく使われる繰り返し処理についてチェックしてみました。
a = b = 0
While a < 10:
a += 1
print(a)while b < 20:
b += 1
print(b)Print(‘end’)

繰り返し処理をして、aが10まで足し算を繰り返し終わると、次にbが20まで繰り返す処理ですね。
このような、単純のプログラムの1つ1つを理解できないと、多分先に進むと、全然わからなくなるのだろうな。
IoTに向けた第1歩
それでは、IoTを実現するためにはラズパイのGPIOと言われる、IOポートをコントロールしなければいけない。
まずは実験環境として、ラズパイのGPIOの40ピンコネクタからブレッドボードに接続するための、40ピンのフラットケーブルを接続する。

そして、IOの練習の最初は、必ずLEDを点灯させるいわゆるLチカというお作法から学んでいく。
面白いのは、ラズパイと同じように組込用アプリの開発環境としてArduinoと言うものがある。こいつも、最初に練習するのはLチカときまっているようだ。
多分、GPIOの指定、GPIOの入出力設定、そしてGPIOへの信号の受け渡しが全部できる、簡単な環境なんでしょうね。

まずはおなじみ、LEDとLEDをドライブする抵抗を用意します。抵抗は適当で良いので、今回は手持ちの5.1KΩを使用しました。
何でも作るハード屋の自分は、こんな事は朝飯前。抵抗をブレッドボードのピッチサイズでリードを曲げ、足をカットします。
LEDも同じように、ブレッドボードのピッチに合わせて、足を曲げます。
後は適当に、片側をGPIOの何処かに接続するようにジャンパーを接続。反対側は、グランドに接続します。
今回は、お互いのケーブルが近い位置に設定したので、GPIO18とLEDを赤いケーブルで、グランドと抵抗を黒いケーブルで接続しました。
これで配線は完了。

[ads]
それでは、参考書を見ながらGPIOの初期設定と、GPIO18から電圧を出す設定を学びます。
import RP1.GPIO as GPIO
LedGpio = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(LedGpio, GPIO.OUT)GPIO.output(LedGpio, True)
すごく簡単なこんなプログラムでLEDを点灯させられるんです。
プログラムの説明をすると
import RP1.GPIO as GPIOで、ラズパイでGPIOを使用するライブラリを読み込みます。
LedGpio = 18は、変数LedGpioに18を割り付けるという意味。
GPIO.setmode(GPIO.BCM)は、GPIOのモードをGPIO.BCMに指定する。
GPIO.BCMというのは、GPIOのピン番号で指定するモードです。もう一つ、実際のピン番号で指定するGPIO.BOARDと言うモードもあります。
GPIO.setup(LedGpio, GPIO.OUT)はLedGpio変数で代入した値のGPIOを、出力モードにするということです。すなわち、GPIO18になりますね。
GPIO.output(LedGpio, True)はGPIO18に信号を送る指定です。
ある一定のルールさえ覚えてしまえば、意外とGPIOを制御するのは簡単なのかもしれませんね。

Thonnyの上側にさっきのプログラムを記述し、三角マークの緑のボタンを押しスタートさせます。
見事に、LEDが点灯しました。
これはGPIO18をTureにしているので、ずっと出力が出っぱなしで、Falesにするまでは止まりません。
とりあえず、GPIOを使用したプログラムも、基本中の基本はできましたね。
これでGPIOの使い方が少し分かったので、センサーを取り付けてなにかできるかもしれませんが、そのへんは焦らず、のんびりやっていこうと思います。

まとめ
今回、ラズパイで音楽を聞くのではなく、当初目的のIoTとして活用するためのスタートを切りました。
60歳にちかいようなおじさんが、何か自分でやってみようということから、今流行りのIoTに挑戦しだしたのです。
すごく基本的なプログラムを書き、Thonny Python IDEの動作確認をしたり、GPIOの使い方を練習し始めました。
プログラミングをバリバリやっている人から見たら、何やってんだと思うでしょうが、ハードを直接制御する事をやったことがない人からすると、天才的な事をやっているように感じるんです。
こんな超初歩的なことでも、できたときの感動は何者にも変えられません。ブログを初めて書き始めたときと同じですね。
やればできる!そう信じて、自分でIoTを使って何かをやっていきたいと思います。それが何か?
見つけるのはこれからです。
60前のおじさんの挑戦は続きます。面白そうだなと思ったら、また見に来てください。
[twt]
