まつたろうの歩み

PythonやCの勉強中に「指し示す」いう表現がありました。それを知りたくて今はコンピュータシステムを勉強しています。

ラズベリーパイで電子工作 その4

 シリアル通信のプログラムは、意味がよくわかりません。理解できないまま、コードを写して実行しています。金丸先生の書き方がシンプルなので、深く理解できていませんが平行してやっています。次は温度センサーです。

温度センサー

パイソンの実行画面に、温度が表示されます。次に一歩進んで、その温度をLCDに表示する回路です。

温度センサーとLCD

 次はOSOYOOに戻り、チルトセンサーを使います。傾いていたら、画面に "tilt..." と表示されLEDが点滅します。垂直になったら、点滅せず "Not tilting" と画面に表示されます。

チルトセンサー

Webサイトは下です。

Raspberry Pi スターターキット第14回:SW520D傾斜スイッチ « osoyoo.com

 次は、可変抵抗器で0Vから3.3VまでをLCDに表示する回路です。シリアル通信の SPI と I2C通信を使います。

可変抵抗の電圧の変化を表示

Webサイトは下です。

Raspberry Pi スターターキット第15回:ラズパイ、可変抵抗器とLCD « osoyoo.com

最初に申し上げたように、シリアル通信はプログラミングの内容が難しいです。一通りOSOYOOのキットを終わらせたら、シリアル通信の勉強をやってみたいと思っています。

ーーーーー じいじと孫の工作 ーーーーー

 家に、音が出なくなったラジオ付きの時計がありました。孫と一緒に分解して中を確認しました。

音が出なくなったラジオ付きの時計

分解してみたら、経年劣化で半田付け部分が腐食して断線していました。時計部分は動作します。みの虫クリップで、断線部分をつないでみたら、ザーッと雑音がでました。ラジオとして独立させ、孫にあげることにしました。100均でケース・DIYショップでスイッチ(50円)を買ってきて、作りました。

ラジオと時計

スイッチを入れたときに、ランプが点灯した方が良いなと考えました。LEDは持っているのですが、もっとおもしろい物を思いだしました。正常に動作しない、光学マウスのLEDです。分解して、電池をつないでみたら使えそうです。

ラジオと分解したマウス

孫が来たときにのこぎりで、必要なLED部分を切り取りました。それから配線です。基板に付いていた抵抗は63オームで、明るすぎ電池が消耗するので1Kに交換しました。みの虫でつないでテストしたら、点灯しません。何カ所もつないでみましたが、だめです。テスターを当ててみたら、針が逆に動きました。すっかりスイッチ側がプラスと、思い込んでいました。逆につないで、ようやく完成しました。

完成したラジオ

写真では確認しずらいですが、LEDは右下でほの赤く点灯しています。スピーカーの穴が不揃いで見かけが悪かったので、前面にマスクから切り取った不織布をはりました。

ーーーー 今日の一言 ーーーー 

 百花繚乱の季節です。先日うきはまで、花見に行きました。目的のしだれ桜は、すでに時期は過ぎているようでした。でも他の桜は満開で、平日にもかかわらずたくさんの方が花見に来られていました。前回紹介した、我が家の肥後椿は枯れてしまったので、昨日剪定しました。今朝は風もないようなので、これから消毒します。

ラズベリーパイで電子工作 その3

 ラズベリーパイでOSYOOのキットを製作しながら学習しています。今回はまずアナログー>デジタルコンバータ(ADC)を使った回路です。シリアル通信の SPI を利用する基本の回路です。下の画像のような構成です。

ADC は MPC3008 です。

 これらも全て、ダウンロードファイルを実行します。うまく動作したら、C言語とパイソンのコードを書き写して実行します。動作結果は、下の画像です。

MPC3008 を動作させる。

 書き写して動作はできるのですが、コードの表現がわかりません。持っている雑誌「インターフェース」でシリアル通信の基本的なことを勉強しました。コードを見ながら、こういうことをやっているのだなとは考える事ができます。しかし、コードは慣れていないのか理解することができません。とりあえず次の I2C までやって、再びコードの研究をすることにしました。下は Webページです。

