ブログ内検索

micro:bitページ
とにかく速いブログサイトを目指す
検索キーワード:「Raspberry Pi」
 

最高の開発環境を求めて2024

/** Geminiが自動生成した概要 **/
ChromebookとRaspberry Pi 5の組み合わせが最高の開発環境。ChromebookのLinux開発環境(Crostini)の制限をRaspberry Pi 5をサーバーにすることで回避。複数人でRaspberry Pi 5にアクセスし、Micro Editorを使って開発することで、小中学生でも容易にコーディングが可能に。ChromebookのSSH機能強化も貢献。Raspberry Pi 5のストレージはNVMeに換装することで信頼性向上。以前のRaspberry Pi 4B単体での開発環境に比べ、高速でストレスフリー。Chromebookはターミナルとして使用し、開発環境はRaspberry Pi 5に集約することで、ChromebookのPowerwashの影響も回避。

 

Google TV StreamerでSteam Linkを試してみた

/** Geminiが自動生成した概要 **/
Google TV StreamerでSteam Linkを試した結果、Chromecast with Google TVであったカクつきはメモリ増強により解消された。しかし、Raspberry Pi 4B 8Gと比較するとまだ動きが荒く、更なる設定調整が必要である。 動作改善にはメモリ増強が有効であることが示唆されたが、Raspberry Pi 4B 8Gとの性能差の原因はメモリ以外の部分にもある可能性がある。

 

ChromecastでSteam Linkを試してみた

/** Geminiが自動生成した概要 **/
著者は、Chromecast with Google TVでSteam Linkを使ってゲームができるか検証しました。しかし、ゲーム動作がカクカクしてしまい、原因を調査。ネットワーク速度を向上させるためにイーサネットアダプターを導入しましたが改善されず、Chromecastのスペック不足が原因と推測しました。そこでRaspberry Pi 4Bで試したところ、スムーズに動作。Chromecastのメモリ容量が影響している可能性を指摘し、他のスペックのマシンでの検証を希望しています。 追記として、Chromecastの後継機であるGoogle TV Streamerでも同様の検証を行った記事へのリンクが掲載されています。

 

Raspberry PiでScratch3.0の開発環境を構築する

/** Geminiが自動生成した概要 **/
Raspberry PiにScratch3.0の開発環境を構築する方法を解説しています。 Node.jsのバージョンはScratch3.0との互換性のため14.20.1を使用し、パッケージ管理にはYarnを採用しています。 まずNode.jsとnpmをインストール後、nを使ってNode.jsのバージョンを管理します。次に、scratch-vmとscratch-guiのリポジトリをクローンし、yarn linkとyarn installコマンドで依存関係を解決します。 最後にyarn startコマンドでVMを起動し、ブラウザからhttp://localhost:8601/ にアクセスするとScratch3.0の画面が表示されます。 記事ではyarn installに時間がかかること、エラーが発生しても問題ない場合があることなど、注意点も解説されています。

 

Minecraft: Pi Edition: RebornのSDKを使ってゴールデンシャベルを追加してみた

/** Geminiが自動生成した概要 **/
この記事は、Minecraft: Pi Edition: Reborn (MCPI++) のSDKを使って、ゲームに「ゴールデンシャベル」を追加する方法を解説しています。 まず、MCreatorを使って16x16ピクセルのゴールデンシャベルのアイコン画像を作成し、既存のitems.pngに挿入します。次に、C++で書かれたgoldenshovel.cppを作成し、アイテムの追加、アイコンの設定、ゲーム内での表示名などを定義します。最後に、CMakeを使ってコードをコンパイルし、生成されたライブラリファイルをmodsディレクトリに配置することで、ゴールデンシャベルがゲームに追加されます。 記事では、コードの各部分がどのような役割を持っているか、また画像ファイルやCMakeLists.txtの設定方法などが詳しく解説されています。

 

Minecraft: Pi Edition: RebornのSDKを使ってみる

