ブログ内検索

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

カテゴリー : 電子工作

SOY CMSマニュアルページ作成中

SOY CMSの開発秘話を投稿しました。→SOY CMSの開発秘話
 

マイクロビットのワークショップとこれからの開発

/** Geminiが自動生成した概要 **/
この記事では、筆者が小学生向けのプログラミングワークショップで息子に職業体験の機会を与えた経験と、今後の農業IoT開発への展望について語っています。ワークショップでは、マイクロビットとスクラッチを用い、息子は教材の準備や参加者のサポートなどを行いました。この経験を通して、子供向けの高度な職業体験の場を提供できる可能性を感じたようです。また、農業IoTについては、人手不足解消だけでなく、土壌環境改善による作業量の削減こそが重要だと指摘。効率的な肥料の使用など、化学の知識を取り入れた開発が求められると訴えています。筆者は今後もマイクロビットを用いたプログラミング教育と、農業における化学の知識の探求を続け、農業IoTの発展に貢献したいと考えています。

 

電子ペーパータブレットのBOOX Poke5を購入した

/** Geminiが自動生成した概要 **/
プログラマーのあなたは、目の疲れを軽減するため、BOOX Poke5という6インチの電子ペーパータブレットを購入しました。理由は、Android OS搭載でGoogle Playが使えるため、できることが多いから。読みやすさも問題なく、今後の論文やコードリーディングに役立つと期待しています。将来的にはカラー電子ペーパーにも興味があるようです。

 

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

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

 

温度センサーを知るためにゼーベック効果を学ぶ

/** Geminiが自動生成した概要 **/
AD変換器は、アナログ信号をデジタル信号に変換する電子回路です。温度センサーの場合、温度変化によって生じる電圧変化などのアナログ信号をAD変換器でデジタル信号に変換します。デジタル信号は、コンピュータなどのデジタル回路で処理しやすい形式です。AD変換器の性能は、分解能と変換速度で決まります。分解能は、変換可能な最小の電圧変化を表し、変換速度は、1秒間に変換できる回数です。温度センサーの用途に応じて、適切な分解能と変換速度を持つAD変換器を選択する必要があります。近年は、高分解能、高速変換、低消費電力などの特徴を持つAD変換器が登場し、様々な分野で活用されています。

 

液面計は溶液の導電性を高めると測定結果は変わるのか?

/** Geminiが自動生成した概要 **/
## 液面計の実験結果と考察:250字要約水道水に塩を加えて導電性を高めると、静電容量式の液面計の測定結果が変化することが実験で確認された。塩なしでは出力値は約500、塩ありでは約590と上昇した。この結果は、静電容量式液面計が液体の導電性の影響を受けることを示唆している。田の水位測定への応用を検討した場合、水中のイオン濃度が変動する可能性があり、正確な測定は難しいと考えられる。

 

水位センサーの液面計とは?

/** Geminiが自動生成した概要 **/
水位センサーの一種である液面計の一種、静電容量式について解説されています。静電容量式は、物質の誘電率の違いを利用して水位を測定します。水は不純物を含むと誘電率が変化するため、測定値に影響が出ます。記事では、実際に使用しているセンサーが静電容量式かどうかを確かめるために、測定中に塩を溶かして値の変化を見る実験を提案しています。しかし、センサーの構造上、水と空気の測定を区別しているようには見えないため、他の測定方法の可能性も示唆しています。

 

水位センサーからどのようなデータが得られるか?

/** Geminiが自動生成した概要 **/
記事では、水位センサーの仕組みを理解するために、簡易的な水位センサーとMicro:bitを使った実験と、レベルスイッチと液面計の説明を参考にしています。実験の結果、水位センサーの出力値は、センサーが水に接する面積が広いほど大きくなることがわかりました。これは、液面計の仕組みと一致するため、記事では液面計に焦点を当てて解説を進めるとしています。そして、次回は、センサーが水に接する面積と出力値の関係について詳しく解説する予定となっています。

 