Raspberry Pi スターターキット第10回:ラズパイのSPIポート « osoyoo.com

 次のレッスンは、上の回路に光センサー(フォトダイオード)をつけて明るさを制御する回路です。フォトダイオードを指で隠すと、明るく光ります。

光センサーで明るさを制御

下はWebページです。

Raspberry Pi スターターキット第11回:ラズパイでLEDの明るさを制御する « osoyoo.com

多少回路は違いますが、前に紹介した金丸先生の本「RaspberryPiで学ぶ電子工作」でも掲載されていたので、パイソンで実行しました。

 次に、金丸先生の本に掲載されていた半固定抵抗器を使って制御する回路です。回すと、ディスプレーに増減する数値が表示されます。

半固定抵抗器で制御する

 次のレッスンは、I2C 通信を利用して LCD を使う回路です。

LCDを使う

この回路でも、コードがわかりませんでした。特にビットシフトしているだろうと考えられるところは難解です。次に金丸先生の本で実行して、また研究しようと考えています。ウェブページは下です。注:第12回は、回路基板を持っていないので省略。

Raspberry Pi スターターキット第13回:I2C 1602 LCD « osoyoo.com

ーーーーー じいじと孫の工作 ーーーーー

大きな工作になってきました。

大きくなってきた模型

ーーー 日記 ーーー

 だんだん春めいてきました。卒業入学シーズンです。我が家の庭には、椿と水仙が咲き誇っています。

椿と水仙

 この水仙を皆さまに見ていただきたくて、投稿しました。

あれから、隣家にもご協力いただき家の周囲すべてにトゲトゲをつけました。穴を掘るところには網の細かいネットを敷きました。ようやく猫もあきらめてくれたようです。

ラズベリーパイで電子工作 その2

 前回に続き、OSOYOOのキットを製作しています。次のレッスンは、押しボタンスイッチで LED を点滅させる回路です。スイッチを押すと、GPIOのピンに電気信号を発生し点滅させることができます。応用としてLEDの替わりに他の素子を接続すれば、ボタンスイッチとして使えるようになります。下がその簡単な回路です。

ボタンスイッチでLEDを制御する

Webサイトは下です。

Raspberry Pi スターターキット第7回:押しボダンでLEDを制御する « osoyoo.com

このレッスンもこれまでと同じように、まずCのコードをダウンロードし実行します。動作することを確認したら、コードを書き写します。自分が書いたコードで実行できたら、コードの内容を検討します。C言語が終わったら、次にPYTHONで、同じように実行します。

次のレッスンは、ブザーをならす回路です。

ブザーを鳴らす回路

一定の時間で鳴ったり、鳴らなくなったりします。

Webサイトは下です。

Raspberry Pi スターターキット第8回:ズパイでブザーを動作する « osoyoo.com

次のレッスンは、リレーを使った回路です。

リレーを使った回路

リレーをラズパイのGPIOにつないで、そこからの信号で出力側に接続したLEDを点滅させる回路です。今の出力側にはLEDを接続していますが、直流24Vで動作する機器を接続できます。Webサイトは下です。

Raspberry Pi スターターキット第9回:リレーを駆動して、LEDを制御する « osoyoo.com

 

ーーーー じいじと孫の工作 ーーーー

遊びに来たら、すぐに作っています。今回の作品です。

創造は自由だ!

