プログラミング

【ラズパイを使い倒す】初めてのPython3に挑戦!まずは触ってみよう。

コード

おはようございます。じぇいかわさきです。

 

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と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の使い方が少し分かったので、センサーを取り付けてなにかできるかもしれませんが、そのへんは焦らず、のんびりやっていこうと思います。

 

Lチカ

 

まとめ

今回、ラズパイで音楽を聞くのではなく、当初目的のIoTとして活用するためのスタートを切りました。

 

60歳にちかいようなおじさんが、何か自分でやってみようということから、今流行りのIoTに挑戦しだしたのです。

 

すごく基本的なプログラムを書き、Thonny Python IDEの動作確認をしたり、GPIOの使い方を練習し始めました。

 

プログラミングをバリバリやっている人から見たら、何やってんだと思うでしょうが、ハードを直接制御する事をやったことがない人からすると、天才的な事をやっているように感じるんです。

 

こんな超初歩的なことでも、できたときの感動は何者にも変えられません。ブログを初めて書き始めたときと同じですね。

 

やればできる!そう信じて、自分でIoTを使って何かをやっていきたいと思います。それが何か?

 

見つけるのはこれからです。

 

60前のおじさんの挑戦は続きます。面白そうだなと思ったら、また見に来てください。

 

 

[twt]

 

 

 

ABOUT ME
じぇいかわさき
進撃の社畜/弱小プロブロガー 本ブログは、還暦で定年の世代の筆者が、まだまだやれるという事を証明するために新たな事に挑戦した事を情報発信しているブログです。同世代の人達に対して、まだまだいろいろと頑張れる、第二の人生を楽しく生きていく為に現状維持は退化、失敗の反対は行動しないことを座右の銘とし、思い立ったことにチャレンジした記録です。また、せっかく稼いだ収益を騙し取られないように、毎日来る迷惑メールなどのネットリテラシーについても情報発信をしています。最近はプログラムにも挑戦しだしました。 このブログは ネットリテラシー ブログ 働くこと について書いており、第二の人生で頑張る同世代の心に刺さる記事を目指してます。人生100年、まだまだがんばれます。 >> Twitterをフォローする