目次

Arduino


Arduino | Welcome!

このページではArduinoをもちいた電子回路,プログラムなどに関する情報を扱います.

キャンバスの関数, 変数一覧 | Arduinoで2Dグラフィックを扱う

関数

SetSize キャンバスの大きさ設定
Canvas コンストラクタ
SizeX キャンバスx方向の大きさ
SizeY キャンバスy方向の大きさ
Pos 描画位置の指定
Dot 点の描画
Line 直線の描画
VerticalLine 垂直直線の描画
Boxf 矩形の描画
Boxw ワイヤー矩形の描画
Celput 画像の表示
Mes 文字列の描画
PutChar 文字の描画

変数

color 色情報
posX 描画位置x座標
posY 描画位置y座標
Arduino標準機能との融合 | 仕組み

ここでは, OSの機能とArduino標準機能と融合していきます. 融合するものとしては, Arduino言語―setup(), loop()―, Arduino標準関数に影響するタイマー割り込み部分です.

キャンバスの使い方 | Arduinoで2Dグラフィックを扱う

ここでは, Canvasの基本的な使い方を説明します. 説明内容は以下のとおりです.

  • ファイルの配置
  • キャンバスの開始
  • 点を打つ
  • 文字を書く
  • 画像を描く
  • 最後に
キャンバスの特徴 | Arduinoで2Dグラフィックを扱う

このキャンバスの特徴は大きく分けて4つあります.

  • 応用しやすい関数セット
  • 白紙のキャンバスに文字、画像、直線などを描くような操作
  • 高い移植性
  • 高い描画効率
MelodyPlayerの関数一覧 | Arduinoでメロディーを鳴らす
関数
Begin MelodyPlayerの開始
End MelodyPlayerの終了
Play メロディー再生
Stop メロディー停止
IsPlaying 再生中かどうか
Enum
PLAY_MODE プレイモード
MelodyPlayerの使い方 | Arduinoでメロディーを鳴らす

ここでは, MelodyPlayerの基本的な使い方を説明します. 説明項目は以下のとおりです.

  • 再生
  • メロディーの追加方法
MelodyPlayerの導入方法 | Arduinoでメロディーを鳴らす

MelodyPlayerの導入方法を説明します. 説明項目は以下のとおりです.

  • ダウンロード
  • ファイルの説明
  • インクルード
  • ピン接続
ArduinoでArduinoにスケッチ書き込み | Arduino

Arduinoにプログラムを書き込むにはパソコンが必要です. パソコンでプログラムを書きArduinoをパソコンに接続し、スケッチをマイコンボードに書き込みます. 別のプログラムを実行したいとき、またパソコンに接続してスケッチを書き込みます。これは大変労力かかると同時にパソコンなしではプログラムの変更は不可能です.

このページでは、それを解決する一つの方法を提案します。それは, Arduinoが別のArduinoへスケッチを書き込むということです. 詳しく言うと, スケッチをコンパイルした後に作成されるHexFileをSDカードに保存し, そのHexFileをある一つのArduinoが読み込み別のArduinoへスケッチを書き込むということです.

このページで紹介する方法で以下のことができます。

  • ArduinoでArduinoにスケッチ書き込み
  • 他機能の組み合わせで応用可能

"他機能の組み合わせで応用可能"の例ですが, ある端末を作ったとします。その端末にはグラフィック液晶ディスプレイ、コントローラーが付いています。使用者にグラフィック液晶でスケッチの選択をさせることで、一つの端末で複数のプログラムを実行することができます; パソコンでいちいちスケッチを書き込む必要はありません。

対応環境

ただし、以下の環境が必要です。

スケッチを書き込まれるArduinoにはブートローダー"optiboot"がかきこまれていること

optibootがかきこまれているArduinoは"Arduino UNO"です。このサイトでもこれを使用しています。

スケッチを書き込むArduinoは16MHzで動作していること

optibootとの通信には115200bpsのシリアル通信が用いられています。8MHzなどの低周波数で動作するArduinoではこの通信がうまくいきません。

コントローラー | Arduino

Arduinoを用いた電子工作でよく使うものの一つにスイッチがあります. 一つか二つのスイッチを使うのなら問題はないのですが、大量のスイッチを用いた電子工作となるとスイッチ一つに一つのピンを消費するわけにはいかなくなります.