ーーーー わたくしごと ーーーー

 24日に還暦同窓会に招待されました。私がその昔、中学校の技術教師だった頃の最初の卒業生が還暦の歳になったのです。久しぶりに会った顔からは、中学生だった頃の面影を思い出すのにしばらくかかりました。2時間の一次会(一応区切って締める)、続きの二次会で合計4時間。あっという間に、過ぎてしまいました。この子たちには初任者から、3年間付き合いました。無我夢中の3年間でした。私は50歳で中途退職し挫折感もありましたので、ちょっと参加するのにためらいがありました。しかし、同僚の先輩先生からも誘いがあり、参加しました。結果的には参加して良かったです。何人も昔の話ができ、とても楽しいひとときが過ごせました。とてもいい加減な授業をしていたことがわかる証言を、何人からも聞きました。良い評価の言葉も聞きました。

 そもそも先生になったのは、当時「これが青春だ」などのテレビを見ていた影響が大きいと思います。テレビを見て、先生の仕事もやりがいがあって良いかなと考えました。この子たちを卒業させて、良い先生になるようにつとめました。しかし、そもそも人を導くような人間性や資質は私には備わっていませんでした。奮闘努力の甲斐も無く、生徒に向き合うのさえできなくなりました。最後は”電池も切れ”、中途退職しました。辞めたことに後悔はありませんが、自分自身のことを深く見つめもせずおこがましくも教師になってしまったことにずーっと反省しています。学校を退職して20年になります。退職後、6年試験を受けようやく土地家屋調査士に合格しました。その仕事を12年やりました。今は廃業し、孫と遊ぶこととブログにアップしているようなことをやって過ごしています。うまくいったら、技術の教材みたいなものまで作れたらと思います。卒業生の中には既に亡くなったり、大病を患っている人もいます。健康が大切と改めて思う、この頃です。

ラズベリーパイに着手しました。

 久しぶりに、ラズベリーパイを出しました。約2年ぶりくらいになります。接続の様子です。ラズベリーパイは3Bです。今は4も発売されていますが、まだその必要性は感じていません。少し時間はかかりますが、Webの検索も十分できます。モニターは中古ショップから、1000円で購入したテレビです。

ラズベリーパイを接続

 前は、金丸隆志先生の「RaspberryPiで学ぶ電子工作」を見ながら勉強しました。Pythonを使い、全部完成させました。とても分かりやすい本でした。お薦めです。HTML,CSSは自分のWebサイト制作のために学習していましたが、まだJavaScriptは勉強していないので書き写しただけです。これから先の勉強です。

RaspberryPiで学ぶ電子工作 金丸隆志著

 「OSOYOOのキット」もその時買っていましたが、Webサイトは英語で書いてありわかりにくかったのでやっていませんでした。先日C言語の学習が一通りおわったので、Webサイトを参考に再開しました。ブレッドボードに接続しているコネクターは便利です。GPIO番号が記載してあるで、分かりやすく配線しやすいです。サイトからのダウンロードファイルをメモ帳で開き、右側に配置します。C言語はGeanyをPythonはTonnyを使い、左側に配置し書き写していきます。

コードの記述

コードを書いたら実行します。Geanyでは、ターミナルでコンパイルと実行をします。Thonnyからは直接RUNで実行します。写真は初歩の「Lチカ」です。Webサイトでは、

Raspberry Pi スターターキット第4回:PythonによるLEDライト « osoyoo.com

 2つめは、8個のLEDが順に点灯して流れるように見える flow_led.py(.c) です。

flow_led.py

ラズベリーパイでは、BCM17=GPIO0、BCM18=GPIO1...~BCM4=GPIO7のように8つのGPIOピンが割り当てられています。C言語では、それをforループで順方向(インクリメント)と逆方向(デクリメント)に接続するようなプログラムです。PythonではGPIOピンをリストに入れ、それからCと同じように[for pin in LedPins]で順に接続させます。詳しくは下のWebサイトでご覧下さい。

Raspberry Pi スターターキット第5回:LEDを順次に点灯する « osoyoo.com

 3つめは、LEDが息をするように徐々に明るくなったり、暗くなったりするプログラムです。PWMを使って電力を調節します。PWMはパルス信号で、0から100ヘルツの信号を出力させます。パルス数が多く信号が密になったら、出力が高く明るくなります。パルス数が少なく信号が粗になったら、出力が低く暗くなります。それらをループするプログラムで実現します。

breathing_led.py (.c)

 下のWebサイトで確認して下さい。

Raspberry Pi Starter Kit 第6回:LEDの呼吸ランプ « osoyoo.com

 私が使っているラズベリーパイの検索は、グーグルのChromiumがインストールされています。Webサイトは英語で表示されます。それでも1年近く英会話の勉強をしてきたので、結構理解できるようになりました。わからないところは、そのままグーグル翻訳にコピーして確認します。英語力もさらに、つきそうです。

-----じいじと孫の工作-----

 「創造は自由だ!」を合い言葉に、私が分解し孫が組み立てます。最近の作品です。

