組み込み

マイコン回路の秘密:プルアップ・プルダウン抵抗の必要性

電子回路設計やマイコンプログラミングに携わる際、プルアップ抵抗とプルダウン抵抗はよく使われる要素の一つです。この記事では、なぜこれらの抵抗が必要であるのか、どのように機能するのかについて詳しく解説します。 (function(b,c,f,g,a,d,e){b.Moshimo…

C言語で学ぶデジタルフィルタ:サンプルコードと基本理念

デジタル信号処理の重要な概念であるデジタルフィルタ。今回は、C言語を使用してデジタルフィルタの基本的な理念とサンプルコードを紹介します。コードの実行と結果を通して、デジタルフィルタがどのように信号を変換するかを理解しましょう。 (function(b,c…

BLEとBluetoothの比較:違いと共通点を知ろう

Bluetooth Low Energy(BLE)とBluetoothは、名前こそ似ていますが、実は異なる技術です。このブログでは、BLEとBluetoothの違いに焦点を当て、両者の共通点や特徴について深堀りしてみましょう。 (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a…

バグのないソースコードのための5つのベストプラクティス

ソフトウェア開発において、バグは避けて通れない課題ですが、適切なプラクティスを導入することで、その発生を最小限に抑えることができます。以下は、バグのないソースコードを作成するための5つのベストプラクティスです。 1. テスト駆動開発(TDD)の採…

温度を極限まで制御するためのPID制御の注意点

PID(Proportional, Integral, Derivative)制御は、温度の正確な制御において非常に効果的ですが、注意深い設定と調整が必要です。今回は、PID制御を使用する際の重要な注意点に焦点を当ててみましょう。 1. 初期設定の適切な選択 PID制御の初期設定は、制…

main関数にreturn 0を書く理由とは?

プログラミングを始めたばかりの初学者や、main関数について詳しく知らない人にとって、main関数にreturn 0を書く理由はわかりにくいかもしれません。しかし、return 0はmain関数の最後に書かれることが一般的であり、重要な役割を果たしています。本記事で…

シリアル通信の秘密:ボーレートの舞台裏

シリアル通信は、様々な電子機器やマイコンなどのデバイス間でデータをやり取りする際に利用される一般的な通信プロトコルです。その中で、ボーレート(Baud Rate)は通信速度を決定する重要な要素の一つです。 ボーレートとは? ボーレートは、シリアル通信…

スマホでPythonを動かす!簡単ステップガイド

スマートフォンでPythonを実行することは、モバイルな環境でのプログラミング体験を豊かにします。以下に、スマートフォンでPythonを実行する方法の簡単なステップをまとめました。 1. Termuxをインストールする スマートフォンにTermuxアプリをインストール…

無線と有線、繋がる未来:シリアル通信の進化

シリアル通信は、情報のやり取りにおいて欠かせない技術であり、その進化は我々の生活に大きな影響を与えています。特に無線通信と有線通信の進化は、未来のネットワーキングやデバイス間のコミュニケーションに新たな展望をもたらしています。 1. 無線通信…

1と0の舞台裏:シリアル通信の秘密解剖

シリアル通信は、デジタル情報が機器やシステム間でやり取りされる際のエッセンシャルな手段となっています。このブログでは、シリアル通信の基本的な原理と、1と0が織りなすデジタルの舞台裏に迫ります。 1. デジタル言語の鍵:ビットとは? シリアル通信の…

制御の達人への一歩!Ziegler-Nichols法と相補感度法で学ぶPIDパラメータの調整

PID制御のパフォーマンスを最適化するためには、正確なパラメータ調整が必須です。本記事では、Ziegler-Nichols法と相補感度法に焦点を当て、PIDパラメータの調整方法について探究してみましょう。 1. Ziegler-Nichols法: 概要: Ziegler-Nichols法は、安定性…

制御の鍵を握る!PIDパラメータの決め方と最適な調整方法

制御工学において、PID(比例-積分-微分)コントローラは広く使用されていますが、その性能を最大限に引き出すためには正確なパラメータ調整が欠かせません。今回は、PIDパラメータの決め方と最適な調整方法について詳しく解説します。 1. PIDコントローラの…

【Python】コードで繋がる:プログラマのためのシリアル通信解説

(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)}; c.getElementById(a)||(d=c.createElement(f),d.src=g, d.…

【応用】PID制御の奥深さ: C言語で学ぶProportional, Integral, Derivative制御の種類

(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)}; c.getElementById(a)||(d=c.createElement(f),d.src=g, d.…

【基礎】PID制御の探求: C言語で学ぶProportional, Integral, Derivative制御

(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)}; c.getElementById(a)||(d=c.createElement(f),d.src=g, d.…

Arduinoユーザーのためのシリアル通信マスターガイド

Arduinoはセンサーからモーターまで、さまざまなデバイスとの連携が可能なマイコンプラットフォームです。本記事ではArduinoユーザーがシリアル通信をマスターし、プロジェクトに効果的に応用できるようになるための包括的なガイドを提供します。基本概念か…

シリアル通信の基礎: ビットレートからパリティまで解説

(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)}; c.getElementById(a)||(d=c.createElement(f),d.src=g, d.…

マイコンとの対話を楽しむ: シリアル通信の基礎解説と実践ガイド(Arduino)

マイコンとの対話は、電子工作やプログラミングの醍醐味の一つです。その中でも、シリアル通信はマイコンとの情報伝達を容易にし、豊富な制御が可能にします。本記事では、シリアル通信の基礎から実践的な応用まで、マイコンとの対話を楽しむための情報を提…

【シリアル通信】UART、SPI、I2C: 通信プロトコルの比較と使いどころについて解説!

(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)}; c.getElementById(a)||(d=c.createElement(f),d.src=g, d.…

【初心者向け】UART通信(調歩同期式)とは?(概要、通信方法)

■キーワードUART、マスター、スレーブ、調歩同期式、クロック(CLC) ■UARTとは? ◯概要説明 ◯どんな信号線? ◯どんな時に使う? ■UARTの通信手順 ◯基礎知識 ◯データ転送の流れ ①スタートビット ②データ送信 ③パリティ ④ストップビット ■その他UART関連技術(キ…

【初心者向け】I2C通信を理解する(概要、通信手順)

■キーワードI2C、マスター、スレーブ、同期式通信、クロック(CLC) ■I2Cとは? ◯概要説明 ◯どんな信号線? ◯どんな時に使う? ■I2Cの通信手順 ◯大前提基礎知識 ◯信号の読み方 ◯手順 ①スタートコンディション送信 ②スレーブアドレスを送信 ③書き込み/読み出し…

mbed application boardのjoysticを使ってみる

「mbed」と「mbed Application Board」を使用して、内蔵されているjoysticを使ってみます。 最終目標としては、joysticの入力内容をLCDにリアルタイム表示するところまでやります。 使用機器 ・mbed(LPC1768)・PC・mbed Application Board 手順 (1)BusInを使…

mbed Application Board内蔵の加速度センサMMA7660を使ってみる

「mbed」と「mbed Application Board」を使用して、内蔵されているMMA7660を使ってみます。 最終目標としては、得られた加速度(X,Y,Z)情報をLCDにリアルタイム表示するところまでやります。 使用機器 ・mbed(LPC1768)・PC・mbed Application Board 手順 (1)…

mbed LPC1768のLチカ

mbedでLチカしてみます 使用機器 ・mbed(LPC1768)・PC・LED 1個・抵抗(1kΩ) 1個・ブレッドボード 1個・ジャンパワイヤ 1個 ソースコード 内容 まずデジタルアウトで21ピンを設定(myled2) ⇓ ・main内でmyledに1を代入すると出力(LED点灯) ・ 0を代入するとL…

ARMマイコンのSDカード通信のSDK(fatfs_example)をSDHCに対応させる

使用エディタ:Embedded studio for ARM SDK:15.0.0 SDHCに対応させるには適切な順序でコマンド送信をする必要がある。 SDK内の"app_sdcard.c"というソースコードを使用することでSDカードとの通信をすることは可能ではあるが、このままではSDHCには対応して…

ARMマイコン(nRF52832)でのSPI通信プログラム

今回はARMマイコンでSPI通信をしました。 エディタはEmbedded studio for ARM v4.16。 SDK15.0.0を使用。 SPI通信に必要な事項について書いておきます。 今回私はSDカードとのSPI通信をしたので単純にSPI通信をするにあたって必要のないものも含まれているか…

MPU9250の設定

MPU9250について実際に使用した時の各設定について書いておきます。 1)chip select 0x6Bに0x80を送信 (100ms のdelay) 2)wakeup device 0x6Bに0x01を送信 3)Active function 0x6Aに0x30を送信 4)加速度センサ測定レンジ設定(±8g) 0x1Cに0x10を送…

電子工作におけるバッテリー選択について

電子工作をするにあたって、バッテリーを選択する機会が必ずあると思います。 今回私は電子工作の試作装置としてブレッドボードと直流安定化電源を使用していました。 そこで装置開発として基板に半田付けをして製作したのですが、バッテリーを選択する必要…

降圧レギュレータの使用方法(NJM2872AF33)

降圧レギュレータの使用方法や使用するコンデンサの意味についてまとめておきます。 今回はNJM2872AF33という降圧レギュレータを使用し、3.7Vの電圧を3.3Vまで降圧してからモジュールに印加するという流れで使用しました。 そこでバイパスコンデンサ等を接続…

ボーレート(baudrate)と転送速度(bps)について

こんにちは 電子工作等する時によく聞くボーレートと転送速度について今回は調べたいと思います。言葉としては大体どんなものか想像つくのですが、数値で見てもどのくらいが良くてどのくらいが悪いのかわからないため、それを重点的に勉強したいと思います。…