例えば、ちょっとしたゲーム機を作るとしましょう. 十字キー、ABボタンなどで少なくとも6つぐらいのスイッチが必要となります. またグラフィック液晶との接続に13ピンほど使います.ピンが足りません.一つのピンで複数のスイッチ入力を読み取る必要があります.

また別の問題として仮に上の問題を解決―例えば抵抗による分圧方法によって解決―したとしても同時入力ができない問題があります. ゲーム機を作るとしてボタンの同時入力ができないのはかなり大きな問題でしょう.

このページではこれらの問題を解決する一つの方法を説明します。

このページで紹介する方法で以下のことができます。

  • 一ピンあたりボタン六個の入力が可能
  • 同時入力も可能
シリアル通信
シリアルモニタを開くまでArduino-Python間のシリアル通信のデータ破損 | トラブルシューティング

ArduinoとPython間のシリアル通信で, Arduino側から送られたシリアルデータをPythonのpySerialモジュールで読み込むと, 破損したデータ-予想していないデータ-を受信する. だが, 一度Arduinoのシリアルモニタでデータを確認すると正常に受信できており, それ以降, pythonの方でも正常に受信できる.

pythonで受信. 予期しないデータが受信されている
pythonで受信. 予期しないデータが受信されている

本稿では, 上記の問題の原因と解決方法について述べる.

Python
シリアルモニタを開くまでArduino-Python間のシリアル通信のデータ破損 | トラブルシューティング

ArduinoとPython間のシリアル通信で, Arduino側から送られたシリアルデータをPythonのpySerialモジュールで読み込むと, 破損したデータ-予想していないデータ-を受信する. だが, 一度Arduinoのシリアルモニタでデータを確認すると正常に受信できており, それ以降, pythonの方でも正常に受信できる.

pythonで受信. 予期しないデータが受信されている
pythonで受信. 予期しないデータが受信されている

本稿では, 上記の問題の原因と解決方法について述べる.

トラブルシューティング
シリアルモニタを開くまでArduino-Python間のシリアル通信のデータ破損 | トラブルシューティング

ArduinoとPython間のシリアル通信で, Arduino側から送られたシリアルデータをPythonのpySerialモジュールで読み込むと, 破損したデータ-予想していないデータ-を受信する. だが, 一度Arduinoのシリアルモニタでデータを確認すると正常に受信できており, それ以降, pythonの方でも正常に受信できる.

pythonで受信. 予期しないデータが受信されている
pythonで受信. 予期しないデータが受信されている

本稿では, 上記の問題の原因と解決方法について述べる.

音楽再生
Arduinoでメロディーを鳴らす | Arduino

Arduinoで何か作品を作っているとき, その作品に音を鳴らせたい時があります. 本格的に音楽を鳴らすのではなく, 効果音としてちょこっと入れたいという意味です. 例えば, 簡単な早押しゲームを作るとして, ボタンを押したときの効果音を入れたいという時です. ですが, この効果音を入れたいために別のArduinoを用意するのはコストの点で好ましくありません. -オーディオプレイヤーのように音楽を鳴らしたい時は[Arduino/Arduinoで音楽を鳴らす]を参照してください.-

ここで, このMelodyPlayerがあります. このMelodyPlayerは新たにArduinoを用意する必要はありません. また, 音楽再生処理はバックグラウンドで行っているためメインプログラムに何も影響を与えません. メロディーを流しながら何か他の処理―LED点灯, ボタン入力など―をすることができます. あなたがすでに書いたスケッチのコードに一行"Play(’Melody名’)"と入れるだけでメロディーが再生されます.

MelodyPlayerができるのは以下の通りです.

  • インクルードするだけで簡単にメロディー再生
  • 簡単にメロディーを追加

ただしMelodyPlayerはピン3,9,10,11のPWM出力を妨げます.

Arduinoで音楽を鳴らす | Arduino

Arduinoで電子工作をしていると音を鳴らしたくなります. その鳴る音は電子音のようなピーピー音ではなく, ゲーム機でなっているような音―むしろ音楽といった方がいいでしょう―にしたいです.

このページではArduinoを用いて音楽を鳴らすことができる’MediaPalyer’を紹介します. 外部シールドを使わないで音楽を鳴らすことができます.

ただし以下の環境が必要です.

対応環境

メインのArduino

下の音楽再生用のArduinoをコントロールするためのものです.

音楽を再生するためのArduino

