PWA, Unity, Linux, OpenCV, 自作, Pipenv, アラーム, ライブラリ, Web, CMS, DA変換, 編集中, 文法, cuDNN, 回路, QRコード, List, FTP, Cpp, ダウンロード, 発振回路, 軽量マークアップ言語, アルゴリズム, 言語パック, ツール, ショートカット, 生活, ラダー回路, ローカリゼーション, 画面分割, リアルタイムOS, 数学, ボット, コンテンツ管理, クラウドミュージックプレイヤー, OS, 構文解析, Stack, トラブルシューティング, 独自研究, OpenVPN, コンピュータグラフィックス, ROS, UTF-8, アプリ, エディタ, Queue, nodec-game-engine, C#, Windows, ブートローダ, タイマ, Git-Submodules, WSL, 遊び, C++, あいまい検索, Arduino
その他
シェーダなど
Unityを用いてゲームを作りやすくするものの一つにComponentがあります.
このページではComponentを紹介していきます. ここで紹介するComponentはゲームを作るときに役に立つものです.
筆者がこれまでに作成したアセットを紹介します.
各アセットの詳しい説明は, 別ページになります.
普段日常を過ごしてきて, ゲームを作ってみたいと思うことがあるでしょう. ただゲームの基礎を一から作ることはかなり労力がかかります. そこでゲームを動かす基本処理を持つゲームエンジンを用いると簡単にゲームを作ることができます.
このページではそのゲームエンジンのうちの一つであるUnityに関する情報を扱います.
このセクションでは, Windows Subsystem for Linux について書かれます.
サイズ固定のスタックを扱うライブラリを紹介します.
このStackは, 以下の特徴を持ちます.
- std::stack が使用できない状況下でのスタックの使用
- メモリを贅沢に使用しないサイズ固定スタック
- 例外処理に対応していない環境下での使用
CameraControllerとはCameraを制御するものです。これは次のことができます。
- 一人称,三人称カメラの切り替え
- カメラ移動の線形補間,曲線補間
- コライダーを自動で避けるAutoAvoidCollider機能
- 任意の場所にカメラ位置を設定可能
- 任意の方向にカメラを向けることが可能
上の機能が一つのカメラで実現できるためカメラ管理がしやすくなります。
CameraControllerを改良、強化、何でもしてください(;´∀`)
このページで書かれている書かれている内容が実際のスクリプトと異なる可能性があります.
このページの内容は2016年に執筆されています.
Arduinoでグラフィック液晶やドットマトリックスを操作することは定番です. またそれらを操作するライブラリも豊富です. ただ, それらに共通してある2Dに何かを描画するという機能は多くの場合独立していません. この機能を独立させることで, いかなる表示機においても2Dに対する描画法を統一できます. 例えば, ドットマトリックスで描画していたものをグラフィック液晶に簡単に移植できます. メンテナンスもしやすくなるでしょう. 描画の機能のパフォーマンスが向上すれば, その恩恵はその機能を使っているすべての表示機にも与えられます.
キャンバスとは, Arduinoで2Dグラフィックを扱う時に便利なライブラリです. キャンバスはメモリ上にある描画空間に対して処理を行います―例えば, 点を打つ, 線を引くなど―.
キャンバス単体で用いることはほとんどありません. キャンバスと実際に目に見えるものに描画するものとを組み合わせて使用します.
このキャンバスの特徴は以下の通りです.
- 応用しやすい関数セット
- 白紙のキャンバスに文字、画像、直線などを描くような操作
- 高い移植性
- 高い描画効率
キャンバスを強化, 改良, 何でもしてください(’ω’)ノ
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を改良、強化、何でもしてください(;´∀`)