制御用水位センサーを使ってみる

/** Geminiが自動生成した概要 **/
記事は、稲作の自動化技術の進展について述べています。特に、水位管理の自動化に焦点を当て、水位センサーを用いた実験を紹介しています。著者は、水位センサーモジュールを購入し、Micro:bitに接続して水位の変化を数値化できることを確認しました。水位の変化に応じて、Micro:bitに表示される数値が変化することを実験を通して明らかにしています。記事は、水位センサーの仕組みの詳細には触れていませんが、今後の調査課題としています。稲作における自動化技術の可能性を探る内容となっています。

 

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

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

 

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

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

 

YAHBOOMのワールドオブモジュールを購入した

/** Geminiが自動生成した概要 **/
YAHBOOMの「ワールド オブ モジュール」は、LEGOテクニックと互換性のある電子部品キットです。マイクロビットv2に対応し、プログラミングで制御可能な各種センサー、モーター、構造部品が含まれています。人気書籍「メカメカツクール」の内容を拡張するのに最適で、色識別センサーを使ったブロックの仕分け装置など、創造力を活かした作品作りが楽しめます。キット内容は、公式サイトまたは販売ページで確認できます。

 

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

/** Geminiが自動生成した概要 **/
この記事は、BBC Micro:bitのプルダウン抵抗の機能について解説しています。最初に、`pin0.get_pull()`を使ってプルダウン抵抗の状態を取得しようとしますが、GPIOピンが未使用の状態ではエラーが発生します。次に、`pin0.read_digital()`を実行すると、自動的にプルアップ抵抗が設定されることがわかります。最後に、`pin0.set_pull(pin0.PULL_DOWN)`を使って明示的にプルダウン抵抗を設定し、外部のプルダウン抵抗なしでも動作することを確認しています。記事では、プルアップ抵抗、プルダウン抵抗、ノー・プルそれぞれの状態に対応する`get_pull()`の戻り値 (0, 1, 2) も紹介されています。

 

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秒後に再び悲しい顔に戻るというものです。記事は、この動作例を通じて、プルダウン抵抗の役割について詳しく解説していくことを予告しています。

 

ショートは危険2

/** Geminiが自動生成した概要 **/
この記事では、電子回路におけるショート(短絡)について解説しています。抵抗が並列に接続された回路において、片方の抵抗値が0Ωになると、電流は抵抗の低い経路に集中して流れます。これは電流が流れやすい道を選ぶという性質によるものです。結果として、抵抗がない部分に電流が集中し、ショートした状態と同じになります。このように、抵抗値が極端に低い箇所があるとショートが発生し、回路の故障や発熱などの問題を引き起こす可能性があります。

 

ショートは危険

/** Geminiが自動生成した概要 **/
この記事では、電子回路におけるショート(短絡)の危険性について解説しています。筆者は、マイクロビットを使った電子工作を通じて、トランジスタの仕組みを理解しました。しかし、電子回路の基本である「プルアップ」「プルダウン」については未理解のままです。そこで、これらの概念を理解するために、まずはオームの法則を復習します。オームの法則(*V* = *I**R*)を用いて、抵抗値が限りなく0に近い場合、電流値が無限大に発散することを示し、これがショートと呼ばれる現象であると説明しています。そして、ショートは回路に過大な電流を流してしまうため、大変危険な行為であると警告しています。

 

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

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

 

ジャンパー線は何から出来ている?

/** Geminiが自動生成した概要 **/
## 銅を中心にした植物とキノコの活動(要約)植物は光合成に銅を利用し、不要になった銅はリグニンという物質に閉じ込める。落ち葉となった後、キノコなどの菌類はリグニンを分解し、銅を土壌に還元する。しかし、現代では、銅は工業製品に使われた後、土壌に戻らずに海に流れ出てしまう。この銅の循環の乱れが、植物の生育や生態系に悪影響を与える可能性がある。

 

抵抗器の性能に関与する抵抗体