MediaPlayerは音楽を再生するためのArduinoを必要とします. これはつまり音楽を再生する処理とそのほかのメイン処理を分けるということになります. こうすることで, Arduinoは音楽を再生するための処理に集中することができます.

対応しているArduinoについて

  • 動作周波数: 8MHz, 16MHz

microSD

音楽ファイルを保存するために必要です

音楽ファイル

  • 対応ファイル形式: Wave
  • サンプリング周波数: 32KHz, 16KHz, 8KHz
  • 量子化精度: 8bit
ライブラリ
Arduinoでメロディーを鳴らす | Arduino

Arduinoで何か作品を作っているとき, その作品に音を鳴らせたい時があります. 本格的に音楽を鳴らすのではなく, 効果音としてちょこっと入れたいという意味です. 例えば, 簡単な早押しゲームを作るとして, ボタンを押したときの効果音を入れたいという時です. ですが, この効果音を入れたいために別のArduinoを用意するのはコストの点で好ましくありません. -オーディオプレイヤーのように音楽を鳴らしたい時は[Arduino/Arduinoで音楽を鳴らす]を参照してください.-

ここで, このMelodyPlayerがあります. このMelodyPlayerは新たにArduinoを用意する必要はありません. また, 音楽再生処理はバックグラウンドで行っているためメインプログラムに何も影響を与えません. メロディーを流しながら何か他の処理―LED点灯, ボタン入力など―をすることができます. あなたがすでに書いたスケッチのコードに一行"Play(’Melody名’)"と入れるだけでメロディーが再生されます.

MelodyPlayerができるのは以下の通りです.

  • インクルードするだけで簡単にメロディー再生
  • 簡単にメロディーを追加

ただしMelodyPlayerはピン3,9,10,11のPWM出力を妨げます.

Arduinoで2Dグラフィックを扱う | Arduino

Arduinoでグラフィック液晶やドットマトリックスを操作することは定番です. またそれらを操作するライブラリも豊富です. ただ, それらに共通してある2Dに何かを描画するという機能は多くの場合独立していません. この機能を独立させることで, いかなる表示機においても2Dに対する描画法を統一できます. 例えば, ドットマトリックスで描画していたものをグラフィック液晶に簡単に移植できます. メンテナンスもしやすくなるでしょう. 描画の機能のパフォーマンスが向上すれば, その恩恵はその機能を使っているすべての表示機にも与えられます.

キャンバスとは, Arduinoで2Dグラフィックを扱う時に便利なライブラリです. キャンバスはメモリ上にある描画空間に対して処理を行います―例えば, 点を打つ, 線を引くなど―.

キャンバス単体で用いることはほとんどありません. キャンバスと実際に目に見えるものに描画するものとを組み合わせて使用します.

このキャンバスの特徴は以下の通りです.

  • 応用しやすい関数セット
  • 白紙のキャンバスに文字、画像、直線などを描くような操作
  • 高い移植性
  • 高い描画効率

キャンバスを強化, 改良, 何でもしてください(’ω’)ノ

SketchWriter | ArduinoでArduinoにスケッチ書き込み

SketchWriterとは、optiboot―これが書き込まれているArduinoはArduinoUnoです―と通信することができるものです。このSketchWriterはoptibootに対してメモリのセット、データの送信、アプリの実行、を命令することができます。それらの命令を使ってパソコンを用いずにArduinoにスケッチ―Arduinoではプログラムのことをスケッチと呼んでいます―を書き込むことができます。SketchWriterができることは以下のことです。

  • optibootに対しての基本命令の送信
  • スケッチが書かれたHexFile(Hexファイル)の読み込み
  • Arduinoにスケッチを送信
  • 今後応用可能な関数セット

optibootに対しての基本命令とはメモリのセット、 データの送信、 アプリの実行、 optibootと同期などをさします。このヘッダを用いるとArduinoからArduinoへスケッチ―プログラム―を書き込むことができます。

ただし、以下の環境が必要です。

スケッチを書き込まれるArduinoにはブートローダー"optiboot"がかきこまれていること

optibootがかきこまれているArduinoは"Arduino UNO"です。このサイトでもこれを使用しています。

スケッチを書き込むArduinoは16MHzで動作していること

optibootとの通信には115200bpsのシリアル通信が用いられています。8MHzなどの低周波数で動作するArduinoではこの通信がうまくいきません。