/** Geminiが自動生成した概要 **/
Minecraft: Pi Edition: Reborn (MCPI) の拡張SDKを使い、ターミナルに"Helloworld"を出力する手順を紹介しています。 まずMCPI++ 2.4.3-3をインストールし、C++コンパイラなどの開発環境を整えます。 次に、"Helloworld"を出力するコードを記述した"hello.cpp"を作成し、共有ライブラリとしてコンパイル、MCPIのmodsディレクトリに配置します。 MCPIを実行すると、起動時に"Helloworld"が出力されます。これは、共有ライブラリ内の特定の関数がエントリポイントとして機能するためです。 記事では最後に、ゲーム画面に影響を与えるコードの作成に意欲を示しています。

 

キーボード一体型のRaspberry Pi 400を購入した

/** Geminiが自動生成した概要 **/
子供がRaspberry Pi 4B 8GBでマインクラフトをプレイするため、発熱と火傷が心配で購入に至った。ケースに入れているものの電子工作がしにくいという欠点もあった。マイクラを通してプログラミングに興味を持ち、Pythonでコードを書きながらプレイするようになった。Raspberry Pi 400の発熱がどれ程なのか検証したい。

 

ChromebookのCrostiniでMicro:bitのフラッシングをしてみた

/** Geminiが自動生成した概要 **/
ChromebookのCrostiniでMicro:bitのフラッシングを行う際、Crostiniは仮想環境のためUSBを直接認識できない。そこで、Crostini上のMicro:bitの認識先である`/mnt/chromeos/removable/MICROBIT/`を`uflash`コマンドのターゲットとして指定することでフラッシングが可能になる。

 

Raspberry PiにMCPI++を入れてみた

/** Geminiが自動生成した概要 **/
この記事は、Raspberry PiにMinecraft: Pi Edition: Reborn (マイクラリボーン) の拡張版をインストールする方法と、その拡張機能について解説しています。拡張版では、ブロックやアーマーの種類が増えるなどのアップデートがあります。インストールは、スクリプトを実行するだけで完了します。拡張版はマイクラリボーンの新バージョンに合わせて更新されるようです。

 

PokitMeterを購入したので、Micro:bitのPWMを測定してみた

/** Geminiが自動生成した概要 **/
記事では、PokitMeterという小型測定器を用いて、Micro:bit(マイクロビット)が出力するPWM信号の周波数を測定しています。 PokitMeterは測定結果をスマホで確認できるため非常にコンパクトで、Chromebookでも使用可能です。 マイクロビットのP0ピンから出力されるPWM信号をPokitMeterのオシロスコープモードで測定した結果、デューティ比50%で、周期20msの矩形波が観測されました。 このことから、マイクロビットのPWM周波数は標準で50Hzであることが分かります。 今後はPokitMeterを活用して、より深くマイクロビットの機能を探求していく予定です。

 

Ubuntu + LXDEでデスクトップにFirefoxアイコンを設置する

/** Geminiが自動生成した概要 **/
この記事は、Ubuntu 22.04 LXDE環境でデスクトップにFirefoxのアイコンを設置できない問題を解決する方法を解説しています。 問題はsnap版Firefoxをインストールした場合に発生し、デスクトップエントリを作成することで解決できます。 手順としては、 1. `/usr/share/applications/firefox.desktop` ファイルを作成し、必要な情報を記述します。 2. メニューからFirefoxを見つけて右クリックし、「デスクトップに追加」を選択します。 これにより、デスクトップにFirefoxのアイコンが設置されます。記事ではデスクトップエントリの詳細についても触れています。

 

メインの開発機をRaspberry Pi 4Bにしてみる

/** Geminiが自動生成した概要 **/
## プログラミング教育におけるARM+Debian+Pythonの可能性(要約) 記事は、高性能化・低価格化したRaspberry Piに代表されるARMデバイスが、プログラミング教育に最適であると主張しています。 その理由は以下の3点です。 1. **安価で入手しやすい:** Raspberry Piは数千円で入手でき、故障時のリスクも低い。 2. **DebianベースのOS:** 安定性・信頼性が高く、豊富なソフトウェアが利用可能。 3. **Pythonの標準搭載:** 初心者に優しく、実用的なプログラミング言語として人気が高い。 これらの要素により、ARMデバイスは教育現場におけるプログラミング学習のハードルを下げ、生徒の学習意欲向上に貢献できると結論付けています。

 