Gameは必ずイベントを含みます. イベントがないGameはほとんどないでしょう.
イベント製作時によくあるのが, イベント管理のしにくさと, Debugのしにくさです. イベントを作っていくとどのイベントがどのイベントにどうつながるのかが重要ですが, 大量のイベントを作るとどんなイベントがどれほどあるのかが把握しにくくなります. 特にスクリプトでイベントを製作している場合はそうでしょう. Debugのしにくさとして, ある特定のイベントをDebugする際そのイベントに到達するのに時間がかかります. そのイベントの前にn個のイベントがあり, そのイベントに対するフラグがm個あり, またそのイベントに到達するのにt時間かかるとするならば, そのイベントのDebugに要する時間は $n \times m \times t$ となります.(n = 6; m = 3; t = 5分とするとDebug時間は90分になります. 非常に長いです)
上のような問題を解決するために, ’EventController’を紹介します. EventControllerができるのは次の通りです.
- Eventの遷移, 登録を直感的に行えるEditor
- Game中現在実行しているEventをお知らせ
- パラメータのアクセスは外部スクリプトでも可能
- Game実行中パラメータの値はEditor上でも設定可能
EventControllerを改良、強化、何でもしてください(;´∀`)
このページで書かれている書かれている内容が実際のスクリプトと異なる可能性があります.
このページの内容は2016年に執筆されています.
LanguagePackManagerとは言語パックを管理するものです. もちろんですがUnity上で動作します.
これを使うと以下のことができます.
- 言語パックの管理
- 各シーンでのアンロードとロード
言語パックといいながらファイル形式はテキスト形式です. 言語関係の編集が簡単になります.
また言語パックを各シーンでアンロードされるのでロードした言語パックが残り続けることがありません. これはすなわち使っていないメモリを開放します.
LanguagePackManagerを改良、強化、何でもしてください(;´∀`)
このページで書かれている書かれている内容が実際のスクリプトと異なる可能性があります.
このページの内容は2016年に執筆されています.
このページは筆者が作成したC++のライブラリが公開されます.
Controllerの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- ファイルの説明
- インクルード
- コントローラの使用開始
ここでは, Controllerの基本的な説明を行います. 説明項目は以下のとおりです.
- ボタン数,ピン設定
- ボタン番号設定
- スイッチ情報の読み込み
Controllerとは、このページで紹介したコントローラーを制御するものです。このヘッダファイルにある関数でコントローラーからのスイッチ情報を読み取りどのボタンが押されているかを判断します。Controllerができることは次の通りです。
- ボタンが押されている間もそのボタン入力を検出すること(トリガー形式)ができます
- ボタンが一回押されてそのあとも押されているときはそのボタン入力を検出しないこと(非トリガー形式)ができます
- インスタンス生成でコントローラーを簡単に追加できます
- ボタンの同時入力に対応しています
Controllerを改良、強化、何でもしてください(;´∀`)
このページでは, 筆者が作成したライブラリが置かれます.
C#からC++に入った人もいるでしょう. その時C#で大変よく使っていたListが恋しい場合があります. C++を書きつつC#を感じたい時があります.
上の問題を解決する方法でここで紹介するListがあります. このListで用意されている関数名はほぼC#と一致します. C#でのListは要素数が容量を上回ったとき自動でメモリが再確保されますが, ここで紹介するListもそのように動作します. アルゴリズムも同じです(はずです).
C#で非常に便利だったSort関数も用意されています. もちろんですが, 処理が一番早いとされているクイックソートアルゴリズム(O(n*log(n)))を使用しています.
Listを強化, 改良何でもしてください. ( `ー´)ノ
C#のListを使ったことがない方は, これをお勧めすることはできません. これと同様かそれ以上の機能を持つC++のvectorをお使いください. C++ですでに用意されています.