SketchWriterを改良、強化、何でもしてください(;´∀`)

Arduinoで音楽を鳴らす | Arduino

Arduinoで電子工作をしていると音を鳴らしたくなります. その鳴る音は電子音のようなピーピー音ではなく, ゲーム機でなっているような音―むしろ音楽といった方がいいでしょう―にしたいです.

このページではArduinoを用いて音楽を鳴らすことができる’MediaPalyer’を紹介します. 外部シールドを使わないで音楽を鳴らすことができます.

ただし以下の環境が必要です.

対応環境

メインのArduino

下の音楽再生用のArduinoをコントロールするためのものです.

音楽を再生するためのArduino

MediaPlayerは音楽を再生するためのArduinoを必要とします. これはつまり音楽を再生する処理とそのほかのメイン処理を分けるということになります. こうすることで, Arduinoは音楽を再生するための処理に集中することができます.

対応しているArduinoについて

  • 動作周波数: 8MHz, 16MHz

microSD

音楽ファイルを保存するために必要です

音楽ファイル

  • 対応ファイル形式: Wave
  • サンプリング周波数: 32KHz, 16KHz, 8KHz
  • 量子化精度: 8bit
編集中
スクリプティング | Arduino上で走るOSの作り方

ここから, OSのソースファイル, ヘッダファイルを順番に実装していきます.

実装するファイルは次のとおりです.

  • Heap4.c
  • List.c
  • List.h
  • ArduinOS.h
  • ArduinOSConfig.h
  • ArduinOSConfigAtmega328P.h
  • ArduinOSConfigAtmega2560.h
  • Port.c
  • Portable.h
  • PortMacro.h
  • ProjDefs.h
  • Queue.c
  • Queue.h
  • Semaphore.h
  • StackMacros.h
  • Task.c
  • Task.h

変更を加えるファイルは以下のとおりです.

  • Arduino.h
  • wiring.c
  • main.cpp

基本的な製作の流れを踏まえつつ, 各ファイルごとに説明を行っていきます.

仕組み | Arduino上で走るOSの作り方

ここには, OSの仕組みに関する情報が書かれます. OSは非常に多くのことが関わっているため以下のように分けていきます.

  • メモリ管理
  • タスク管理
  • OSの設定
  • Arduino標準機能との融合
OS
スクリプティング | Arduino上で走るOSの作り方

ここから, OSのソースファイル, ヘッダファイルを順番に実装していきます.

実装するファイルは次のとおりです.

  • Heap4.c
  • List.c
  • List.h
  • ArduinOS.h
  • ArduinOSConfig.h
  • ArduinOSConfigAtmega328P.h
  • ArduinOSConfigAtmega2560.h
  • Port.c
  • Portable.h
  • PortMacro.h
  • ProjDefs.h
  • Queue.c
  • Queue.h
  • Semaphore.h
  • StackMacros.h
  • Task.c
  • Task.h

変更を加えるファイルは以下のとおりです.

  • Arduino.h
  • wiring.c
  • main.cpp

基本的な製作の流れを踏まえつつ, 各ファイルごとに説明を行っていきます.

ボードの設定 | Arduino上で走るOSの作り方

ここでは, OSをArduinoIDE上で使用できるようにします.

するべきことは, コアフォルダの追加とボードの追加です.

Arduino上で走るOSの作り方 | Arduino

OSは日常のあらゆる場所で目にします. パソコンには必ずと言っていいほどOSが走っており, 携帯, ゲーム機などにもOSが走っております. このような普段よく使うOSですが, そのOSの仕組みを分かっていても, 実際どのように作るのかはよく知られておらず気になります.

このページでは, 実際にArduinoで動くOSを作成することで, OSの理解を深めます. 使用するプログラミング言語はC言語です. (作成といいましても, すでに在りますFreeRTOSから必要な機能を抜き出し, Arduinoで動くようにしました.) なお, 今回扱うOSは汎用OSではなくリアルタイムOS(RTOS)と呼ばれるものです. 汎用OSとは, すべてのタスクに等しく優先度が与えられますが, RTOSではタスクごとに優先度を設定できます.

話の進め方ですが, 今回のOS製作では実装に重きを置くため, コードを中心に話を進めていきます. 各コードごとに簡単な説明を行い, その中で特に重要な部分―OSの仕組みに深くかかわる部分―もしくはさらに詳しい説明については別ページで行います. これら別ページ―詳細ページ―は子コンテンツである"仕組み"にまとめられています.

話の流れは次のとおりです.

  • RTOSとは
  • 目標と使い方
  • 準備
  • ファイル構成
  • スクリプト
  • ボードの設定
  • 仕組み

対応状況

  • Arduino UNO
  • Arduino Mega

動作確認済み環境

  • Arduino IDE 1.8.10
  • Arduino AVR Boards 1.8.1
参考文献 | Arduino上で走るOSの作り方

ここでは, 筆者が参考にしたページ, 資料の一覧が書かれます.

仕組み | Arduino上で走るOSの作り方

ここには, OSの仕組みに関する情報が書かれます. OSは非常に多くのことが関わっているため以下のように分けていきます.

  • メモリ管理
  • タスク管理
  • OSの設定
  • Arduino標準機能との融合
ファイル構成 | Arduino上で走るOSの作り方

ここでは, 今回のOS製作で新しく作られるファイルの説明を行います.

準備 | Arduino上で走るOSの作り方

OSを作成するにあたっての準備を行います.

目標と使い方 | Arduino上で走るOSの作り方

OSを作成するにあたって, まずこのOSの使い方を説明します. (まず, 使い方を説明することでOS完成のイメージをつかむことができます.)

RTOSとは | Arduino上で走るOSの作り方

RTOSは, 組み込み系のシステムで用いられることが多いです.

一般OSと同様にタスクの切り替えを行う点は同じですが, タスクの切り替え規則に特色があります[1]. タスクの実行可能状態になるまでの時間の最悪値が保証されるように作られています.

使用方法 | Arduino上で走るOSの作り方

ここでは, ArduinOSの使用方法を説明します.

リアルタイムOS
Arduino上で走るOSの作り方 | Arduino

OSは日常のあらゆる場所で目にします. パソコンには必ずと言っていいほどOSが走っており, 携帯, ゲーム機などにもOSが走っております. このような普段よく使うOSですが, そのOSの仕組みを分かっていても, 実際どのように作るのかはよく知られておらず気になります.

このページでは, 実際にArduinoで動くOSを作成することで, OSの理解を深めます. 使用するプログラミング言語はC言語です. (作成といいましても, すでに在りますFreeRTOSから必要な機能を抜き出し, Arduinoで動くようにしました.) なお, 今回扱うOSは汎用OSではなくリアルタイムOS(RTOS)と呼ばれるものです. 汎用OSとは, すべてのタスクに等しく優先度が与えられますが, RTOSではタスクごとに優先度を設定できます.

話の進め方ですが, 今回のOS製作では実装に重きを置くため, コードを中心に話を進めていきます. 各コードごとに簡単な説明を行い, その中で特に重要な部分―OSの仕組みに深くかかわる部分―もしくはさらに詳しい説明については別ページで行います. これら別ページ―詳細ページ―は子コンテンツである"仕組み"にまとめられています.

話の流れは次のとおりです.

  • RTOSとは
  • 目標と使い方
  • 準備
  • ファイル構成
  • スクリプト
  • ボードの設定
  • 仕組み

対応状況

  • Arduino UNO
  • Arduino Mega

動作確認済み環境

  • Arduino IDE 1.8.10
  • Arduino AVR Boards 1.8.1
作品
作品例 | Arduino

ここには, Arduinoを用いた作品を紹介します.

ダウンロード
ダウンロードページ | Arduinoで2Dグラフィックを扱う

キャンバスは以下のページからダウンロードできます.

ブートローダ
Optibootについて | ArduinoでArduinoにスケッチ書き込み

Optibootに関して簡単に説明します. 説明項目は以下のとおりです.

  • optibootとは
  • optibootの起動方法
  • optibootにコマンドを送る
  • optibootにスケッチを送る
音楽
MediaPlayerの関数, 変数一覧 | Arduinoで音楽を鳴らす
関数
Begin MediaPlayerControllerの開始
Stop 音楽停止
Load 音楽ファイルロード
Play 音楽再生
Enum
PLAY_MODE プレイモード
MediaPlayerの使い方 | Arduinoで音楽を鳴らす

ここでは, MediaPlayerの基本的な使い方を説明します. 説明項目は以下のとおりです.

  • 音楽ファイルを準備する
  • ピン接続
  • 音楽を再生する
MediaPlayerの導入方法 | Arduinoで音楽を鳴らす

MediaPlayerの導入方法を説明します. 説明項目は以下のとおりです.

  • ダウンロード
  • ファイルの説明
  • 音楽再生モジュールの作成
  • 再生モジュールとコントローラの接続
  • コントローラ側の準備
Arduinoで音楽を鳴らす | Arduino

Arduinoで電子工作をしていると音を鳴らしたくなります. その鳴る音は電子音のようなピーピー音ではなく, ゲーム機でなっているような音―むしろ音楽といった方がいいでしょう―にしたいです.

このページではArduinoを用いて音楽を鳴らすことができる’MediaPalyer’を紹介します. 外部シールドを使わないで音楽を鳴らすことができます.

ただし以下の環境が必要です.

対応環境

メインのArduino

下の音楽再生用のArduinoをコントロールするためのものです.

音楽を再生するためのArduino

MediaPlayerは音楽を再生するためのArduinoを必要とします. これはつまり音楽を再生する処理とそのほかのメイン処理を分けるということになります. こうすることで, Arduinoは音楽を再生するための処理に集中することができます.

対応しているArduinoについて

  • 動作周波数: 8MHz, 16MHz

microSD

音楽ファイルを保存するために必要です

音楽ファイル

  • 対応ファイル形式: Wave
  • サンプリング周波数: 32KHz, 16KHz, 8KHz
  • 量子化精度: 8bit
液晶
グラフィック液晶 | Arduino

グラフィック液晶に関する情報をあつかいます. 扱うグラフィック液晶は’SG12864ASLB-GB’です.

グラフィック液晶外観
グラフィック液晶外観

提案されたコンテンツ

GLCDControllerの導入方法 | GLCDControllerの紹介

ここでは, GLCDControllerの導入方法を説明します. 説明項目は以下のとおりです.

  • ダウンロード
  • ファイルの説明
  • インクルード
SketchWriterの関数, 変数一覧 | SketchWriter
関数
Begin SketchWriterの開始
End SketchWriterの終了
SetReaetPin リセット信号を出すピンの設定
ResetArduino Arduinoにリセットをかける
GetCh optibootからシリアルデータを受け取る
Wait optibootからの処理完了信号-STK_OK-待機
GetInSync optibootからのSTK_INSYNK信号待機
VerifySpace コマンド有効化
AppStart プログラムの開始
GetSync optibootと同期をとる
GetParameter optibootからOPTIBOOT_MAJVERまたはOPTIBOOT_MINVERを取得
SetAddress メモリのオフセット値を送信
SendData データの送信
SketchWrite スケッチの書き込み
SerialClear シリアルデータ削除
SetFileName 文字列’sketchName’にファイル名を代入
SketchLoad スケッチ-HexFile-の読み込み
SketchReload スケッチ-HexFile-の再読み込み
SketchClose スケッチ-HexFile-を閉じる
ReadHexVal HexFileから1Byteの数値を読み込む
ReadHexData HexData読み込み, 配列’hexData’に格納
変数
hexData[hexDataBufSize] 読み込んだHexData
fileEnded HexFile読み取り位置状態
sketchName ロードしたHexFile名
sendDataSize 一回でoptibootに送るデータサイズ
hexDataBufSize 配列’hexData’のサイズ
GLCDControllerの使い方 | GLCDControllerの紹介

GLCDControllerの基本的な使い方を説明します. 説明項目は以下のとおりです.

  • GLCDControllerのしくみ
  • ピン設定とGLCDControllerの開始
  • 文字の表示
  • 画像の表示
GLCDControllerの関数, 変数一覧 | GLCDControllerの紹介
関数
Begin GLCDControllerの開始
Draw グラフィック液晶への描画
変数
canvas 描画空間
液晶
グラフィック液晶の操作方法 | グラフィック液晶

ここでは, グラフィック液晶’SG12864ASLB-GB’の操作方法を説明します. これは, いわゆるライブラリの説明ではなく, ハードウェアそのものに対する操作方法です. この内容から, 自作のライブラリなどを製作することが可能です.

説明項目は以下のとおりです.

  • 入手方法
  • ピン配置
  • 名称
  • 実際に使ってみる
  • 参考文献
GLCDControllerの紹介 | グラフィック液晶
フレームレート測定画面
フレームレート測定画面

GLCDControllerとは、グラフィック液晶SG12864ASLB-GBを操作するものです. GLCDControllerの特徴は以下の通りです.

  • 2Dグラフィック操作ライブラリCanvasの利点を受け継ぎ
  • 高いフレームレート

このGLCDControllerのメンバ変数としてCanvasがあるのですが, このCanvasが2Dグラフィック操作を簡単にします. Canvasについての特徴はCanvasの特徴を参照してください.

画面の更新速度ですが,最高60fps以上(最高fps85fps, 平均60fps, 全画面更新15fps)まで出せます(ArduinoUno 16Mhzで検証).

GLCDControllerを改良、強化、何でもしてください(;´∀`)