AppImage形式のMinecraft: Pi Edition: Rebornでスキンを変更してみた

/** Geminiが自動生成した概要 **/
この記事は、AppImage形式になったMinecraft: Pi Edition: Rebornでスキンを変更する方法を解説しています。 まず、AppImageファイルを実行する準備として、`chmod`コマンドで実行権限を与え、`fuse`パッケージをインストールします。 スキンの変更は、`~/.minecraft-pi/overrides/images/mob/`ディレクトリに`char.png`という名前でスキンファイルを配置します。 ただし、このままだとスキンが崩れてしまうため、`minecraft_skin_fixer.py`というスクリプトを使って修正します。 最後に、AppImageファイルを`/usr/local/bin`に移動して`mcpi`というコマンド名で実行できるように設定しています。

 

Minecraft: Pi Edition: Rebornでmcpiライブラリを試す

/** Geminiが自動生成した概要 **/
記事では、プログラミング教育に最適な環境として、ARMアーキテクチャ、Debian系OS、Pythonの組み合わせを提唱しています。低価格なRaspberry Piを例に挙げ、その手軽さ、豊富なライブラリ、活発なコミュニティが教育現場にもたらすメリットを解説しています。従来の教育用PCよりも安価で汎用性が高く、電子工作などにも応用できる点が魅力的だと結論付けています。

 

Minecraft: Pi Edition: Rebornでスキンを変更してみた

/** Geminiが自動生成した概要 **/
この記事は、Minecraft: Pi Edition: Rebornでスキンを変更する方法を解説しています。 まず、好みのスキンをダウンロードします。次に、標準のスキンのPNGファイル(char.png)をバックアップし、ダウンロードしたスキンで置き換えます。この際、ファイルパスに注意が必要です。 スキンを変更後、デザイン崩れが発生する場合は、Pythonスクリプト(minecraft_skin_fixer.py)を使用して修正します。スクリプト内のファイルパスを自身の環境に合わせて変更する必要があります。 修正後、Minecraft: Pi Edition: Rebornを再起動すると、スキンが変更されているはずです。

 

Rasbperry Piにゲームパッドを繋ぎ、マインクラフトを操作する

/** Geminiが自動生成した概要 **/
この記事は、Raspberry PiまたはUbuntuに接続したLogicool F310ゲームパッドを使用してMinecraft: Pi Edition: Rebornを操作する方法を解説しています。 Windows PC用のゲームパッドをLinux環境で動作させるため、joystickとjstest-gtkドライバをインストールします。jstestコマンドでゲームパッドが認識されていることを確認後、qjoypadをインストールし、GUIで各ボタンにキーボードやマウスの操作を割り当てます。 記事では、マイクラリボーン用に設定したボタン割り当てを紹介し、動作確認を行うよう促しています。

 

プログラミング教育用のノートパソコンを探せ

/** Geminiが自動生成した概要 **/
Minecraft: Pi Editionを教材にプログラミング教育をしたいが、Raspberry Piは持ち運びに不便なため、代わりのノートパソコンを探している。Ubuntuが動作する中古PCでは性能不足が懸念される。そこで注目しているのが、QualcommのSnapdragonを搭載したSamsungの格安ノートPC「Galaxy Book Go」だ。ARMアーキテクチャを採用し、Ubuntuも動作する可能性があり、Raspberry Piの自由度とChromebookの価格帯の中間をいくマシンとして期待できる。

 

Minecraft: Pi Edition: Reborn on Ubuntu

/** Geminiが自動生成した概要 **/
記事では、子供向け科学雑誌に掲載された「Minecraft: Pi Edition: Reborn」(マイクラリボーン)を、Raspberry Piだけでなく、普段使いのUbuntuパソコンでも動作させた体験談を紹介しています。 記事では、マイクラリボーンがUbuntu 20.04以降で動作すること、amd64、arm64、armhfのdebファイルが配布されていることから、Intel Core i5搭載のUbuntuパソコンにインストールして動作確認を行ったことが記載されています。 その結果、Raspberry Pi版と同様に動作し、ローカルネットワーク経由で一緒に遊ぶこともできたと報告しています。 そして、この経験から、教育用パソコンにおけるARM、Debian、Pythonの重要性について、次回以降の記事で考察していくことを示唆しています。

 