孫の工作

だいぶ高く、できました。

 昨日、母(99歳)の施設に面会に行きました。孫の顔を見ると、とても喜んでいました。子どもの力はすごいです。

独習C ようやく終わりました。

今年もよろしく、お願い致します。

 今日、ようやく「独習C」の学習が終了しました。前回の記事から、第12章「Cのプリプロセッサとその他の高度なトピック」及び「付録A」のコードを(写経のように)記述しました。

 第12章では、条件付きコンパイル、組み込みマクロ、関数ポインタ、動的なメモリ割り当て等を学習しました。付録Aでは、主要なライブラリ関数が簡明にまとめてありました。昨年8月からとりかかり、約半年かかりました。率直な感想は、C言語は難しいということです。特にポインタの記述はたくさんあります。難解です。中ほどからは、問題のコードを考えてもわからないので、解答を見ながら記述して実行します。その後、改めてコードを見直しできるだけその意味を理解するように努めました。また、その後復習しやすくするために、書いたコードをテキストファイルにコピーして保存しています。しかし、前にも書いたように覚えてはいません。これから、まとめのテキストファイルが役に立つと思います。該当するテキスト部分をコピペすれば、すぐ実行できます。これから、ラズパイで試しながら少しずつ自分の物になっていければ良いなと考えています。

 早速、学習してきて良かったと思う事がありました。今まで、SPI通信とかI2C通信などM5Stack・ラズパイでも出てきました。どういう方法で通信をしているのか、わからないでいました。最新の雑誌「インターフェース」で、シリアル通信の特集があったので買いました。読んでいると、1ビットずつ送信元から送っているようです。これはCで学習した、ビット単位の右シフトでできそうです。将来、実際にやることになりそうです。楽しみです。

---じいじと孫の工作---

ブロックおもちゃ、完成!

完成した、ブロック建機

 その後、それぞれ分解しました。今度は自由工作です。「創造は自由だ!」を合い言葉に、気の向くまま孫が、組み立てました。遊びに来るたびに、私が分解して孫が新たに作ります。熱中してやってます。かわいいです。

2回目の工作

---困った事---

 猫が家に、糞や尿をしにやってきます。12月チューリップ畑ややさい畑を作ったため、ふかふかの土ができてから、特にひどくなりました。対策として、猫用のトゲ付きのプラスチック用品を買ってきて置いたりしました。しかし、それでもフェンスを乗り越えて侵入してくるので、下の写真のようにフェンスにも設置しました。

猫よけ対策

始めは、右隣の家との間のフェンスに取り付けました。それでも侵入してくるので、次は道路側につけました。それでも、まだ侵入してきました。今度は、裏の家との間のフェンスにつけました。左隣の家との間は、駐車スペース全体に設置するようになってしまいます。見た目がひどく悪くなりそうなので、相談しにくいです。考えていたら、せっかく出たチューリップの芽が、折られてしまいました。そこであまり使いたくなかったのですが、猫よけの薬剤を散布しました。ようやく、今のところは侵入されていないようです。猫対策に多くの時間をさかれ、学習時間がつぶれました。

---能登半島地震お見舞い申し上げます---

 今年は、正月早々地震が起こりました。亡くなられた方には、お悔やみ申し上げます。被災された皆さまは大変なご苦労をなさっていることと、お察し致します。大学の友人が七尾と志賀町に住んでいるので、すぐにショートメールを送り様子を聞きました。しばらくして、返信がきました。2人とも命には別状なくて、安心しました。私は九州ですから、直接何もできません。元気づけになったかどうかわかりませんが、電話をしました。荷物がおくれるようになって、お菓子を送りました。甘い物でも食べて、元気出して!

独習C 第11章まで終わりました。

  独習C 第10章 構造体と共用体、第11章 高度なデータ型と演算子まで終わりました。写経のようにコードを書き写して、実行してみるの繰り返しです。通常使っているのは、ラズベリーパイ・デスクトップ(Linux)で geany を使います。下はgeanyを使用中の画像です。