OS
メモリ管理 | 仕組み

OSはタスクごとにメモリを動的に割り当てる必要があります(タスクが保有するメモリに関することはのちに説明します). というのも, これらのタスクはアプリケーション実行中に生成, 削除される可能性があるからです.

今回では, このメモリ管理をOSが行うことにします. OSがメモリ管理を行うことで, OS動作の理解がしやすくなるからです.

このページでは, OSによるメモリ管理をどのように実装するのか説明します.

メモリ
メモリ管理 | 仕組み

OSはタスクごとにメモリを動的に割り当てる必要があります(タスクが保有するメモリに関することはのちに説明します). というのも, これらのタスクはアプリケーション実行中に生成, 削除される可能性があるからです.

今回では, このメモリ管理をOSが行うことにします. OSがメモリ管理を行うことで, OS動作の理解がしやすくなるからです.

このページでは, OSによるメモリ管理をどのように実装するのか説明します.

C言語
メモリ管理 | 仕組み

OSはタスクごとにメモリを動的に割り当てる必要があります(タスクが保有するメモリに関することはのちに説明します). というのも, これらのタスクはアプリケーション実行中に生成, 削除される可能性があるからです.

今回では, このメモリ管理をOSが行うことにします. OSがメモリ管理を行うことで, OS動作の理解がしやすくなるからです.