BBC Micro:bitのプルダウン抵抗2

/** Geminiが自動生成した概要 **/
マイクロビットのGPIOピンを安定させるにはプルダウン抵抗が有効です。スイッチOFF時はプルダウン抵抗によりGPIO 0はLOW状態を保ちます。スイッチON時はGPIO 0に電流が流れ、信号が送られます。プルダウン抵抗はショート(短絡)を防ぐため、一般的に10kΩの抵抗が使われます。プルアップ抵抗はスイッチと抵抗の位置が逆になり、スイッチOFF時はGPIO 0がHIGH、スイッチON時はLOWになります。

 

BBC Micro:bitのプルダウン抵抗1

/** Geminiが自動生成した概要 **/
記事では、マイクロビットを使ってプルダウン抵抗の仕組みを解説しています。 まず、タクトスイッチと10kΩの抵抗を用いてプルダウン回路を構成し、ボタンを押すとマイクロビットのディスプレイのアイコンが変わるプログラムを作成しています。 記事では、プルダウン抵抗の詳細は後述するとして、動作するコードを示しています。 具体的には、マイクロビットのGPIO 0ピンに接続されたタクトスイッチが押されると、ディスプレイのアイコンが悲しい顔から笑顔に変化し、2秒後に再び悲しい顔に戻るというものです。 記事は、この動作例を通じて、プルダウン抵抗の役割について詳しく解説していくことを予告しています。

 

BBC Micro:bit、トランジスタとDCモータ再び

/** Geminiが自動生成した概要 **/
この記事では、BBC Micro:bitとトランジスタを使ってDCモーターを制御する方法を解説しています。前回はモーターを回すことができませんでしたが、電気回路とトランジスタの動作原理を学び、今回は見事成功しました。 成功の鍵は、トランジスタのベース電流を制御するための抵抗値の計算です。目標とするモーター電流を100mAとし、トランジスタの増幅率などを考慮して、ベース抵抗を4.7kΩに設定しました。 その結果、Micro:bitのボタン操作でDCモーターの回転を制御することができるようになりました。今回の実験を通して、トランジスタの動作原理への理解を深めることができました。

 

抵抗とオームの法則

/** Geminiが自動生成した概要 **/
抵抗とは、電気の流れを妨げる働きをする要素で、単位はオーム(Ω)で表されます。水流に例えると、管に設置された篩のようなもので、水の流れを制限する役割を果たします。 電圧(水圧)、電流(水量)、抵抗の間には、オームの法則(V = IR)が成り立ちます。抵抗値が大きいほど、同じ電圧でも電流は小さくなります。 例として、Raspberry PiのGPIOピンとLEDを接続する際に、LEDの仕様に合わせた抵抗を選定する必要があることが挙げられています。しかし、GPIOピンの電流信号をどのように考慮すべきかについては、まだ理解が追いついていない点が示唆されています。

 

4-20mA電流信号

/** Geminiが自動生成した概要 **/
この記事は、制御信号に使われる電流信号、特に4-20mAについて解説しています。Raspberry PiのGPIO出力は3.3V・16mAであり、4-20mAの範囲でモジュールを制御しています。筆者は、GeekServo 9gモーターを電流信号で動かす方法を探求中です。モーターの仕様から、100~500mAの電流が必要と推測していますが、そのためにはトランジスタによる増幅が必要と考え、その方法を模索しています。

 

トランジスタ4増幅率

/** Geminiが自動生成した概要 **/
この記事では、トランジスタ、特にNPN型トランジスタの増幅率について解説しています。トランジスタの性能指標として、絶対最大定格、コレクター電流、ベース電流、増幅率(hFE)の4つが挙げられています。 増幅率はトランジスタによって異なり、ランク分けされています。記事で例に挙げられている2SC1815-GRはGRランクで、増幅率は200~400倍です。つまりベース電流が5mAなら、コレクター電流は1Aになる計算となります。 ただし、ベース電流の最大値はデータシートに記載がないため、コレクター損失(400mW)を考慮して、安全な電流値を見積る必要があると指摘しています。

 

