未分類 [Arduino] | でQumcumPRO(ESP32)をプログラミング|IDE設定からLED点滅テストまで ESP32をArduino IDEでプログラムする方法を詳しく解説!ボードマネージャの設定、テストプログラムの作成、LED点滅テストの実行までのステップバイステップガイドです。初心者でも簡単に始められます。 2025.01.13 未分類
プログラミング [Arduino] | toneをタイマー割り込みで制御する Arduino Leonardo(CPUはATmega32U4)で、tone関数を使わずにBEEP音を出すプログラムを作ってみたいと思います。実験には株式会社CRETARIAが販売をしています二足歩行ロボットQumcumを利用することで、特に配線などをせずそのままUSBで接続してプログラミングを行います。つくるもの440Hzの音を1秒間ずつ鳴らしてみます。処理はtoneもdelayも使わずに、タイマー割り込みと直接レジスターを制御するコードを書いてみます。プログラムでは、音を1秒間鳴らし、その後1秒間停止するというパターンを繰り返す動作のために、2つのタイマー(タイマー3とタイマー1)を使用し... 2024.06.07 プログラミング
プログラミング [Arduino] | IDE 2.3.Xのインストールと動作確認 Arduinoを使ってプログラミングを行う際に使用するArduinoIDEは、どんどん進化をしています。特に、最近リリースされた2.3.2については、コンパイルやリンクなどの動きも過去のIDEと比べて、相当処理速度が向上されています。今日は、このArduino IDE 2.3.2 についてのインストールから日本語化、その他特徴的な部分をご紹介していきたいと思います。 ArduinoIDEとは.... まず、ArduinoIDEのIDEの「IDE」は「Integrated Development Environment」の略で、統合開発環境を意味します。 Arduino IDEは、Arduin... 2024.04.26 プログラミング
プログラミング [Arduino] | ATmega328PBとATmega328Pの違い・比較 2015に発表されたATmega328Pの後継モデルであるATmega328PBは、さらに多くの機能とより多くのピン配置オプションもっていてATmega328Pと完全互換です。特に、2つのSPIインターフェース、2つのI2Cインターフェース、3つのタイマーとその他の機能強化が含まれていて旧モデルに加えて使い勝手がよさそうです。今日はこのATmega328PBについてATmega328Pと比較しながら評価していきます。328Pと328PBの基本仕様の比較まず基本的な仕様部分においてATmega328PBとATmega328Pを比較してみました。機能 / 特徴ATmega328PATmega328... 2024.04.24 プログラミング
プログラミング [Arduino] | サーボモーターでハンチングを回避するプログラムの実験 サーボモータを利用した場合、ある角度でモータを停止させると、モータを停止させているのにプルプルと震える現象をハンチングと呼びます。これは、様々な原因がありますが、プログラムによってもある程度回避できることがあります。今回はソフト的に回避する方法を、ArduinoのServeoクラスを利用していろいろトライしてみます。ハンチングの原因とその対策ハンチングが起こる原因としては、ギアーやベルトやエンコーダなどハード的な原因もありますが、ソフト的な原因も考えられるため、まずはその原因と、ソフト的な面からこのハンチングを止める対策を施してみます。ソフト的な原因とは....【制御ゲインの設定過多】制御シス... 2024.04.23 プログラミング
プログラミング [Arduino] | IDEでインラインアセンブラでLEDを点滅させてみる プログラミング言語の中の、CPUに最も近い言語はアセンブラです。 アセンブラは低級言語と呼ばれますが、CPUに近いため低級とよばれるのですが、言語への知識テクニックはとても高級(高度)が必要です。 今日はこのアセンブラ言語を使ってLチカをさせ、Arduinoの標準関数を使った場合とどのくらい差が出るのかを比較してみたいと思います。 ArduinoIDEでアセンブラを使う方法 Arduinoでは、CやC++を使ってプログラミングを行うことが基本ですが、ArduinoではこのIDEのC言語プログラムのコード中にアセンブラ言語を使うことができます。 この方法をインラインアセンブラと呼び、インラ... 2024.04.17 プログラミング
プログラミング [Arduino] | digitalWriteとpinModeを高速化しLチカを実験 Arduino標準関数で必ず使う pinMode() と digitalWrite()は、全ボードに共有な為、関数内でのオーバヘッドが大きくコンパイルサイズも大きくなります。また、処理速度もオーバーヘッド分遅いため簡単な実験レベルではいいのですが、本格的なプログラムを作っていると結構ダメージが大きかったりします。ここでは、これら2つの関数を、AVRレジスタレベルで操作し、高速化・コンパクト化を図ってみたいと思います。 作成したサンプルコード 以下は、pinModeの高速化関数 avr_pinModeと、digitalWriteの高速化関数 avr_digitalWriteを全く同じ引数によって... 2024.03.21 プログラミング
プログラミング [Arduino]|IoT時代を支える高性能マイコンESP32 ESP32とは何か?その起源や特徴、種類の違い、Arduinoとの互換性まで詳しく解説します。ESP32を使ったIoTプロジェクトの可能性を広げるための完全ガイド。初心者からプロまで必見! 2024.01.01 プログラミング