ブログ内検索

micro:bitページ
とにかく速いブログサイトを目指す

カテゴリー : 電子工作/page-1

 

BBC Micro:bitのUART

/** Geminiが自動生成した概要 **/
BBC Micro:bit (microbit) の UART 通信では、microbit から Raspberry Pi へのデータ送信と、その逆の受信が可能。microbit は `uart.any()` 関数を使用して受信データを待ち受け、Raspberry Pi はシリアルポートを介して通信する。データの送受信を確実に行うには、microbit と Raspberry Pi 間の TX/RX ピンの正しい接続と、双方で一致するボーレートの設定が重要。また、microbit では `uart.init(115200)` を使用してシステムを初期化することも推奨される。これらの手順に従うことで、microbit と Raspberry Pi 間の双方向 UART 通信を実現できる。

 

ESP8266とRaspberry Piでソケット通信を試す

/** Geminiが自動生成した概要 **/
この記事では、ESP8266モジュールをクライアント、Raspberry Piをサーバーとしたソケット通信を試みています。まず、ESP8266側でWiFi接続を行い、サーバー側のIPアドレスとポート番号を指定してソケット通信を行います。記事では、ESP8266から"send socket from esp8266"というメッセージをサーバーに送信し、サーバー側で受信できていることを確認しています。これにより、ローカルネットワーク内でESP8266からRaspberry Piにデータを送信できることが確認できました。今後は、温度などのデータを送受信する方法を検討していく予定です。

 

コンピュータ二台でソケット通信を試す

/** Geminiが自動生成した概要 **/
この記事は、二台のコンピュータ間でローカルネットワークを通じてソケット通信を行う方法を解説しています。まず、Raspberry Piをサーバー側にして、そのローカルIPアドレスを調べます。次に、Pythonで記述したサーバープログラムを、調べたIPアドレスを使って修正します。クライアント側にはLinuxマシンを使用し、同様にローカルIPアドレスを調べます。その後、クライアントプログラムを実行し、サーバープログラムが実行されているRaspberry PiのIPアドレスとポート番号を指定して接続します。記事では、接続が成功したことを確認後、NodeMCUとRaspberry Piでのソケット通信に進むことを示唆しています。

 

コンピュータ一台でソケット通信を試す

/** Geminiが自動生成した概要 **/
この記事では、マイコンを用いたデータ送信システム構築に向けて、まずは一台のPCでのソケット通信を試行しています。具体的には、Pythonを用いて、受信側(サーバー)と送信側(クライアント)のプログラムを作成し、同一PC上で動作させています。サーバー側はポート番号12345で接続を待ち受け、クライアント側からの接続があると、入力されたデータを受信し、"Successed!"というメッセージを返信します。記事では、それぞれのプログラムのコード例と実行結果を示し、実際にデータの送受信が成功していることを確認しています。今後は、2台のPC間でのソケット通信に挑戦する予定です。

 

NodeMCUでHTTP GETリクエストを試してみた

/** Geminiが自動生成した概要 **/
NodeMCUを使ってHTTP GETリクエストを試行した記録です。記事では、MicroPythonのソケット通信を使って"http://www.example.com/"にGETリクエストを送信し、"200 OK"レスポンスとHTMLを取得できました。しかし、"https://saitodev.co/"のようにHTTPSのURLでは失敗しました。これは、HTTPS通信に対応するためにコードを修正する必要があるためです。記事では、将来WiFi経由でデータ送信を行う際にHTTPS通信が必要になると述べています。

 

NodeMCUをWebサーバにしてみた

/** Geminiが自動生成した概要 **/
NodeMCU(ESP8266)をWebサーバにする実験。MicroPythonのサンプルコードを参考に、GPIOピンの状態をWebページに表示する仕組みを作成。NmapでNodeMCUのIPアドレスを特定しブラウザからアクセスした結果、GPIOピンの状態がリアルタイムに確認できた。HTTP通信の基礎を学ぶ良い機会となり、今後は外部からのリクエストに応じて処理を行う仕組みも試したい。

 

NodeMCUをWiFiのアクセスポイントにしてみる

/** Geminiが自動生成した概要 **/
この記事は、NodeMCU(ESP8266)をWiFiのアクセスポイントにする方法を解説しています。筆者は、サンプルコードを参考に、NodeMCUにWiFi接続とアクセスポイント設定のコードを記述し実行しました。その結果、コードに記述した「ESP-AP」という名前のアクセスポイントが作成されたことを確認しました。しかし、パスワードが設定されていないため、現時点では接続できない状態です。記事では、引き続きWiFi用語の解説や接続方法について掘り下げていくことを示唆しています。

 