BBC Micro:bitとトランジスタ

/** Geminiが自動生成した概要 **/
BBC Micro:bitのGPIOピンを使ってDCモーターを動かそうとしたが、電圧不足のため動かなかった。そこでトランジスタを使って電圧を上げることを試みた。書籍を参考に青色LEDをトランジスタで点灯させる回路を組んだところ、LEDは点灯したものの、DCモーターは動作しなかった。トランジスタについて更に学習する必要があると考えられる。

 

改めてSPIについてを知る4

/** Geminiが自動生成した概要 **/
本稿では、SPI通信におけるSSとSCLKの役割を解説しています。SSはスレーブ選択信号で、LOWにすることで特定のスレーブとの通信を有効化します。SCLKはクロック信号であり、この規則的なHIGH/LOW変化を基準に同期してMOSI/MISOでのデータ送受信が行われます。 具体的には、SS1をLOWにし、SCLK信号に合わせてデータ送受信を行う例を図解で示しています。 今回のSPI通信解説により、以前の記事で扱ったESP8266,Raspberry Piを用いたソケット通信やUARTと合わせて、IoTにおけるセンサーデータ取得から遠隔地への送信までの仕組みの理解が深まります。

 

改めてSPIについてを知る3

/** Geminiが自動生成した概要 **/
SPI通信について、マスタースレーブ構成、データ送受信の流れ、シフトレジスタによるデータの受け渡しなど、具体的な例を挙げながら解説しています。\ 特に、8ビットデータ転送を図解で示し、LSB、MSB、MOSI、MISOといった用語を用いながら、マスターとスレーブ間におけるデータの移動を詳細に説明しています。\ 最後に、Raspberry PiとAD変換器を用いたSPI通信のコード例を紹介し、次回の記事ではシフトレジスタの仕組みやSSの役割について解説することを予告しています。

 

改めてSPIについてを知る1

/** Geminiが自動生成した概要 **/
SPIは、マスター機器が複数のスレーブ機器と通信する規格です。マスターはSCLK, MISO, MOSI, SSの4つの信号線でスレーブと接続します。SSはスレーブ選択線で、マスターはHIGH/LOWを切り替えることで、どのスレーブと通信するかを選びます。複数のスレーブを接続する場合、マスター側にスレーブ数分のSS(GPIOピン)が必要です。SSは通信開始と終了の合図にもなります。

 

Pythonでビット演算子の論理和に触れる

/** Geminiが自動生成した概要 **/
Pythonのビット演算子、特に論理和(OR)について解説しています。 記事では、UARTとSPIの通信方式の比較を題材に、SPI通信のコードで使われているビット演算を理解しようと試みています。 まず、`|=`という演算子がビットごとの論理和を計算し、結果を変数に代入するものであることを説明します。 具体例として、`cmdout |= 0x18`というコードを解説しています。初期値0の変数`cmdout`と16進数`0x18`(2進数では`00011000`)の論理和を計算することで、`cmdout`の値が`00011000`となり、10進数では24になることを示しています。 最後に、論理和を表す回路図の記号も紹介しています。

 

UARTについてを知る3

/** Geminiが自動生成した概要 **/
この記事では、UART通信におけるボーレートについて解説しています。ボーレートとは、1秒間に送受信するデータビット数を表し、送受信側で一致させる必要があります。 記事では、一般的なボーレートの値として9600、115200などを紹介し、Micro:bitとRaspberry Piを接続する際のコードを例に、送受信側でボーレートを合わせる必要があることを説明しています。 UARTは非同期通信のため、クロック信号を用いずにデータを送受信します。そのため、ボーレートを合わせることでデータの整合性を保っています。

 

UARTについてを知る1