このページでは, OSによるメモリ管理をどのように実装するのか説明します.

タスクコントロールブロック(TCB) | タスク管理

タスクを管理するにあたり, 各タスクの情報を保持しておく必要があります. このような情報の塊をタスクコントロールブロック(TCB)と呼びます.

Port.c | スクリプティング

PortMacro.hで宣言されているOSコア部分の関数をここで定義します. このファイルはAVRマイコン専用です.

マクロの機能 | C言語

C言語には, マクロと呼ばれるものがあります. マクロとは, コンパイル前にある規則に従って文字を置き換える機能を持ちます[1].

ここでは, マクロの詳しい機能の説明を行います.

製作
コントローラー製作 | コントローラー

コントローラ製作に関することについて説明します. 説明の項目は以下のとおりです.

  • 部品入手
  • 製作
  • 説明
  • 参考文献
ラダー回路
コントローラー製作 | コントローラー

コントローラ製作に関することについて説明します. 説明の項目は以下のとおりです.

  • 部品入手
  • 製作
  • 説明
  • 参考文献
回路
コントローラー製作 | コントローラー

コントローラ製作に関することについて説明します. 説明の項目は以下のとおりです.

  • 部品入手
  • 製作
  • 説明
  • 参考文献
DA変換
コントローラー製作 | コントローラー