NodeMCUにファームウェアをインストールする

/** Geminiが自動生成した概要 **/
ESP8266 NodeMCUモジュールにMicroPythonファームウェアをインストールするには、esptoolツールを使用します。ファームウェアのbinファイルをダウンロードし、`esptool`コマンドを使用してフラッシュを消去してから、新しいファームウェアを書き込みます。ファームウェアがインストールされたら、Thonny IDEを使用してLチカプログラムを作成します。ThonnyをESP8266に接続し、`main.py`という名前でプログラムを保存します。プログラムを実行すると、NodeMCUのLEDが点滅します。

 

ESP8266のWiFiモジュールを購入した

/** Geminiが自動生成した概要 **/
## ESP8266を使って、PicoからWebアプリにデータを送信する方法を探る筆者は、pH測定データをWebアプリに送信するために、WiFiモジュール「ESP8266」を購入しました。目的は、Raspberry Pi Picoなどのマイコンで取得したデータを、WiFi経由でWebアプリに送信することです。ESP8266はTCP/IPスタックを搭載したWiFiモジュールで、GPIOピンも備えているため、単体でのデータ処理も期待できます。今後の記事では、PicoからWiFiを介してWebアプリにデータを送信するために必要な手順を一つずつ解説していく予定です。

 

AD変換器の基準電圧とは何だろう?

/** Geminiが自動生成した概要 **/
AD変換器の基準電圧(VREF)とは、アナログ電圧をデジタル値に変換する際の基準となる電圧です。MCP3208の場合、VREFは2.7V〜5Vの範囲で設定でき、高い電圧ほどデジタル値の分解能が向上します。記事では、VREFを5Vにすることでサンプリング精度を高め、ノイズの影響を抑えるためにVREFに入力フィルターを入れることを推奨しています。さらに、AGND(アナロググランド)とDGND(デジタルグランド)についても今後の課題としています。

 

Raspberry PiにPH4502Cを繋いでみた

/** Geminiが自動生成した概要 **/
この記事では、Raspberry PiにpHメーターPH4502Cを接続し、pHのアナログ値をデジタル値に変換して取得する方法を解説しています。筆者は、MCP3208というAD変換器を用い、GPIO Zeroのライブラリを使ってRaspberry Piで値を読み取っています。記事内では、回路図やコード例、実験中の問題点と解決策が詳しく説明されています。最終的には、水道水のpHを測定し、約2.8Vの電圧値を得ることに成功しましたが、値のばらつきが課題として残りました。筆者は、今後さらに知識を深め、GPIO Zeroを使わない方法やpH測定の精度向上に取り組む予定です。

 

PH4502CのpHの計算方法を調べる

/** Geminiが自動生成した概要 **/
この記事は、PH4502C pHメーターのpH計算方法を解説しています。まず、起電力とpHの関係式を求めるために、既知のpH値と対応する起電力値から係数と定数を算出します。次に、ADCを用いる場合の計算式を導出し、ADCのビット数とpHの関係式を確立します。最終的に、任意のADCビット数に対して、ADC出力値からpH値を計算する式を提示しています。ただし、精度の高い測定には電圧計を用いたキャリブレーションが必要であると結論付けています。

 

AD変換器から出力されたデジタル値を読み込む

/** Geminiが自動生成した概要 **/
この記事では、AD変換器を使ってアナログ値をデジタル値として読み取る方法を解説しています。AD変換器からのデータ送信には、複数のピンを使ったSPI通信という方式が使われています。SPI通信では、マスター(Raspberry Pi)とスレーブ(AD変換器)間でデータのやり取りが行われます。重要な点は、AD変換器からのデジタルデータは1本のピンではなく、SCLK、MISO、MOSI、SSの4本のピンを使ってやり取りされることです。

 

AD変換器の概要に触れる

/** Geminiが自動生成した概要 **/
diymoreのLiquid PH Value Detection Detect Sensor Moduleは、Arduinoやマイクロコントローラと連携して水溶液のpH値を測定するセンサーモジュールです。pH測定範囲は0~14で、精度は±0.1pHです。動作電圧は3.3~5Vで、出力はアナログ信号とTTLレベルのデジタル信号の両方を選択できます。校正は付属の校正液を用いて簡単に行えます。このモジュールは、水耕栽培、水質監視、化学実験など、pH値の測定が必要な幅広い用途に最適です。

 

BBC Micro:bitでpHメーターから得られるアナログ値を読み込んでみた