/** Geminiが自動生成した概要 **/
この記事は、UARTを用いたシリアル通信について解説しています。 UARTとは何か、Raspberry Piとmicro:bitを接続した図を例に、TXピンとRXピンを用いてどのようにデータがやり取りされるのかを説明しています。 具体的には、文字列"abc"をUART通信で送信する際に、コンピュータ内部では文字コードを用いて処理されていることを解説し、Go言語でのバイト型変換例を示しています。 さらに、microbitのUART設定における"bits=8"というパラメータを取り上げ、1ビットと8ビットの関係、表現できる数値範囲について触れています。 最後に、"0x610x620x63"という16進数表記で送信データ例を示し、次回にuart.initのパラメータ解説を行うことを予告しています。

 

BBC Micro:bitのメンテンスモードから抜ける

/** Geminiが自動生成した概要 **/
BBC Micro:bitがメンテナンスモードになり、フラッシングができなくなった場合の対処法について解説しています。メンテナンスモードは、リセットボタンを押しながらPCに接続すると発生します。 解決策は、micro:bitのファームウェアを更新することです。まず、micro:bitのバージョンを確認し、公式サイトから対応するファームウェアをダウンロードします。ダウンロードしたファイルを、PCに接続したmicro:bitのMAINTENANCEフォルダに移動します。しばらく待つと、micro:bitがメンテナンスモードを抜け、通常のモードに戻ります。 記事では、Ubuntu環境での画面表示も掲載し、読者の理解を助けています。

 

ESP8266のUARTその2

/** Geminiが自動生成した概要 **/
この記事は、ESP8266をUARTの受信側としてRaspberry Piと通信する方法を解説しています。 前回の記事ではESP8266から送信したデータにREPLの情報が含まれていましたが、今回は受信側にすることでREPL情報を含まないデータを受信できることを確認しています。 具体的には、ESP8266側で受信したデータを少し変更してRaspberry Piに送り返すPythonコードを記述し、Raspberry Pi側では"send from pi."というメッセージを繰り返し送信するPythonコードを記述しています。 その結果、Raspberry Pi側で"received:send from pi."というメッセージが表示され、REPL情報を含まないデータが受信できていることが確認できました。

 

ESP8266のUART

/** Geminiが自動生成した概要 **/
ESP8266のREPLは、シリアル接続を通じてMicroPythonと対話するためのコマンドラインインターフェースです。UART0がデフォルトで使用され、ボーレートは115200bpsです。REPLでは、コードの実行、変数の確認、関数の呼び出しなどが行えます。Ctrl-Aでプロンプトの先頭、Ctrl-Eで末尾に移動できます。Ctrl-Bで一文字戻り、Ctrl-Fで一文字進めます。Ctrl-DでREPLを終了し、プログラムの実行を再開します。REPLはMicroPythonの開発やデバッグに役立つ強力なツールです。

 

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にファームウェアをインストールする

/** 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値の測定が必要な幅広い用途に最適です。

 

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

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

 

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エディタを使用し、角度を指定するシンプルなコードから、連続的な動きや特定角度への移動、アナログ入力による制御まで段階的に解説。具体的な接続方法やコード例、ライブラリの活用法も示し、初心者にも分かりやすくサーボモーター制御の基礎を習得できる内容となっている。最終的には、植物育成ライトの角度調整といった具体的な応用例も示唆し、環境制御への応用を促している。

 

NmapでLAN内のRaspberry Piを探してみる

/** Geminiが自動生成した概要 **/
仮想化は、コンピュータリソースの抽象化を通じて、物理的な特性から独立した仮想的な環境を作り出す技術です。ハードウェア仮想化は、ハイパーバイザーを用いて複数のOSを同時実行可能にします。一方、OSレベル仮想化(コンテナ技術など)は単一のOSカーネル上で隔離されたユーザー空間を提供し、軽量かつ高速な仮想環境を実現します。仮想化はサーバー統合、災害復旧、開発環境の構築など、多様な用途で活用され、柔軟性と効率性の向上に貢献します。近年では、クラウドコンピューティングの基盤技術としても重要性を増しています。

 

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系)知識やハードウェア管理の理解が必要と結論づけている。


Powered by SOY CMS   ↑トップへ