CollabCMSは,コンテンツを中心に置き,コンテンツに対して様々なアプローチをとることができる ウェブコンテンツ管理システム(CMS: ContentsManagementSystem)です.
多くのCMS(フラットファイル型,データベース型にかかわらず)は,システムを通してコンテンツファイルを編集することを前提にしています.CMS上でコンテンツ編集中に,生のファイルを編集することは多くの場合想定されていません.
CollabCMSは,コンテンツファイルとそのファイル構造をデータベースの基本とします.システムを通さずにコンテンツを変更,移動,削除しても正しく動作します.ある人が,CMS上でコンテンツを編集中に,ほかの人が生のファイルを編集できます.
コンテンツの編集で,多くのCMSは編集画面上にいろいろなツールを用意して,文章作成の補助をしています.ですが,その機能は編集画面を開いているときのみ有効であり,ファイルそのものを編集している際にはまったく意味を成しません.
CollabCMSでは,コンテンツファイルに可読性,可視性の高い記法を採用し,コンテンツファイルそのものが,文章作成の手助けをしてくれます.よく使われる記法(Markdownなど)は,セクションレベルにかかわらず,すべて左寄せで書かれますが,採用した記法は,インデントが挟まれます.これにより,文章の階層構造(アウトライン)が見やすくなり,書きやすくなります.
CollabCMSは,基本的なコンテンツ管理機能を持ちます.例えば,コンテンツの追加,編集,移動,削除のほかに,画像などのファイルをサーバーにあげることなどが可能です.ユーザごとのコンテンツ管理や非公開設定が標準で行えます.
標準で足りない機能は別のアプリケーションに任せてしまうことが可能です.例えば,バージョン管理をGitを用いて行うことができます.さらに,コンテンツフォルダをクラウドストレージ(Google Drive,OneDriveなど)と同期させ,クラウドを通してコンテンツを編集することができます(その場合,パソコンで好きなエディタで編集できるでしょう).
このように,CollabCMSは,システムでありつつもコンテンツファイルをベースにするため,コンテンツをファイルとしてみることができ,コンテンツへ対して様々なアプローチをとることができます.


個人~中規模のコンテンツ管理を想定しています.以下の方にお勧めです.
- 個人利用での備忘録
- サークルなど中規模の情報共有
CollabCMSの特徴は以下のとおりです.
- ディレクトリ,コンテンツファイルベース管理
- キャッシュ利用による速いレスポンス
- コンテンツ表示と編集
- コンテンツあいまい検索
- ユーザごとのコンテンツ管理と非公開設定
- 読み/書きやすい文章作成支援フォーマット
- データベース(MySQLなど)を使用しない
- SSL(TLS)を使用できない環境でのある程度のセキュリティ
- クラウドストレージサービス(GitHub,GitLab,Google Drive,OneDrive,…)との連携
- ローカリゼーションに対応
- タグを用いた変動的なカテゴライズ
CollabCMSの対応環境は以下のとおりです.無料のレンタルサーバでも動くようにしています.
- Apacheウェブサーバ上でphpが動作できること(php7.0.x以上)
- phpがファイルの操作を行えること
このシステムの前バージョンはContentsViewer でした.ContentsViewerはCollabCMSのモジュールの一部になりました.
version 2020.08.31
から, 本CMS名をCollabCMSからContentsPlanetへ変更しました.
このページは, version 2020.Jun.26
までのバージョンに関する情報です.
新バージョンContentsPlanetに関する情報は, [Welcome!/ContentsPlanet (CMS)]を参照してください.