/** Geminiが自動生成した概要 **/
蛇紋岩は、カンラン岩が水と反応してできる岩石です。蛇紋岩にはニッケルが含まれており、特に、蛇紋岩が風化してできたラテライトという土壌には、高濃度のニッケルが含まれています。ニッケルは、ステンレス鋼や電池の製造に欠かせない重要な金属資源です。そのため、蛇紋岩やラテライトは、ニッケルの重要な供給源となっています。日本は、世界有数の蛇紋岩地帯であり、ニッケル資源の宝庫と言えます。しかし、ニッケル鉱床の開発は、環境破壊などの問題も抱えています。

 

抵抗値の表示

/** Geminiが自動生成した概要 **/
この記事では、抵抗器の抵抗値を読み取る方法について解説しています。抵抗値は、抵抗器に塗られた色のパターンによって識別できます。各色の帯は数字を表し、計算式を用いることで抵抗値を特定できます。しかし、抵抗値の範囲が広いにもかかわらず、抵抗器の物理的な大きさが同じであることに疑問が生じます。これは、抵抗器の材料である金属の電気伝導率に関係する可能性があります。この記事では、抵抗値の読み取り方について詳しく説明し、抵抗器の大きさと抵抗値の関係についての疑問を提起しています。

 

抵抗とオームの法則

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

 

電圧について整理する

/** Geminiが自動生成した概要 **/
この記事では、電圧を分かりやすく解説しています。電圧とは「電気を流そうとする力」であり、注射器の例えを用いて説明されています。注射器を押す力が強ければ、水(電流)の勢いも増すように、電圧が高ければ電流も強くなります。さらに、水車の例えを用いて、電圧が高いほど水(電流)の勢いが増し、歯車(電気機器)の動きが活発になることを示しています。電圧の理解を深めるために、抵抗についても次回以降解説される予定です。

 

電流について整理する

/** Geminiが自動生成した概要 **/
## 最近の肥料でよく見かける酸化還元電位の内容要約(250字)記事では、土壌中の酸化還元電位が植物の生育に大きく関わることを解説しています。酸化状態の高い土壌では、窒素が植物に吸収されにくい硝酸態窒素として存在し、逆に還元状態では吸収しやすいアンモニア態窒素が優勢になります。従来の化学肥料は土壌を酸化させる傾向にありましたが、近年は酸化還元電位を適切に保つことが重要視され、還元状態を促進する資材を用いた肥料も登場しています。記事では、酸化還元電位を測定する重要性や、測定値に基づいた適切な土壌管理の必要性を説いています。

 

4-20mA電流信号

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

 

BBC Micro:bitでDCモータを動かしたい

/** Geminiが自動生成した概要 **/
BBC Micro:bitのGPIOピンを使ってDCモータを動かそうとしたが、3Vピンでは動作するのに、GPIOピンでは動作しないという問題が発生しています。原因を探るため、GPIOピンの仕様を調べてみたところ、「タッチセンス機能のため、端子0, 1, 2には弱いプルアップ抵抗(10MΩ)が接続されている」という記述を見つけました。このプルアップ抵抗がDCモータの動作に影響を与えている可能性があり、今後の検証が必要です。

 

トランジスタ4増幅率

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

 

トランジスタ3電流増幅作用

/** Geminiが自動生成した概要 **/
この記事では、トランジスタの増幅作用、特に電流増幅作用について解説しています。トランジスタは、小さな電流を大きな電流に増幅することができます。具体的には、NPNトランジスタを例に、ベースにマイクロビットからの微弱な電流を流すことで、コレクタ-エミッタ間に大きな電流を流せることを説明しています。そして、この電流増幅作用を利用して、マイクロビットからの信号では光らせることのできないLEDを、トランジスタを介することで光らせることができるようになることを図解しています。

 

トランジスタ2スイッチング