geanyで計算

 この本はウィンドウズを使用するプログラミングです。それ中で、<conio.h>はウィンドウズ用のヘッダファイルなので、これを使うプログラムが一番困りました。当初は、これがなぜ動作しないのかわからず苦労しました。前に報告したように、Visual Studio を使わなければいけません。重く、仰々しいアプリなのであまり好きになれません。下が、ビット操作を実行しているところです。

Visual Studio で実行

 今はまだ、自分の力で他のプログラムをかけるというレベルではありません。一通りやったという、段階です。構造体をポインタを使って操作するなど、難易度が非常に高いです。一応書いてはいるものの、そのコードが私の頭の中にスーっと入ってきません。たくさんの演算子もでてきました。覚えきれません。コードを見て、あそこに書いてあったなと分かるだけでもとりあえずは十分です。プロではないので本を見ながら、自分が考えるプログラムが書けたらよいかなと思います。これから、具体的なプログラムに接していって、少しずつ身についていくものなのでしょう。

 クロステックの記事で、Pythonを使ってアルゴリズムを考えるプログラムがありました。最大公約数と最小公倍数を求めるアルゴリズムです。「ユークリッドの互除法」を使って考えるものです。久しぶりにPythonを使ったら、「シンプル!」と思いました。C言語は、表現が複雑です。でも、Pythonなど他の高級言語の元になっています。またM5stackなどのマイコンはC言語が多く使われています。残りは、第12章と付録(ライブラリ関数など)です。今年中には終わらないかも知れませんが、あと少し頑張ります。

---- じいじと孫の工作 ----

 大きい車体が3台と、上に乗せる作業車ができました。孫に、こことここを合わせて、というように説明します。孫が何とか組み合わせます。できたら、喜んでピョンピョンはねながら向こうに飛んで行きます。次の作業まで、時間がかかります。仕上げは、じいじがしっかり押し込みます。あと1台作れば、完成です。

じいじと孫の工作

--- 今日の日記 ---

 今日は寒いです。3日前の夏日はどうなったのか、今日は雪がちらついています。孫はインフルエンザにかかり、来られません。来週完成させよう!

 

 

秋田に行きました。(旅編その2)

 12月3日から2泊3日で、秋田に行きました。福岡空港からいわて花巻空港まで飛行機で飛び、その後はバスでの移動でした。バスには長時間乗りました。男鹿新山伝承館に着いた時には真っ暗になっていました。暗い夜道を歩くときには、深淵な雰囲気が漂っていました。なまはげとご対面です。

新山伝承館

 なまはげさんから、「飲み過ぎに注意しなさい。」と言われました。私は、自分を見透かされているように感じました。その後、なまはげ館に行きました。男鹿半島の60の地域から、なまはげが勢揃いしていました。男鹿温泉で宿泊。

なまはげ

 翌日、まず入道崎に行きました。

入道崎

北緯40度線のモニュメントがありました。

北緯40度

ご当地の道路ストッパー?、愛嬌がありました。

ストッパー

それから、本日のメイン「五能線」です。白神山地は雪景色でした。

白神山地

あこがれていた五能線あきた白神駅から十二湖駅まで乗りました。短かったけど、十分堪能できました。

十二湖駅

昼食をとり、それから不老ふし温泉に入りました。

不老ふし温泉

海を見ながら、鉄分の多い茶色の湯で暖まりました。ほてった身体が、なかなか冷めませんでした。また長いバス旅で、田沢湖高原温泉に宿泊しました。雪がかなり残っていました。

田沢湖高原温泉

3日目は少し移動し、乳頭温泉に入りました。温泉三昧の旅でした。

---旅の思いで---

 数年前から、この方面の旅行を考えていました。しかし福岡からでは、空路やレンタカーなど考えても、なかなか計画ができませんでした。今回ちょうどツアーがあったので、飛びつきました。やはりバスの移動が大変で、個人旅行はしにくい方面だなとあらためて思いました。次の東北は秋・紅葉の時期に、三陸海岸に行きたいと思っています。

 帰ってから、英会話の勉強がたまっていました。1日15分ずつでも3日で予習も含めたら、1時間以上かかります。散歩に持って行く、自作のプリントの作成にも1時間くらいかかります。今日ようやく、平常の状態に戻れました。