/** Geminiが自動生成した概要 **/
施設栽培で鉄欠乏が起きると、収量低下や品質低下に繋がるため注意が必要です。鉄欠乏は初期症状の見落としが課題となります。本記事では、鉄欠乏の症状と対策、そして早期発見に役立つ簡易的な測定方法について解説しています。初期症状は葉脈間が黄化するクロロシスで、進行すると葉全体が白化し、枯死に至ることもあります。対策としては、pH調整や鉄資材の施用が有効です。早期発見には、葉緑素計を用いた測定が有効で、数値の低下は鉄欠乏の初期段階を示唆します。日々の観察と葉緑素計による測定を組み合わせることで、鉄欠乏を予防し、収量と品質を確保しましょう。

 

アナログとデジタル

/** Geminiが自動生成した概要 **/
記事では、そろばんがデジタルである理由をアナログとデジタルの違いを説明しながら解説しています。アナログは水銀体温計のように、値が連続的に変化し、無限に細かい値をとります。デジタルは電子体温計のように、飛び飛びの値で表現されます。そろばんは玉を1つずつ動かすことで数を表現するため、値は飛び飛びになります。そのため、そろばんはデジタルに分類されます。

 

pH測定で用いるガラス電極法に触れてみる

/** Geminiが自動生成した概要 **/
筆者はpH測定器の仕組みを理解するため、ガラス電極法について調べています。ガラス電極法は、pHガラス電極と比較電極を用い、pHガラス応答膜の内側と外側のpHの違いにより生じる起電力を測定することでpHを算出します。pHガラス応答膜の内側にはpH7の塩化カリウムが用いられ、測定したい液体に当てると、pHの差に応じて起電力が発生します。この起電力は温度によって変動するため、測定前にキャリブレーションが必要です。筆者はpH測定器をRaspberry Piに接続しようとしましたが、A/D変換が必要なため、接続は保留となっています。

 

最近の肥料でよく見かける酸化還元電位

/** Geminiが自動生成した概要 **/
農薬や化学肥料の使用が土壌環境を悪化させるという意見に対して、反論を展開しています。著者は、土壌中の微生物の量と多様性は有機物量に影響を受け、農薬や化学肥料の影響は限定的だと主張。また、連作障害の原因は特定の栄養素の過不足や病害虫の発生であり、農薬や化学肥料が直接の原因ではないと説明しています。さらに、土壌pHの変化は施肥の影響を受けやすく、適切な土壌管理が必要だと指摘。結論として、農薬や化学肥料の使用と土壌環境悪化の因果関係は薄いと結論付けています。

 

ボルタ電池

/** Geminiが自動生成した概要 **/
ボルタ電池は、金属のイオン化傾向の違いを利用して電気を発生させる装置です。この記事ではレモンを用いたボルタ電池を例に、その仕組みを解説しています。レモンの酸性度により、亜鉛板と銅板はそれぞれイオン化し電子を放出します。亜鉛は銅よりもイオン化傾向が高いため、電子を多く放出しマイナス極となります。電子は導線を伝って銅板側へ移動し、そこで水素イオンと結合して水素ガスを発生させます。この電子の流れが電流となり、電球を光らせることができます。

 

pHの測定を理解する為にリトマス試験紙から触れる

/** Geminiが自動生成した概要 **/
この記事は、栽培用の測定器について理解を深めるための導入として、リトマス試験紙を取り上げています。リトマス試験紙は、水溶液のpHを測定し、酸性かアルカリ性かを判定するために用いられます。記事では、リトマス試験紙の由来である「リトマスゴケ」について触れ、それが地衣類の一種であることを説明しています。地衣類は藻類と菌類の共生体で、空気のきれいな場所に生息し、大気汚染の指標にもなっています。そして、リトマスゴケやウメノキゴケの色素がpH測定にどのように関わっているのか、次の記事で詳しく解説することが予告されています。

 

プログラミング教育で注目すべきはARM + Debian + Pythonであるはずだ

/** Geminiが自動生成した概要 **/
プログラミング教育の格差解消には、安価で高性能なARMアーキテクチャ搭載PCが有効である。Raspberry PiはDebian系OSとPythonを標準サポートし、電子工作から本格的な開発まで対応可能なため、ChromebookやMicro:bitよりも優れている。ARM対応ソフトの充実が課題だが、低価格でDebianやPythonに触れられる環境は、OSSやサーバー学習へのハードルを下げ、将来的なIT人材育成に貢献する。

 

Raspberry PiのPWMでサーボモータを動かしてみる