コントローラ製作に関することについて説明します. 説明の項目は以下のとおりです.

  • 部品入手
  • 製作
  • 説明
  • 参考文献
編集中
Port.c | スクリプティング

PortMacro.hで宣言されているOSコア部分の関数をここで定義します. このファイルはAVRマイコン専用です.

ライブラリ
GLCDControllerの紹介 | グラフィック液晶
フレームレート測定画面
フレームレート測定画面

GLCDControllerとは、グラフィック液晶SG12864ASLB-GBを操作するものです. GLCDControllerの特徴は以下の通りです.

  • 2Dグラフィック操作ライブラリCanvasの利点を受け継ぎ
  • 高いフレームレート

このGLCDControllerのメンバ変数としてCanvasがあるのですが, このCanvasが2Dグラフィック操作を簡単にします. Canvasについての特徴はCanvasの特徴を参照してください.

画面の更新速度ですが,最高60fps以上(最高fps85fps, 平均60fps, 全画面更新15fps)まで出せます(ArduinoUno 16Mhzで検証).

GLCDControllerを改良、強化、何でもしてください(;´∀`)

Controllerの使い方 | コントローラ読み取りライブラリ

ここでは, Controllerの基本的な説明を行います. 説明項目は以下のとおりです.

  • ボタン数,ピン設定
  • ボタン番号設定
  • スイッチ情報の読み込み
「https://contentsviewer.work/Master/TagMap/Arduino?layer=ja」から取得