「Raspberry Pi」カテゴリーアーカイブ

codey rocky(ESP32)でMicroPythonを動かす(2) – MQTTでメッセージの送受信

ども。こんばんは。

codey rockyではメッセージキューWとしてMQTTWが実装されています。

せっかくなのでちょっと試してみます。

MQTTについては少し古いですがこの辺がわかりやすいです。

MQTTで始めるIoTデバイスの作り方 第1回:「MQTT」を知り「Mosquitto」を導入する (1/3)

まずはMQTTのブローカーとしてmosquittoをRaspberry Pi上にインストールします。
※そのうちRabbit MQも試したいなと思いますがまずは手軽そうなmosquittoで試します。

ブローカーの動作環境はRaspbian GNU/Linux 9.11 (stretch)で、2020/02/16時点最新のパッケージになっています。

・mosquittoのインストール

sudo apt install mosquitto

うちの環境ではlibev4とlibwebsockets8も合わせてインストールされました。

・続いてクライアントもインストールします。

sudo apt install mosquitto-clients

libmosquitto1が合わせてインストールされました。

・ブローカーの起動

sudo systemctl start mosquitto

sudo systemctl status mosquittoで確認して特に問題なく起動していました。
1883ポートでLISTENしているみたいですね。

・テスト

以下のコマンドでtestというトピックを購読(サブスクライブ)します。

mosquitto_sub -d -t test

実行結果はこんな感じ。
※lexはうちのラズパイのホスト名です。

Client mosqsub/6162-lex sending CONNECT
Client mosqsub/6162-lex received CONNACK
Client mosqsub/6162-lex sending SUBSCRIBE (Mid: 1, Topic: test, QoS: 0)
Client mosqsub/6162-lex received SUBACK
Subscribed (mid: 1): 0

・テストメッセージ送信

別のターミナルでSSHに接続してtestトピックに投稿(publish)します。

mosquitto_pub -d -t test -m “test 1”

すると、サブスクライバー側で以下のように表示されます。

Client mosqsub/6162-lex received PUBLISH (d0, q0, r0, m0, ‘test’, … (6 bytes))

test 1

これで最低限の動作はokですね。

続いてcodey側にこんなコードをアップしてみました。
以下のリファレンスからサンプルコードを流用していますが、リファレンス内のサンプルコードの「from mqtt import MQTTClient」は誤りで、正しくは「from cloud_message.mqtt import MQTTClient 」です。

https://makeblock-micropython-api.readthedocs.io/en/latest/public_library/Third-party-libraries/mqtt.html

■サンプルコード

#import mqtt package
#リファレンスは"from mqtt import MQTTClient"となっているが実際はcloud.message.mqttが正しい
#https://forum.makeblock.com/t/importerror-no-module-named-mqtt/15029
from cloud_message.mqtt import MQTTClient

import codey, time, event
import utime

MQTTHOST = "mosquittoのサーバのIPアドレス"
MQTTPORT = 1883

#なんでもいいらしいが重複はだめっぽい。
#https://qiita.com/egnr-in-6matroom/items/3aef4bd45857e75bb1d3
client_id = "101"

# Example Path
#ここの指定方法がまだわからない・・・。全部取得してみる。
Topic = "#"

# ID / PWはオプション。今回はmosquitto側では指定していないので省略した。
#mqttClient = MQTTClient(client_id, MQTTHOST, port=MQTTPORT, user='test', password='test', keepalive=0, ssl=False)
mqttClient = MQTTClient(client_id, MQTTHOST, port=MQTTPORT, keepalive=0, ssl=False)

# Connect to the MQTT server
def on_mqtt_connect():
    mqttClient.connect()

# publish a message
def on_publish(topic, payload, retain=False, qos = 0):
    mqttClient.publish(topic, payload, retain, qos)

# message processing function
def on_message_come(topic, msg):
    #print(topic + " " + ":" + str(msg))
    #b'test'みたいな表示になるので、文字列化して分割。なおメッセージ自体に'(シングルクォーテーション)がある場合は""で囲まれるが未対応
    temp_msg = str(msg).split("'")[1]
    codey.display.show(temp_msg,wait=True)

# subscribe message
def on_subscribe():
    mqttClient.set_callback(on_message_come)
    mqttClient.subscribe(Topic, qos = 1)