/** Geminiが自動生成した概要 **/
この記事では、Raspberry PiのPWM機能を使ってサーボモーターを制御する方法を解説しています。サーボモーターは、パルス幅によって回転角度を制御することができます。この記事では、GeekServo 9G Servo-Grayというサーボモーターを使用し、GPIO 12に接続して制御しています。コードでは、RPi.GPIOライブラリを使ってPWM信号を生成し、ChangeDutyCycle()関数でデューティ比を変更することで、サーボモーターの回転角度を制御しています。具体的には、デューティ比2.5%で-45度、7.25%で90度、12%で225度回転するように設定されています。

 

Raspberry Piと赤色LEDでホタルのような点滅を試す

/** Geminiが自動生成した概要 **/
記事では、Raspberry PiとLEDを用いて、PWM(パルス幅変調)による疑似アナログ信号の生成と、その効果について解説しています。PWMは、デジタル信号のパルス幅を調整することで、見かけ上アナログ信号のような出力を行う技術です。記事では、パルス幅を徐々に変化させることで、LEDの明るさが滑らかに変化する様子を「ホタルの光」に例えています。 具体的には、Pythonコードを用いてPWMのデューティ比を周期的に変化させることで、LEDの明るさを制御し、ホタルの点滅のような効果を実現しています。

 

Raspberry Piと赤色LEDでパルス幅変調を試す

/** Geminiが自動生成した概要 **/
この記事は、生物系出身でRaspberry Piに挑戦している筆者が、パルス幅変調(PWM)を学ぶ過程を記述しています。まず、LEDの点灯と消灯を繰り返すLチカを通して、HIGH(電気が流れる状態)とLOW(電気が流れない状態)について学びます。次に、PWMの概念、周期、パルス幅、デューティ比について解説し、PWMを用いたLEDの明るさ制御に挑戦します。具体的なコード例を示しながら、デューティ比を徐々に上げることでLEDが明るくなる様子を観察し、PWMによる制御を体感します。最後に、HIGHはデューティ比100%の状態であり、デューティ比が低くても実際には高速で点滅しているため暗く見えることを補足しています。

 

Fritzingを使って、Raspberry Piの回路図を作成する

/** Geminiが自動生成した概要 **/
Fritzingというアプリを使えば、電子回路の回路図が簡単に作成できます。Raspberry Piなど、様々な電子部品がパーツとして用意されており、ドラッグ&ドロップで配置できます。標準パーツにない場合は、ネットから追加することも可能です。例えば、Raspberry Pi 4 Model Bのパーツは、フォーラムで共有されているfzpzファイルをダウンロードしてインポートすることで使用できます。

 

Raspberry Piのシリアルコンソールを試す

/** Geminiが自動生成した概要 **/
Raspberry Piのシリアルコンソール機能を使うと、ネットワーク環境がなくても有線でRaspberry Piを操作できます。今回は、Raspberry Pi 4BとUbuntu 20.04、USB-TTLシリアルコンソールケーブルを使って接続を試みました。Raspberry Pi側でシリアルポートとコンソールを有効化し、ケーブルで接続します。Ubuntu側ではscreenコマンドを使ってシリアルコンソールに接続します。接続が確立すると、Ubuntuの端末にRaspberry Piのログイン画面が表示され、操作が可能になります。接続を終了するには、ctrl + a、kと入力します。

 

Raspberry PiでLCDに文字列を出力する

/** Geminiが自動生成した概要 **/
この記事では、Raspberry PiとI2C接続のLCDディスプレイを使って文字列を表示する方法を解説しています。まず、Raspberry Piの設定でI2Cを有効化し、LCDのI2CモジュールをGPIOピンに接続します。接続が正しければ、「i2cdetect -y 1」コマンドでI2Cアドレスが表示されます。次に、OSOYOOのライブラリ「i2clcda.py」を使ってPythonコードを作成し、LCDに文字列を表示します。コードでは、ライブラリをインポート後、「lcd_init()」でLCDを初期化し、「lcd_string()」関数で文字列と表示位置を指定して出力します。表示されない場合は、I2Cモジュールのポテンショメータを調整してコントラストを調整する必要があります。

 

Rapberry PiとBBC Micro:bitでUSB経由のシリアル通信を試す

/** Geminiが自動生成した概要 **/
この記事では、Raspberry PiとBBC Micro:bit間でUSB経由のシリアル通信を行う方法を解説しています。従来のUART通信と異なり、USB接続ではRaspberry Pi側のシリアルポート設定が不要です。Micro:bit側で温度データを送信するコードを作成し、Raspberry Pi側では"/dev/ttyACM0"をデバイス、"115200"をボーレートとしてシリアル通信を設定します。これにより、Raspberry Pi側でMicro:bitから送信された温度データを受信し、コンソールに表示することができます。USB接続は、GPIOの使用状況に影響されず、より簡便な方法と言えます。

 