/** Geminiが自動生成した概要 **/
この記事では、トランジスタの仕組み、特にスイッチング作用について解説しています。バイポーラトランジスタを構成するN型半導体とP型半導体の働きに触れ、マイクロビットと青色LEDを用いた回路を例に、トランジスタがどのように電流を制御するのかを図解しています。ベース電流の有無によってコレクター-エミッタ間の導通・非導通が切り替わり、これがスイッチのオン/オフ動作に対応することを示しています。記事では、トランジスタの基礎知識を学ぶことで、電子回路への理解を深めることを目指しています。

 

トランジスタ1

/** Geminiが自動生成した概要 **/
この記事は、電子工作初心者向けにトランジスタの基礎を解説しています。トランジスタは、「スイッチング」と「増幅」の役割を持ち、電流を制御したり増幅したりする電子部品です。記事では、トランジスタの構造と名称、増幅率などの基本的な用語について解説しています。著者は、トランジスタの理解には電流の理解が不可欠であることを実感し、今後の学習目標としています。

 

BBC Micro:bitでリレー経由でDCモーターを制御してみる

/** Geminiが自動生成した概要 **/
BBC Micro:bitを使ってリレー経由でDCモーターを制御する方法について書かれた記事の要約です。記事では、マイクロビットのGPIOピンでは電流が不足するため、トランジスタの代わりにリレーモジュールを使ってDCモーターを制御する方法を紹介しています。具体的な配線方法やマイクロビットのコード例も掲載されており、実際にDCモーターを回転させる様子を収めた動画も埋め込まれています。記事は、マイクロビット初心者にもわかりやすく、リレーモジュールを使ったDCモーター制御の方法を学ぶのに役立つ内容となっています。

 

BBC Micro:bitとトランジスタ

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

 

ChromebookでScratchとBBC Micro:bitを接続してみる

/** Geminiが自動生成した概要 **/
この記事は、ChromebookのScratchでBBC Micro:bitを動かす方法を解説しています。まず、Google PlayからScratchをインストールし、Scratch用マイクロビットのHEXファイルをダウンロードしてマイクロビットに転送します。次に、Scratchの拡張機能でmicro:bitを選択し、接続を確立します。記事では、接続確認のため、マイクロビットのAボタンを押すと音が鳴るプログラムを作成・実行しています。最後に、小学一年生には漢字が読めないため、ひらがなモードのScratchが必要だと述べています。

 

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

/** Geminiが自動生成した概要 **/
SPI通信のモードは、クロック極性(CPOL)とクロック位相(CPHA)の組み合わせで決まります。CPOLはクロックのアイドル状態(0か1)を、CPHAはデータ取得がクロックの立ち上がり edge か、立ち下がり edge かを示します。組み合わせは4種類あり、モード0(CPOL=0, CPHA=0)からモード3(CPOL=1, CPHA=1)まで存在します。

 

改めて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についてを知る2

/** Geminiが自動生成した概要 **/
シフトレジスタは、複数のフリップフロップを連結してデータを順次移動させるデジタル回路です。各フリップフロップは1ビットの情報を保持し、クロック信号に従って隣に情報を渡していきます。例えば、直列入力直列出力型では、入力データが"11010000"の場合、各クロックサイクルで1ビットずつシフトされ、最終的に出力"00001101"として得られます。このように、シフトレジスタはデータを一時的に記憶したり、ビット列を操作したりする際に活用されます。

 

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

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

 

ビット演算を介してシリアル通信を見る

/** Geminiが自動生成した概要 **/
この記事では、ビット演算をPythonコードを用いて解説し、シリアル通信の一つであるUARTのデータ構造を擬似的に再現しています。まず、スタートビット、データビット、パリティビット、ストップビットから成るUARTのビット列を、ビットシフト演算子を用いて生成する過程を示します。次に、乱数を用いてデータビットの0/1をランダムに設定することで、より現実的なUART通信を模倣しています。これにより、ビット演算がハードウェアレベルでのデータ通信を理解する上で重要であることを示し、今後のSPI通信学習への足掛かりとします。

 