@event.button_a_pressed
def on_button_a_pressed():
    codey.display.show("Start",wait=True)
    codey.wifi.start('SSID', 'パスワード', codey.wifi.STA)
    time.sleep(1)
    if codey.wifi.is_connected():
        codey.emotion.smile()
        on_mqtt_connect()
        on_subscribe()
        codey.display.show("Ready!",wait=True)
        while True:
            #RTCがついてないので起動からの時間となる。
            #nowtime = utime.time()
            #codey.display.show(nowtime,wait=True)
            #codey.display.show(codey.battery.get_percentage(),wait=True)
            # Blocking wait for message
            mqttClient.wait_msg()
            #ブロッキングしない方
            #mqttClient.check_msg()
            time.sleep(1)

    else:
        codey.emotion.shiver()


@event.button_b_pressed
def on_button_b_pressed():
    codey.display.show("Stopped",wait=True)
    codey.stop_all_scripts()

これをcodeyにアップロードすると、パブリッシュされたメッセージを表示するようになります。

だいぶ前に作ったbrouteから消費電力を取得するスクリプトを少し改変して、取得した結果を単純にmosquitto_pub -d -t test -m 値で投稿(publish)するようにしました。
#python上からosコマンドを実行しています。こういう移植性のないことしちゃだめですね。ちゃんとmqttをpythonから操作するように変更しないと・・・

動作の様子はこんな感じです。
エアコンを入れると消費電力がちゃんと上がってますね。

 

本当はメッセージが無い間は、時計にでもしようと思ったのですが、odey rockyにはRTCが搭載されていないようで、utime.time()で取得した値は、電源投入後からの起動時間(秒)となります。

mqttClient.wait_msg()はブロックされますが、mqttClient.check_msg() はブロックされないので、まぁバッテリーの残量を出すとかそういう感じのことはできそうですね。

あと、MQTTのトピックの指定の仕方がよくわかりませんでしたので”#”としています。一応トピックは「test」で来てるみたいですが、「/test/」とかにしてもうまく拾えないんですよね。
これはもうちょっと調べないと。

次は赤外線周りをなんかやってみようかな。

【バックナンバー】

ではでは。またの機会に。

久々にRaspberry PIのパッケージを更新したらwpa_supplicantがどっかいった話

ども。こんばんは。

久々にうちのラズパイ(Raspberry Pi 3 Model B)のパッケージを更新しました。
※raspbianのバージョンは9.1 Stretchです。ディストリビューションはそのままでパッケージの更新だけした感じです。

普通にapt-get updateしてapt-get upgradeしただけなのになぜか無線がつながらない・・・。

結構悩みました。wpa_supplicantがうまく動いてない様子。