自身が作成したもの, 見つけたものを公開する方法の一つに, インターネットを利用したWebPageの公開があります. この方法は他の方法(本の出版など)と比べ低コストで行うことが可能です. これは, 無料のレンタルサーバ, ページ編集ソフトなどのおかげです.
ContentsViewerはページ編集ソフトの一種です. 詳しく言うと, WebPageに関する機能を持つモジュールの集合です. ソフトの作りを簡単にして, カスタマイズ-デザイン, コンテンツ管理法, コンテンツ記法など- を簡単にできるようにという目的で開発しました.
ContentsViewerがどのようなものであるか知りたい方はこのWebPageを参考にしてください. このウェブページはすべてContentsViewerによって表示されています.
このシステムは, アップグレードされ, CollabCMS となりました. このシステムが持つモジュールは分離され, ContentsViewerはCollabCMSのモジュールの一部となりました.
本CMSは, ルート部, フロントエンド部, モジュール部, サービス部, クライアント部に分かれます.
各部の詳細を説明します.
インターネットでのセキュリティ技術について
CollabCMSは, ルート部, フロントエンド部, モジュール部, サービス部, クライアント部に分かれます.
各部の詳細を説明します.
ここでは, 本CMSの導入方法を説明します.
すぐに使用したい方は, 項目のはじめるをご覧ください.
ここでは, CollabCMSの導入方法を説明します.
すぐに使用したい方は, 項目のはじめるをご覧ください.
Web(ブラウザ)上で動く各種ツール
本CMSの仕組みについて
CollabCMSの仕組みについて
本CMSは以下のサイトからダウンロードできます.
CollabCMSは以下のサイトからダウンロードできます.
Summary
ここでは, ArduinOSの使用方法を説明します.
各タスクごとに割り当てられるメモリの管理
ここから, 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
基本的な製作の流れを踏まえつつ, 各ファイルごとに説明を行っていきます.
ここには, OSの仕組みに関する情報が書かれます. OSは非常に多くのことが関わっているため以下のように分けていきます.
- メモリ管理
- タスク管理
- OSの設定
- Arduino標準機能との融合
ここでは, OSの設定方法について説明します.
設定ファイルは,ArduinOSConfig.h
です. このファイル内にOSの設定を書きます. また, 設定ではハードウェアの基本構成に加え, 各機能の有効化, システムフックを行うか, などといった設定を行えます.
それぞれのタスクにはそのタスクの状態というものがあります. 今回のOSでは, このタスクの状態を状態リストを用いて判別することにします. 以下から, タスク状態の種類, 状態リストの構造, リストを用いたタスク状態の切り替え方法を詳しく見ていきます.
電子回路において、必要な電源知識
Listが持つ関数は以下のとおりです.
List | コンストラクタ |
---|---|
Count | 要素数を取得 |
Capacity | 容量を取得 |
SetCapacity | 容量を設定 |
Array | 内部配列先頭アドレス取得 |
Add | List末尾に要素追加 |
Insert | 指定した位置に要素挿入 |
IndexOf | 指定されたオブジェクトの位置 |
LastIndexOf | 最後から検索して最初に見つかったオブジェクトの位置 |
CopyTo | 配列にコピー |
RemoveAt | 指定した位置を削除 |
Clear | 要素をゼロ |
Sort | 並び替え |
Trim | 容量を要素数に設定 |
CopyFrom | 指定されたListからコピー |
MoveFrom | 指定された配列そのものをListに差し替え |
筆者がこのListを作る際, C#のListリファレンス(accessed: 2.1.2017) を参考にしました. 関数名はほとんど同じにしています.
ここでは, Listの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- インクルード
ここでは, Listの基本的な使い方を説明します. 各説明項目は以下のとおりです.
- 使用例
- C#との相違点
- Sortについて
キャンバスは以下のページからダウンロードできます.
ここでは, Stringの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- インクルード
TerminalPro4開発セットをダウンロードすることができます. TerminalPro4用サンプルアプリケーション, TerminalPro用Bootプログラムなどが含まれます.
一部のサンプルプログラムは音楽ファイルを使用します. 音楽ファイルが存在しないときプログラムは正しく動作しません. ただ, 筆者は著作権の問題より音楽ファイルをアップロードすることができません. 各音楽ファイルを用意していただく必要があります.
ContentsViewerのダウンロードページです.
このシステムは, アップグレードされ, CollabCMS となりました. このシステムが持つモジュールは分離され, ContentsViewerはCollabCMSのモジュールの一部となりました.
OutlineTextのパーサ(Parser)について
ここでは, LanguagePackManagerの基本的な使い方を説明します. 説明項目は以下のとおりです.
- パラメータの説明
- 言語パックの作成
- 使用例
- 言語パックの読み込みについて
LanguagePackManagerの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- Unityにインポート
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
ここには, 数学に関することが書かれます.
ここには, TwitterBotに関することが書かれます.
筆者が現在作成中のTwitterボットは以下のリンクからBOTのたまり場
目的は以下のとおりです.
- 誰もが簡単にTwitterBOTを導入できるような枠組みを提案すること
- 自然な会話ができること
- 自動で学習すること
OSを作成するにあたって, まずこのOSの使い方を説明します. (まず, 使い方を説明することでOS完成のイメージをつかむことができます.)
ここでは, OSをArduinoIDE上で使用できるようにします.
するべきことは, コアフォルダの追加とボードの追加です.
RTOSは, 組み込み系のシステムで用いられることが多いです.
一般OSと同様にタスクの切り替えを行う点は同じですが, タスクの切り替え規則に特色があります[1]. タスクの実行可能状態になるまでの時間の最悪値が保証されるように作られています.
OSを作成するにあたっての準備を行います.
ここでは, 今回のOS製作で新しく作られるファイルの説明を行います.
Computer Graphics に関する知識
TerminalPro4用のアプリケーション例を挙げていきます.
- NON: 何もしないプログラム
- GLCDTest: GLCD動作確認プログラム(fps表示)
- CtrlTest: コントローラ動作確認プログラム
- SerialMonitor: シリアルモニター
- MediaPlyer: 音楽プレイヤー
- Bullet: シューティングゲーム(東方風)
- NadekoAdventure: 千石撫子(化物語)横スクロールゲーム
- Notes: 音ゲー
これらアプリケーションはダウンロードページ から取得したフォルダ内にある’Exapmle’フォルダに存在します.
Stringが持つ関数は以下のとおりです.
String | コンストラクタ |
---|---|
Length | 文字の長さ-バイト数- |
operator= | 代入演算子 |
operator[] | 添え字演算子 |
operator+ | 文字列結合 |
operator+= | 文字列結合 |
CopyFrom | 指定されたStringからコピー |
CharArray | String内部Char配列の先頭アドレス |
IndexOf | 指定した文字列の位置 |
Contains | 指定した文字列が含まれるか |
Equals | 指定した文字列と等しいか |
Insert | 文字列挿入 |
Replace | 文字列置き換え |
Split | 文字列分割 |
Substring | 部分文字列を取得 |
ToUpper | すべて大文字に -英語のみ対応- |
ToLower | すべて小文字に -英語のみ対応- |
Concat | 文字列結合 |
GetLine | ストリームから文字列取得 |
Copy | 文字列コピー |
筆者がこのStringを作る際, C#のStringリファレンス(accessed: 3.3.2017) を参考にしました. 関数名はほとんど一緒にしてあります.
ここでは, Stringの基本的な使い方を説明します. 各説明項目は以下のとおりです.
- 使用例
- Splitについて
- GetLineについて
Optibootに関して簡単に説明します. 説明項目は以下のとおりです.
- optibootとは
- optibootの起動方法
- optibootにコマンドを送る
- optibootにスケッチを送る
プログラミング言語C++
に関する知識
ここでは, MelodyPlayerの基本的な使い方を説明します. 説明項目は以下のとおりです.
- 再生
- メロディーの追加方法
Arduinoを用いた電子工作でよく使うものの一つにスイッチがあります. 一つか二つのスイッチを使うのなら問題はないのですが、大量のスイッチを用いた電子工作となるとスイッチ一つに一つのピンを消費するわけにはいかなくなります.
例えば、ちょっとしたゲーム機を作るとしましょう. 十字キー、ABボタンなどで少なくとも6つぐらいのスイッチが必要となります. またグラフィック液晶との接続に13ピンほど使います.ピンが足りません.一つのピンで複数のスイッチ入力を読み取る必要があります.
また別の問題として仮に上の問題を解決―例えば抵抗による分圧方法によって解決―したとしても同時入力ができない問題があります. ゲーム機を作るとしてボタンの同時入力ができないのはかなり大きな問題でしょう.
このページではこれらの問題を解決する一つの方法を説明します。
このページで紹介する方法で以下のことができます。
- 一ピンあたりボタン六個の入力が可能
- 同時入力も可能
このキャンバスの特徴は大きく分けて4つあります.
- 応用しやすい関数セット
- 白紙のキャンバスに文字、画像、直線などを描くような操作
- 高い移植性
- 高い描画効率
Arduinoにプログラムを書き込むにはパソコンが必要です. パソコンでプログラムを書きArduinoをパソコンに接続し、スケッチをマイコンボードに書き込みます. 別のプログラムを実行したいとき、またパソコンに接続してスケッチを書き込みます。これは大変労力かかると同時にパソコンなしではプログラムの変更は不可能です.
このページでは、それを解決する一つの方法を提案します。それは, Arduinoが別のArduinoへスケッチを書き込むということです. 詳しく言うと, スケッチをコンパイルした後に作成されるHexFileをSDカードに保存し, そのHexFileをある一つのArduinoが読み込み別のArduinoへスケッチを書き込むということです.
このページで紹介する方法で以下のことができます。
- ArduinoでArduinoにスケッチ書き込み
- 他機能の組み合わせで応用可能
"他機能の組み合わせで応用可能"の例ですが, ある端末を作ったとします。その端末にはグラフィック液晶ディスプレイ、コントローラーが付いています。使用者にグラフィック液晶でスケッチの選択をさせることで、一つの端末で複数のプログラムを実行することができます; パソコンでいちいちスケッチを書き込む必要はありません。
ただし、以下の環境が必要です。
スケッチを書き込まれるArduinoにはブートローダー"optiboot"がかきこまれていること
optibootがかきこまれているArduinoは"Arduino UNO"です。このサイトでもこれを使用しています。
スケッチを書き込むArduinoは16MHzで動作していること
optibootとの通信には115200bpsのシリアル通信が用いられています。8MHzなどの低周波数で動作するArduinoではこの通信がうまくいきません。
ここでは, Canvasの基本的な使い方を説明します. 説明内容は以下のとおりです.
- ファイルの配置
- キャンバスの開始
- 点を打つ
- 文字を書く
- 画像を描く
- 最後に
このページではArduinoをもちいた電子回路,プログラムなどに関する情報を扱います.
MelodyPlayerの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- ファイルの説明
- インクルード
- ピン接続
ここでは, OSの機能とArduino標準機能と融合していきます. 融合するものとしては, Arduino言語―setup(), loop()―, Arduino標準関数に影響するタイマー割り込み部分です.
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’のサイズ |
TerminalPro4の特徴としては以下があげられます.
- ゲーム機として成り立つ必要最低限の機能
- 迅速なアプリケーション切り替え
- 簡単なソフトウェア開発
ここでは, SketchWriterの基本的な使い方を説明します. 説明項目は以下のとおりです.
- SketchWriterのしくみ
- HexFileの入手
- スケッチの送信
ここでは, OSには必ずなくてはいけない機能の一つであるタスク管理について説明します.
タスク管理には非常に多くのことが関わっているため以下のように分けていきます.
- タスクコントロールブロック(TCB)
- メモリの構造
- 状態リスト
- コンテクスト
- システム割り込み
GLCDControllerの基本的な使い方を説明します. 説明項目は以下のとおりです.
- GLCDControllerのしくみ
- ピン設定とGLCDControllerの開始
- 文字の表示
- 画像の表示
ここでは, GLCDControllerの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- ファイルの説明
- インクルード
SketchWriterの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- ファイルの説明
- SDカード、操作したいArduinoと接続
- インクルード, SketchWriterを開始
ここでは, EventControllerの基本的な使い方を説明します. 説明項目は以下のとおりです.
- 用語
- EventClipとは
- 外部スクリプトによるParameter設定と取得
- 実際に使ってみる
- 応用例
EventControllerの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- Unityにインポート
CameraControllerの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- Unityにインポート
ResetTrigger | TriggerをResetします |
---|---|
GetBool | 指定したbool型Parameterの値を取得 |
GetInteger | 指定したint型Parameterの値を取得 |
GetFloat | 指定したfloat型Parameterの値を取得 |
SetTrigger | Triggerを引きます |
SetBool | 指定したbool型Parameterを設定 |
SetInteger | 指定したint型Parameterを設定 |
SetFloat | 指定したfloat型Parameterを設定 |
SetCamera | カメラのパラメータ設定 |
---|
ここでは, CameraControllerの基本的な使い方を説明します. 説明項目は以下のとおりです.
- パラメータの説明
- タイプの説明