Pythonでビット演算子のビットシフトに触れる

/** Geminiが自動生成した概要 **/
Pythonのビットシフト演算子について解説しています。**<< (左シフト)** はビットを左に移動させ、右側に0を追加します。1を左に1ビットシフトすると2、2ビットシフトすると4になります。**>> (右シフト)** はビットを右に移動させ、末尾のビットは削除されます。4を右に1ビットシフトすると2、2ビットシフトすると1になります。これらの演算子は、効率的な計算やデータ処理に役立ちます。具体的な使用例は次回の記事で解説されます。

 

Pythonでビット演算子のビット否定に触れる

/** Geminiが自動生成した概要 **/
Pythonではビット否定演算子~を使うと、整数のビット反転ではなく、**負数の表現**として用いられます。記事中の例では、13 (~0b1101) のビット否定は、-14 (-0b1110) となります。これはPythonが整数を**符号付き2進数**で表現しているためです。符号付き2進数では、最上位ビットが符号を表し、残りのビットが数値を表します。ビット反転を行うには、ビット演算とマスクを組み合わせる必要があります。単にビット反転を行うだけであれば、`~` 演算子ではなく、各ビットを反転する関数を定義する方が分かりやすいかもしれません。

 

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

/** Geminiが自動生成した概要 **/
Pythonのビット演算子の一つである排他的論理和(XOR)について解説しています。XORは、^ 演算子で表され、2つのオペランドのビットが異なる場合に1を返す演算です。記事では、真理値表を用いてXORの動作を具体的に説明し、13と10のXOR演算を例に、ビット演算の結果が7(0b111)になることを示しています。さらに、ビットごとのXOR演算を手計算で説明し、2進数表現での理解を深めています。最後に、CPUの説明などで用いられるXORの記号を紹介しています。

 

マイクロビットを使ってプログラミングに触れてみようというイベントを実施しました

/** Geminiが自動生成した概要 **/
療育施設に通う子供とその保護者を対象に、micro:bitとレゴを使ったプログラミング体験イベントを実施しました。サーボモーターを付けたレゴ作品に、ビジュアル言語でコードを書いてmicro:bitと接続し、回転動作をプログラミングしました。子供たちは馬や車など思い思いの作品を動かし、プログラミングの楽しさに触れました。キーボード操作やコード変更にも挑戦し、笑顔溢れるイベントとなりました。

 

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

/** Geminiが自動生成した概要 **/
今回の記事では、Pythonのビット演算子の一つである論理積(&&)について解説しています。論理積は2つの値の両方が1の場合にのみ1を返す演算です。記事では、変数 `cmdout` と16進数 `0x80` の論理積を計算するコードを例に挙げています。`cmdout` は、前の処理で192(2進数で `0b11000000`)に設定されています。`0x80` は10進数で128、2進数で `0b10000000` です。これらの論理積をとると、`0b10000000` となり、これは10進数で128です。記事では、この計算がSPI通信でのデータ送受信に関連していることを示唆していますが、具体的な意味についてはまだ明らかにされていません。最後に、論理積を表す電子回路の記号も紹介されています。

 

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についてを知る2

/** Geminiが自動生成した概要 **/
この記事は、micro:bitのMicroPythonを使ってUART通信の基礎を解説しています。UARTではHIGH(1)とLOW(0)の信号でデータを送受信し、文字列をバイト型に変換して送信します。記事では、データ送信の仕組みとして、アイドル状態(1)、スタートビット(0)、データビット、パリティビット、ストップビット(1)からなるシリアル通信の構造を図解で説明しています。特に、パリティビットはデータ送信時の誤り検出符号として、奇パリティと偶パリティがあることを解説し、micro:bitでの設定方法にも触れています。最後に、ボーレートについても触れる予定としていますが、詳細は次回に持ち越しとなっています。

 

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の開発やデバッグに役立つ強力なツールです。


Powered by SOY CMS  ↑トップへ