# systemctl status wpa_supplicant.service
● wpa_supplicant.service – WPA supplicant
Loaded: loaded (/lib/systemd/system/wpa_supplicant.service; enabled; vendor p
Active: failed (Result: exit-code) since Fri 2016-11-04 02:16:45 JST; 38s ago
Process: 376 ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant (code
Main PID: 376 (code=exited, status=203/EXEC)

11月 04 02:16:45 lex systemd[1]: Starting WPA supplicant…
11月 04 02:16:45 lex systemd[1]: wpa_supplicant.service: Main process exited, cod
11月 04 02:16:45 lex systemd[1]: Failed to start WPA supplicant.
11月 04 02:16:45 lex systemd[1]: wpa_supplicant.service: Unit entered failed stat
11月 04 02:16:45 lex systemd[1]: wpa_supplicant.service: Failed with result ‘exit

これ、結論から言うと、wpa_supplicantの実行ファイルが何故か消えてました。

# ls /sbin/wpa_supplicant
ls: ‘/sbin/wpa_supplicant’ にアクセスできません: そのようなファイルやディレクトリはありません

ただ、wpasupplicantパッケージ自体はapt上に存在している模様でしたので、apt-get remove wpasupplicantしてinstallしたら復活しました。

一体何だったんだろう・・・。

特に設定とかは変えてませんが、直ったあとに、wpa_passphraseコマンドでPSKを暗号化しておきました。

ではでは。またの機会に。

 

Google AIY Voice Kitで自作スマートスピーカー – 2 – GCPへの登録とサンプル実行

ども。こんばんは。

続いては、GCP周りです。

これもガイドには載っていますが、ガイドの画面キャプチャがちっちゃいのでこちらでも紹介したいと思います。

今回はGoogle Assitant APIを使うためにGoogle Cloud Platformにサインアップして、新しいプロジェクトの作成やAPIキーを取得します。
取得したAPIキーをAIY Voice Kitにコピーしてサンプルを動作するところまでをやります。

まずはGCPのコンソール(https://console.cloud.google.com/)にアクセスします。

私は初利用だったので、規約の同意とかが出てきました。
※Googleのアカウントはすでに持っていたモノを使っています。

新しいプロジェクトを作成します。

任意ですが「AIY Voice Kit」とかにしてみました。

できました。

作成されたプロジェクトが選ばれていることを確認して「API & Services」のダッシュボードに移動します。

Google Assistant APIを検索します。

APIを有効します。

有効化できたらこんな感じになります。
※「認証情報の作成」っていうボタンを押したくなるのですが一旦我慢します。

こんな感じで、左側の「認証情報」を選択して「OAuth同意画面」を設定します。
ユーザに表示するサービ名は最後に出てきます。
※それ以外はメールアドレスのみ入力しましたが多分大丈夫。。

で、次左のタブに移動してOAuthのクライアントIDとクライアントシークレットを作成します。

クライアントの種別とかを設定します。
今回はその他にして手打ちで入力しました。

作成を押した後ポップアップでIDとシークレットが表示されますが後でダウンロードできます。

出来上がったものをダウンロード(JSON形式)します。

ここまででGCP上での操作は一旦終了!

次にGoogle Assistant関連のアクティビティの設定をします。
これ結構重要みたいです。

実際にAssistantを使いたいGoogleアカウントでアクティビティの管理(https://myaccount.google.com/activitycontrols)にアクセスします。

以下のアクティビティを有効にします。(私は全部有効になっていました。)

  • ウェブとアプリのアクティビティ
    • Chrome の閲覧履歴と Google サービスを使用するウェブサイトやアプリでのアクティビティを含める
      ※↑これにチェック入ってないと一辺倒な応答しか返さない?らしい。
  • 端末情報
  • 音声アクティビティ
  • イメージはこんなかんじ。

では、いよいよAIY Voice Kitを使います!

ダウンロードしてたJSONファイルを転送します。

 

ダウンロードしたJSONファイルをAIY Voice Kitにアップロードします。
※ダウンロードした状態だと「client_secret_****」という名前のはず。

アップロード後以下のファイル名にリネームします。

/home/pi/assistant.json

ここまでで準備完了。

いよいよサンプルプログラムを実行するのですが、私はSSH環境でやっています。

HDMIでディスプレイに繋いでいれば、AIY用のターミナルがあるようですが、SSH経由だと環境変数などを一旦読み込む必要があります。

こんな感じ。(piユーザでログイン後に実行)

pi@hoge~ $ cd AIY-voice-kit-python/
pi@hoge:~/AIY-voice-kit-python $ source env/bin/activate
(env) pi@hoge:~/AIY-voice-kit-python $

じゃぁOK Googleなやつ言ってみますか!

(env) pi@hoge:~/AIY-voice-kit-python $ src/assistant_library_demo.py

※初回は以下のようにアカウントの同意?を求めるURLが出る模様です。ディスプレイとか繋いでるとブラウザが立ち上がってたのかも?

とりあえず普通にURLをコピーして(別の端末でもいいので)アクセスします。

アカウントの選択が出てきます。

アクセスを許可します。

コードが出てくるのでこれをSSHに戻って貼り付けます。

これで喋るはずです。

OK google!

(ボタンが光ります!おおお!)

今日の天気は♪

You are welcome!

・・・You are welcome?

 

!?

・・・あれ?

あ、こいつ英語しかしゃべれないんだった・・・

ということでこうなりました。
※こっ恥ずかしいので、私の声はカット済み。ハウアーユーとネイティブジャパニーズで喋りかけました。

 

あと、音でかい・・・。

音量(ボリューム)の調節はこちらが参考になりました。

Voice Kitで自作GoogleHomeを作る際に付け足したこと

$ sudo amixer -M #←ミキサーの名前を確認

$ sudo amixer set Master 70% #←音をちっちゃく。
Simple mixer control ‘Master’,0
  Capabilities: volume
  Playback channels: Front Left – Front Right
  Capture channels: Front Left – Front Right
  Limits: 0 – 255
  Front Left: 179 [70%]
  Front Right: 179 [70%]

起動時に小さくする用にしたほうがいいですね。

日本語の件は、一応つい最近Assistant SDKが多言語対応したみたい?ですね。

Google、「Google Assistant SDK」を日本語対応などの新機能でアップデート

あと、先駆者の方がいらっしゃいましたが、いわゆるGoogle Homeのようにはなかなかいかない模様ですね。。。

AIYスピーカーを、ほぼ日本語版Google Homeに【Google Assistant SDアップデート】

と、とりあえず動いた!!!

次回は・・・。。。うーん。どうしましょ。日本語対応ですかね。。。

あと、Cloud Speech(音声の認識してくれるサービス)は有料?らしいですが、日本語もちゃんと聞き取れる見たいでです。

また、登録していませんが、2017年12月30時点では、

料金はざっくりまとめると、月間60分までは無料。(15秒単位。一秒しか喋らなくても15秒分としてカウントされる)
それ以上(61~100 万分)は、$0.006 / 15 秒*らしいです。

えと、単純計算で

60分/15秒=240回

240回/31日=7.741…

一日7回までは無料で使える感じですかね。単純計算ですが。

で、まぁ追加になっても15秒1円もかからない($0.006=0.67643743 円 2017/12/30時点)し、いいかなぁ。
これも無料トライアルに含まれるんかな?(←まだトライアル登録してないけど。)

バックナンバー

ではでは。またの機会に・

Google AIY Voice Kitで自作スマートスピーカー – 1 – 組み立て〜初期設定編

ども。こんばんは。

先日キットは先行販売分が届いていましたが、
今日新しいRaspberry Pi 3 Model Bも届きました!

年末年始遊ぶよ!

ちなみに私は12連休の人です(^q^)

まずは組み立てて普通にラズパイとして使える状態にするところまでをやります。

先に書きますと、途中で両面テープが必要!!です。なかったのでちょっと困りました。

いろいろやり始める前にOSのイメージを準備しておきます。

専用にカスタマイズされたOS(Raspbianベース)が公開されていました。

https://aiyprojects.withgoogle.com/

あと、イメージの書き込みツールとしてEtcherというのが推奨されていましたのでこれもインストールしました。
これ結構良さそう!

ダウンロードしたイメージを選んで焼きます。

シンプルで使いやすいぞ。

SD焼いてる間に開梱。

今回追加で購入したRaspberry PI一式。全部KSYさんで購入しました。¥6,453なり。
SDはAmazonでも良かったのですが、ラズパイ本体(黒電源セット)が¥4,995とギリギリ送料がかかってしまう値付け笑だったので、KSYさんで購入しました。Sandiskの16GBで¥1,458なり。以前購入したもののほうが値段は安くスピードは出そうです。

改めてAIY Voice Kitとご対面。

開封の儀〜。写真付きのマニュアルがあります(英語)。十分読めます。

内容物はこんな感じ。意外とスピーカーがちゃんとしてる!ボタンは緑でした。色って選べたのかな?

では組み立てます。基本ガイド通りです。
まずはスペーサーみたいなやつをラズパイに挿してHATをかぶせます。
※このスペーサー(スタンドオフ?)は、真上から押してもなかなか入りませんでした。前後にグリグリやると入りました。。

スピーカーをつなぎます。
このケーブル、両方赤っぽいですが、奥側は反面が黒に塗られてます。。。
+/-はHAT上にも印字があるので、黒いケーブルを-側に。

差し込んだらドライバーで締めます。

次にマイク用とボタン用のケーブルをHATに接続します。
4ピンと5ピンなので迷わないはず。

マイク側も繋ぎます。
これ!後で両面で貼らないと駄目です。
一応トゲトゲ?がついててダンボールにブスっと刺さりますが、ガイドには両面で貼ってって書いてますね。

次は箱を組み立てます。まずは底から。

もう一つある箱も指示通り折り曲げていきます。

ラズパイとスピーカーを収めます。

外箱にいれます。写真撮り忘れましたが、マイクボードもつけます。(両面で)

いれ終わったところ。HDMIと電源もちゃんと横から抜き差しできます。

なんか斜めってるけどUSBとLAN

だいぶ斜めってるけど、SDカード・・。

ボダンを取り付けます。

ボタンのケーブルを刺します。
なんか「宝」って書いてる・・・。向きに注意してケーブルはガイド通り。色で判別でいます。

白 黒
△宝△
青 赤

です。

でけた!

SDも焼きががりました。

ここから、私は以下2つの操作をしました

・/boot/直下に空っぽのsshファイルを作成。(SSHを有効にするため)

あとWiFiの設定もしました。/boot/直下にいつもの「wpa_supplicant.conf」を書いておけば読み込んでくれる見たいです。

じゃぁSDカードを挿入して起動します!

おおおお。専用の壁紙だー。

ダイアログが出ているのはSSHが有効になっているってのとパスワードがデフォルトだってことが書いています。
※デフォルトID/パスワードはRaspbianと同じでpi/raspberryです。

デスクトップにある「Check audio」を実行します。

おおー。音出た!あと、自分の声を録音して再生してくれます。

意外と音でかい笑あと思ったより音がいい。

できました。

後は、piユーザのパスワード変えたり、Wifiのリージョンを変えたり、タイムゾーンを変えたり、apt-get update、apt-get dist upgradeとかrpi-updateとか。
この辺を参照。NTPは入ってたな。最初から。

間違いないくpiユーザ消さないほうがいいですね。今回は。

次回はGCPとかを設定してGoogle Assistant APIを設定します。

ではでは。またの機会に。

 

 

Google AIY Voice Kitが届いた

ども。こんばんは。

先行販売で申し込んでいた分が届きました!

が、まだこれ用のRaspberry Piを買ってない・・・・

FortiGateのリプレイスも終わってないし、これはもうちょっと後・・・かな。

実はこっちも欲しくなってきてる・・・

RaspberryPiを“学習リモコン化”する基板が発売、公式ケースに収納OK

うーん。やりたいことがいっぱいあるぞー。

あ、龍が如く 極2は、本編一通り終わりました!真島編も楽しみ!

ではでは。またの機会に。

おもちゃ箱を買った。龍が如く 極2を始めた。とか。

ども。こんばんは。

雑記です。

・電子工作用の諸々を入れるツールボックスを買いました。

アイリスオーヤマ 工具箱 マイキット 40 クリア/ブラック【幅約40×奥行約22×高さ約22cm】
¥1,500なり。

もともとキットに付属していたケースが小さくてパンパンだったので。

いい感じになりました。ちょっと大きいけどね。

・龍が如く 極2はじめました

・スマートスピーカー関連小ネタ

Amazon echo dotをBluetoothスピーカーにつなぎました。だいぶ前に買ったCreative T12 Wirelessに接続しました。なかなか快適です。

あと、買い物リストはなかなか便利。

やっぱり賢いのはechoかなあ。特にGoogle home miniは喋りかけても反応したかパット見わかりづらい。
ユーザアシスタンスで反応したら音出せるんだけど、なんかダサいよな。。。

ではでは。またの機会に。

 

いまさらはじめるRaspberry Pi(2017) – 7 –

ども。こんばんは。

今日は秋葉原に買い物に行ってきました。

秋月電子と千石電商を見てきました。

どっちもすごいですね。人もいっぱい。見たこと無い部品でいっぱいです。
なんとなく千石電商のほうが買いやすいかも?と個人的には思いました。
秋月電子のほうが細かいパーツはおおいのかな?比べるほどの知識はありませんが・・・。

こういうお店にいくと電気街って感じがしますよね。

色々面白そうなものがたくさんあって、思わずRaspberry Pi Zero Wのスタータキットとか買ってしまいそうになりましたが、今日は目的が決まっていたので、欲は出さずに以下購入。

ラジペン 一番やすそうなやつ・・・¥700
ブレッドボード用ジャンパワイヤ(50本) ¥470
メス-オス ジャンパワイヤ(100個) ¥570

これはなかなかいい買い物をしました。

ラジペンは一本も手持ちがなかったのでとりあえずで買いました。
その他2つのパーツおかげで随分スッキリしました。
※回線図でよく見かける斜めにシャっとつながっているのはこういうジャンパワイヤだったんですね。

ということでbefore/after。

・Before。ゴミゴミしている。写真には写ってないですが、LCDはオス-オスとメス-メスのジャンパワイヤで繋いでおりこんがらがっています。

・After。すっきり。

本当に少しずつ少しずつこういうところがわかってきました。

全く道の世界なのでお店に行ってどういうものが売ってるのか見るのは勉強になりますね。

ではでは。またの機会に。

バックナンバー

 

 

いまさらはじめるRaspberry Pi(2017) – 6 –

ども。こんばんは。

昨日は風邪で寝込んでしまいました。。。

一昨日のネタです。

赤外線レシーバーを使ったリモコンに挑戦中です。
※苦戦。単純に受信するだけなら簡単。

それはまた明日以降書くとして・・・・

ブレッドボードとT型拡張ボード(T型エクステンション、T Extentioinなど)の使い方を唐突に理解しました。。。

理解が遅い。。。

いろんなサンプルを見ていくうちに、自分が猛烈に間違っていることに気づきました。

今までの使い方・・・

正しい使い方

だから、メスのジャンパワイヤばっかりだったのか!
※でもメス-オスのジャンパワイヤは絶対いると思う。。。

ずっと、GPIOの3.3Vとか、一個しか無いのおかしいよなーと思ってましたが、こういう使い方するんですね。。。

3.3VとGNDをブレッドボードの上下の+と-に繋ぐと、そこに繋いで電力を得られる仕組みになっているようです。
※で、ちょっとまた知らなかったのですが、+と-で赤と青のラインが入ってますが、ラインの切れ目までしか電気が届かないようになっているみたいですね。
なので、今LEDに繋いでいる部分が左半分の一番右端という感じ。

で、T型拡張ボードの横からとっていきます。こうすれば、T型拡張ボードにかかれているピンアサインを見ながら接続できるし、電源も端から取ればいいので、いっぱいつなげます。

なるほど・・・。普通かもしれませんが、なかなか良いキット買ったみたいです。

やっと少しづつ理解してきました。

LCDも繋ぎ変えましたが、これメス-メスのジャンパワイヤにオス-オスを繋いでいるのであんまり良くないっぽいです。

そんなに値段は高くなさそうだしいろんな長さのセットを買っておこう。

おまけ。いま頑張っているIR受信モジュール。

AX-1838HSという名前みたいです。

参考:https://arduino-info.wikispaces.com/IR-RemoteControl

ではでは。またの機会に。

バックナンバー

いまさらはじめるRaspberry Pi(2017) – 5 –

ども。こんばんは。

新しいラズパイが届きました!

その前に、ちょっと今日はヨドバシにいって色々買ってきました。

小さめで安そうな(¥1800くらいしたけど・・・)キーボード、テスター(¥2,500くらい)、安いHDMIケーブル(¥1,000くらい2M)です。
HDMIケーブルは、ずっと余りが無いと思いこんで、DVI->HDMIを使ってPCのディスプレイにつないでいたので、テレビとつなぐために買いましたが、家に帰ったらテレビに余ったHDMIケーブルが刺さっていました。灯台下暗し。無駄な出費だー。。。

テスターは今後色々回路を作る上で、また壊してしまわないように買いました。

で、新しいラズパイきました!

Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Clear)-Physical Computing Lab
¥5,980なり。

最初からケースに入っていました。
GPIOのピンアサイン表が付いてきます。

左が今回買ったもの、右が壊れた先代。
ネットの評判通りほぼ変わりません。
※ヒートシンクは今回も付属していました。写真は付ける前。

今回のケースは本体とケースをネジ止めしない見たいですね。
また、ケース側にはGPIOの上部に取り外し式のカバー(画面左端)がついています。
割れる想定なのか、予備が1つ付属していました。確かにすぐ割れそう。。。

それと、これ技適マークなくない?と思ったら説明書にありましたけど、これでいいのかな。。。

・・・。

さて、いよいよSDを旧→新へ差し替えて起動します。

・・・めちゃくちゃあっさり起動しました。

MACアドレスが変わったことで、無線APの設定など周辺機器は変更しましたが、ラズパイ自体は何も設定を変えなくても大丈ぶでした。。。大変すばらっです。

筐体が変わったのでrpi-updateをしておきます。

ちなみにちゃんとCEC?でテレビにraspberrypiだと通知するんですね。

そのまま、勢いでLCDにリベンジします。

やっぱりこれを使うのだろうということでこれを使います。

今回は、事前にLEDを光らる回路を接続してちゃんとGPIOの動作確認をしました。

結果、ピンは↑の印字通りで問題ないようでした。

先日失敗したときは、ラズパイ側のGPIOの接続の向きを間違ったのでは?と思っていましたが、どうも正しかったようです。

ということは、本当にジャンパワイヤの接続を間違えただけだった可能性がありますね。。。
※そもそも5Vに繋いでいたりしたので。。。

また、今回はちゃんとシャットダウンして、電源を抜いた上で接続し、何度かチェックしてから電源をいれます。

配線はこの付属ドキュメントの図の通り。

GPIO側。

LCD側

お!バックライト?が光った!
今回は熱くなったりもしないようです。

とりあえず一安心。

続いてI2Cを使えるようにします。

raspi-configから設定。

ここまで順調ですね。

付属のマニュアルによれば、/etc/moduleを編集したり、pythonにi2c-toolやsmbusをインストールするよう指示がありますが、特にそのあたりは不要でした。

続いて、I2Cの確認をします。

# i2cdetect -y 1

こんな結果が帰ってきます。
この27が大事みたいです。まだこの辺はよくわかっていません。。。

またいつのタイミングからなのかはわかりませんがgpio readallの結果がこんな感じになっていました。

PIN2とPIN3のモードがALT0になっている。I2Cを有効化したからなのか、ちゃんと接続後にI2Cとして認識されたのかは不明。後日試します。

ここまでくればサンプルを流してみます。

付属CDにあったサンプルを流してみました。
※付属CDにもpythonスクリプトがありますが、付属のドキュメントだと、wgetしろって書いてますね。

おー!動いた!!!!!

※うまく表示できない場合は、裏面のネジ?を回して濃度?を調整してみてください。
私は右にいっぱい回してちゃんと映りました。

ということで、サンプルを改変して、こんなのを作ってみました。

ちょっと撮影が下手ですが・・・。
今のラズパイの温度とuptimeコマンドの結果を出し続ける感じです。
本当は1行目だけ1秒ごとに更新したいのですが、あんまり再描画が速くないみたいで、断念しました。
※1行まるまる書き換えるのではなく、部分的に再描画させるようなことができないか確認中。

おまけです。

ラズパイって起動停止の如何によらず、赤色LED(PWR)点きっぱなしなので、起動中はピカピカするようにしました。

参考サイト:Raspberry-Pi 3 の電源ランプを点滅させる

ちょっと、見た目が”うるさい”感じになりました。。

しかし本当に昨日はなんでこんなに簡単なことなのに失敗してしまったんだろう。。。

ではでは。またの機会に。

バックナンバー

いまさらはじめるRaspberry Pi(2017) – 4 –

ども。こんばんは。

悲しいお知らせですが、記念すべき1台目のRaspberry PI 3は本日お亡くなりになった模様です。

多分、回路のつなぎ間違えか、よくわからずに繋いでしまったがゆえに過電圧をかけてしまったか。

今日はこちらを参考に、LCD(IIC/I2C 1602シリアル液晶モジュール)をつなごうとしていました。
※誤解のないようにしますが、こちらの記事を執筆された方は何も悪くないです。悪いのは私なので・・・。

1602 I2C Serial LCD Moduleをラズベリーパイ3(Raspberry Pi 3)で使う

何かをつなぎ間違えたのか、LCDモジュール側がかなり熱くなっていたことに気づいて抜いたのですが(それも良くなかったのかも)、その後ハングアップ。

本体も結構熱くなっていたので、一旦電源を抜いてみて、起動はしたものの、/bootなどがマウントできず。

何度か再起動して、普通に起動したのですが、その後ハングして、次に起動することはありませんでした。

電源を挿しても電源LEDも光らない(何度か再起動してみると、まれに弱々しく光る程度から完全に消灯した)ので、多分ハード的に壊してしまったのかな。。。

以下参考。先にこういった先人の知恵をいれておくべきだった。

Raspberry Piの壊し方

やっぱりハードものは難しい。

いかに自分がソフトウェアのレイヤーでやってきたかがよくわかります。

無知に物事をすすめると物が壊れるということがよくわかりました。
ソフトと違ってハードウェアは壊れるとすぐには元に戻らないので。。。

ただ、これにめげず、まだやってみようと思います。

ということで、新しいラズパイを発注しました。
今度はelement14版です。技適ついてるらしいので。

SDカードと中のOSが生きていることを願うばかりです。

ではでは。またの機会に。

–追記–

今回かったキットにそういえば付属CDがついてたと思って、見てみました。
※「K71 respberry PI」というフォルダを見ればいいみたい。

ちゃんと接続方法載ってますね。おいら5Vでつないじゃったよ・・・。

これLCDモジュール側も壊しちゃったかな。。。

あと、次このGPIOのライザ?みたいなの使う前に一度Lチカでピン配列が基盤のプリントと合ってるか見ておこう。。念のために。。。特に5Vの位置を・・・。

それと、ジャンパワイヤのメスがないので、ばらして使ったけど、いいんだよね・・・。

バックナンバー