Rapberry PiとBBC Micro:bitでUARTを試す

/** Geminiが自動生成した概要 **/
Micro:bitとサーボモーターを使って環境制御の基礎を学ぶ記事。サーボモーターの角度制御をMicro:bitのプログラムから行う方法を紹介。Muエディタを使用し、角度を指定するシンプルなコードから、連続的な動きや特定角度への移動、アナログ入力による制御まで段階的に解説。具体的な接続方法やコード例、ライブラリの活用法も示し、初心者にも分かりやすくサーボモーター制御の基礎を習得できる内容となっている。最終的には、植物育成ライトの角度調整といった具体的な応用例も示唆し、環境制御への応用を促している。

 

Raspberry PiをChromebookから操作する

/** Geminiが自動生成した概要 **/
プログラミング教室でキーボード・ディスプレイ無しにRaspberry Piを使うため、ChromebookからVNC接続を試みた。Raspberry PiでVNCサーバーを有効化し、ChromebookにVNC Viewerをインストール、IPアドレス指定で接続に成功。しかし、ディスプレイ未接続時は起動時にウィンドウシステムが立ち上がらずエラー発生。解決策として、raspi-configで画面解像度を設定することで、ディスプレイ無しでもVNC接続できるようになった。

 

Raspberry Pi 4 Model Bを購入した

/** Geminiが自動生成した概要 **/
子供に初めて与えるPCとしてChromebookを検討していた筆者は、Micro:bitのシリアル通信の課題からRaspberry Pi 4 Model B(8GB)を購入。GPIOピンによる電子工作の可能性、安価でLinux学習に適した点を評価している。Raspberry Piはクレジットカード大の基盤に主要部品を搭載し、microSDカードにOSをインストールして使用する。高スペックゆえの発熱対策として冷却ファン付きケースも購入。Raspberry Piを子供用PCとするには、親のLinux(Debian系)知識やハードウェア管理の理解が必要と結論づけている。

 

トマトの水耕栽培で水温を意識すべきか?

/** Geminiが自動生成した概要 **/
猛暑日が多いとトマトは水分吸収が追いつかず、萎れや生育不良を起こしやすい。中干しは、一時的に灌水を制限することで根の伸長を促し、吸水能力を高める技術である。しかし、猛暑日では中干しにより水ストレスが過剰になり、かえって生育を阻害するリスクがある。土壌水分計などを用いて適切な水分管理を行い、植物の萎れ具合を観察しながら中干しの実施を慎重に判断する必要がある。猛暑日には、マルチングや遮光ネットの活用、株元への灌水といった対策も併用することで、水ストレスを軽減し、トマトの生育を安定させることが重要となる。

 

Micro:bitで二種類のサーボモータの動作を比較してみる

/** Geminiが自動生成した概要 **/
この記事では、Micro:bitを用いて二種類のサーボモーター(360°回転と270°回転)の動作比較を行っています。どちらもGeekservo 9gサーボですが、360°サーボは角度指定で回転速度が変化し、90°を基準にそれより大きい値で反時計回り、小さい値で時計回りに回転します。一方、270°サーボは指定角度で正確に停止します。同じコードでもサーボの仕様によって動作が異なることを実証し、LEGO Ninjagoのコールのミニフィグを使って動作の様子を動画で紹介しています。

 

Micro:bitでサーボモータの止め方を試す

/** Geminiが自動生成した概要 **/
Micro:bitでサーボモーターを制御し、停止させる方法を検証した。ブレットボードと拡張ボードを用い、LEGO人形を乗せて回転を確認。以前の記事でサーボモーターの基準値を90度としたため、Aボタン押下で150度まで回転後、1秒で停止するコードを作成・実行した。結果は1秒後にモーターは停止したが、150度以上に回転していた。サーボモーターへの入力値と実際の回転角度の対応はまだ不明瞭。

 

環境制御を学ぶ為にMicro:bitでサーボモータを学ぶ

/** Geminiが自動生成した概要 **/
Micro:bitとサーボモーターを用いて環境制御学習の第一歩を踏み出した著者は、サーボモーターの動作原理を学ぶため、LEGOブロックとミニフィグを使った回転実験を行った。MakeCodeで作成したコードでMicro:bitからサーボモーターに角度指令を送ると、90度を基準に、大きい値では反時計回り、小さい値では時計回りに回転する。しかし、指定角度で停止せず、一回転し続けるという問題に直面。これは、指令値が目標角度ではなく、一定時間内の回転角度を表すためであった。 著者は、サーボモーターの停止方法について疑問を抱いている。


Powered by SOY CMS  ↑トップへ