戻る

<8>「3.5インチタッチスクリーンディスプレイを購入」(2018/8/9)
from=TOZSUN



 Quimat 3.5インチタッチスクリーン HDMIモニタTFT LCDディスプレイ(3,320円) を付属してきたプラスチックケースに取り付けました。この下の中にRaspberry Piが 入っています。手前の端子(縦についているやつ)が、PiとLCDをHDMIで繋いでい ます。かなり小さな画面なので、適したものに変更するのに苦労しました。 (なお、付属のマニュアルもDVDもあまり役に立ちませんでした。) sudo nano /boot/config.txt で編集困難なブートの条件を編集することができます。 この辺は「電子工作を始めよう」(https://www.denshi.club)で知りました。 「sudo」は管理者権限を指します。「nano」はテキスト編集ソフト(付属)です。 この「config.txt」の文中の一部を変更したり付け加えたりします。 私の場合そのままだったのが、 hdmi_driver=2 hdmi_force_hotplug=1 hdmi_group=2 dtparam=spi=on の4つでした。いろいろ環境によって違うようですので、参考にしてください。 変更したのが、 hdmi_mode=2を87に変更しました。これは参考にした方の値をそのまま利用 付け加えたのは、 hdmi_cvt 480 320 60 6 0 0 0 これは画面を480X320のちょうど良いサイズ display_rotate=2 は電源の場所が下にあり立てるのに邪魔だった問題を解決 dtoverlay="ads7846,penirq=25,speed=10000,penirq_pull=2,xohms=150,swapxy=1 この意味はよくわからないが、追加しました。多分タッチパネルに関する設定 だと思います。 保存して終了して再起動すると、バッチリ利用しやすいタッチパネルLCDになり ました。ちょっと画面が小さいけれど。

<7>「日本語の導入」(2018/8/8)
from=TOZSUN


 このRaspberryPiを学習するのに、OSOYOO社のホームページと、ユーチューブの
3名のYouTuber(「コジコジのオタク文化 情報局」さん、「吉田製作所」さん、
ExplainingComputers」さん)を参考に勉強している。
 今日は、「吉田製作所」さんが発信した「648円の超小型PC Raspberry Pi Zero に
Linuxを入れて遊ぼう!」を見ていると、日本語入力の設定が出てきたのでそれを
真似たところ成功しました。

sudo apt-get install ibus-anthy

 これで日本語入力のanthyがインストールされます。最後に、iBusの設定をして再
起動すると、日本語入力ができるようになりました。

<6>「カラーLEDでネオンサイン」(2018/8/4)
from=TOZSUN



 このあたりから参考書としていた金丸隆志さんの本と
かなり違うので、購入した「OSOYOO社のスターター
キット」のCDに掲載されていたレッスンにしたがって
作業を進めた。
 全て英語なので、内容を理解するのに苦労したが、画
像が手助けになった。プログラムがC言語とPython言語
の2つ書いてあったので、勉強だと思って2つとも実行
した。
 Linuxワールドの勉強になったが、苦労するので、スターターキットはよく調べて
本が推薦しているものにすればよかったと後悔している。
C言語Python言語

#include < wiringPi.h>
#include < stdio.h>

//turn on LED --- custom function
void turn_on(int channel){
    digitalWrite(channel,LOW);
}

//turn off LED --- custom function
void turn_off(int channel){
    digitalWrite(channel,HIGH);
}

 void setup(){
    int i;
    for(i=0;i<8;i++){
        pinMode(i,OUTPUT); //i is the wiringPi GPIO code
        digitalWrite(i,HIGH);//i is the wiringPi GPIO code

    } 
}

 int main(){
    int i;
    if(wiringPiSetup()==-1){
        printf("setup wiringPi failed!\n");
        printf("please check your setup\n");
        return -1;
    }
    
    setup();
    printf("\n");
    printf("\n");
    printf("********************************|\n");
    printf("|         Flow LED              |\n");
    printf("|   ------------------------    |\n");
    printf("|                               |\n");
    printf("|   LED_R1 connect to GPIO0     |\n");
    printf("|   LED_R2 connect to GPIO1     |\n");
    printf("|   LED_G1 connect to GPIO2     |\n");
    printf("|   LED_G2 connect to GPIO3     |\n");
    printf("|   LED_Y1 connect to GPIO4     |\n");
    printf("|   LED_Y2 connect to GPIO5     |\n");
    printf("|   LED_W1 connect to GPIO6     |\n");
    printf("|   LED_W2 connect to GPIO7     |\n");
    printf("|                               |\n");
    printf("|                               |\n");
    printf("|                         OSOYOO|\n");
    printf("********************************|\n");

    while(1){
        //turn led from left to right
        printf("|****************************|\n");
        printf("|         ----->>            |\n");
        printf("|    From Left To Right!     |\n");
        printf("|                            |\n");
        printf("|****************************|\n");
        for(i=0;i<8;i++){
            turn_on(i);
            delay(150);
            turn_off(i);
        } 
        //turn on from righ to left
        printf("|****************************|\n");
        printf("|         <); printf("| From Right To Left!
         |\n"); printf("| |\n"); printf("|****************
         ************|\n"); for(i=7;i>=0;i--){
            turn_on(i);
            delay(150);
            turn_off(i);
        }
    }
    return 0;
}

import RPi.GPIO as GPIO 
import time

# set 8 pins for 8 leds.
LedPins = [17,18,27,22,23,24,25,4]

#print message at the begining ---custom function
def print_message():
    print ('******************************')
    print ('|            flow leds       |')
    print ('|     ---------------------  |')
    print ('|   LED_R1 connect to GPIO0  |')
    print ('|   LED_R2 connect to GPIO1  |')
    print ('|   LED_G1 connect to GPIO2  |')
    print ('|   LED_G2 connect to GPIO3  |')
    print ('|   LED_Y1 connect to GPIO4  |')
    print ('|   LED_Y2 connect to GPIO5  |')
    print ('|   LED_W1 connect to GPIO6  |')
    print ('|   LED_W2 connect to GPIO7  |')
    print ('|        ----------------    |')
    print ('|                            |')
    print ('|                      OSOYOO|')
    print ('****************************\n')
    print ('Program is running...')
    print ('Please press Ctrl+C to end the program...')

#setup function for some setup---custom function
def setup():
    GPIO.setwarnings(False)
    #set the gpio modes to BCM numbering
    GPIO.setmode(GPIO.BCM)
    #set all LedPin's mode to output,and initial level
     to HIGH(3.3V)
    GPIO.setup(LedPins,GPIO.OUT,initial=GPIO.HIGH)

 def main():
    #print info
    print_message()
    while True:
        #turn LED on from left to right
        print("***********************")
        print("       ----->>         ")
        print("  From Left To Right!  ")
        print("***********************")
        for pin in LedPins:
            GPIO.output(pin,GPIO.LOW)
            time.sleep(0.2)
            GPIO.output(pin,GPIO.HIGH)
            pass

        #turn LED on from right to left
        print("***********************")
        print("       <)
        print("  From Right To Left!  ")
        print("***********************")
        for pin in reversed(LedPins):
            GPIO.output(pin,GPIO.LOW)
            time.sleep(0.2)
            GPIO.output(pin,GPIO.HIGH)
なお、C言語の方は、コンパイルしてできた実行ファイルを起動するが、 Python言語の方は、ソフトPython3の上にこのテキストファイルを読み 込み実行するので、昔のBasicのようなインタープリタ方式である。

<5>「i2cLCDディスプレイ1602の接続」(2018/7/16)
from=TOZSUN



 このLCD接続は大変だった。参考書としていた金丸隆志さんの本で登場してくる
LCDキットおよびLCD用pythonプログラムと、スターターキットとして購入した
OSOYOO社のLCDキットが異なるため、これまでとは違ってOSOYOO社のCDを
見ながら作業を進めた。手順を記録(ターミナルでほぼ作業をした)すると、
(1)sudo  nano  /boot/config.txt(i2cポートを開く)
                      dtparam=i2c_arm=on
                      dtparam=spi=on
(2)sudo nano /etc/modules(i2cモジュールを追加する)
                      i2c-bcm2708
                      i2c-dev
(3)sudo apt-get install -y python-smbus i2c-tools(pythonライブラリをinstall)
(4)reboot(再起動)
(5)lsmod | grep i2c(i2cが開けたかチェック)
(6)sudo i2cdetect -y 1 (i2cのbusをチェック。古いRaspberry Piでは0)
                      i2c bus のアドレス確認
                      (例では0x3fだったが、私のは0x27だった)
(7)sudo  wget http://osoyoo.com/driver/pi3_start_learning_kit_lesson_13/i2c1602_lcd.py
      (pythonのプログラムをOSOYOO社からダウンロード)
(8)sudo nano i2c1602_lcd.py(I2C_ADDR=0x3Fを0x27に変更)
(9)pythonを起動し、保存したi2c1602_lcd.pyを読み込みRUNすると
   プログラム中の次の部分が表示した。
                         # Send some test
                         lcd_string("Created by         <",LCD_LINE_1)
                         lcd_string("Osoyoo.com        <",LCD_LINE_2) 
                         time.sleep(3) 
                         # Send some more text
                         lcd_string("> Tutorial Url:",LCD_LINE_1)
                         lcd_string("> http://osoyoo.com",LCD_LINE_2)
                         time.sleep(3)
今回の実験は、かなり勉強になった。

<4>「ADコンバータと半固定抵抗を取り付け」(2018/7/10)
from=TOZSUN



 真ん中にある16ピンのADコンバータ(アナログ値をデジタル値に変換)を初めて
触りました。0と1の2値だけでなく、0から4095までの4096値を3.3V
の中に落とし込むことができるので、微妙な電圧の違いを作り出すことができる装
置です。最終的には、その数値を2進数に直して0と1の塊としてパソコンへSPI通
信で送り込むことになります。という、難しいことの学習ができました。
 右の半固定抵抗(ボリューム式つまみ)を回して、電圧をコントロールできます。
ここでのPythonにおけるプログラムで、ボリュームを回して0から4095までの
変化をディスプレイに表示することができました。
 最初は、ボリュームのところに刺さっているコードの赤+と白ーを間違えていま
したので、逆の反応でした。実験中でも差し替えればOKというアドバイスが書いて
あったので、安心して差し替え成功しました。

<3>「GPIOポートとPython2.7で実験開始」(2018/7/7)
from=TOZSUN



手前にあるのは、カメラモジュールです。¥ 1,699 で購入しました。
カメラ用のポートがついているので、そこに差し込みます。
右の板状の実験用基盤(ブレッドボードと言います)にケーブルやタクトスイッチや
LEDなどを刺して利用します。抜き差しで回路ができるので便利です。

言い忘れましたが、有線でも無線でもネットに繋がります。私は無線WiFiで繋いで、
購入した本の「カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみが
わかる」 (ブルーバックス、金丸 隆志著)のサイトからプログラムをダウンロードして
使っています。TEXTベースなのでPython2.7は使いやすいです。今一番使いやすいと言
われているPythonの学習もできそうです。
(basic、C、Perl、ruby、swift)など数々あるプログラム言語の学習に敗れた私ですが、
このPythonはどうでしょうか?

<2>「Raspberry Pi をセットしました」(2018/7/4)
from=TOZSUN


本体に自宅にある4つをつなぎました。まず、HDMI付きのディスプレイと、USBキー
ボードと、Bluetooth用のマウスと、使用していなかったHDD150GBをsata接続ケース
に入れて繋ぎました。(この写真はGPIOポートから延長したケーブルも写っています)
スイッチを入れるとOSが立ち上がります。 

本体だけだと、¥4,180 ですが、ケースをつけると、¥5,980 です。

単品を購入する場合は、自分でOSをダウンロードしてからミニSDカードにインストー
ルする必要があります。詳しくはYouTubeに解説がありますので、参考にしてください。

私は、すぐ使いたかったので、LINUX系のOSがインストールされているミニSDカード
がついているコンプリートスターターキット (Standard 32G)を購入したので、
¥ 9,980 でした。

<1>「Raspberry Pi 3 model B を購入しました」(2018/6/28)
from=TOZSUN



(左)
OSOYOO(オソヨー) Raspberry Pi 学ぶ電子工作キット
初心者演習用パーツセット
ラズパイ11実例
回路配線図とサンプルスケッチ有り
プログラミング ラズベリー パイ 超入門 スターター学習キット
LED制御 スイッチ
I2C LCD 温湿度センサー
マイクロサーボ 人体感知センサー
A/Dコンバータ
ブザー 大気圧センサー
リレーモジュール制御
赤外線リモコン等
IoTを実践する電子部品セット (Pi 3 DIY Kit 22in1)
販売: OSOYOOJP
¥ 2,780

(右上)
Raspberry Pi3 コンプリートスターターキット (Standard 32G)
販売: Physical Computing Lab
¥ 9,980

(右下)
カラー図解 最新 
Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる
 (ブルーバックス)
金丸 隆志; 新書
販売:Amazon Japan G.K.
¥ 1,404

以上
合計: 	¥ 14,164
を購入しました。