目次

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の紹介 | Unity

Unityを用いてゲームを作りやすくするものの一つにComponentがあります.

このページではComponentを紹介していきます. ここで紹介するComponentはゲームを作るときに役に立つものです.

Assetの紹介 | Unity

筆者がこれまでに作成したアセットを紹介します.

各アセットの詳しい説明は, 別ページになります.

Unity | Welcome!

普段日常を過ごしてきて, ゲームを作ってみたいと思うことがあるでしょう. ただゲームの基礎を一から作ることはかなり労力がかかります. そこでゲームを動かす基本処理を持つゲームエンジンを用いると簡単にゲームを作ることができます.

このページではそのゲームエンジンのうちの一つであるUnityに関する情報を扱います.

WSL | Welcome!

このセクションでは, Windows Subsystem for Linux について書かれます.

サイズ固定のスタック | C++ライブラリ

サイズ固定のスタックを扱うライブラリを紹介します.

このStackは, 以下の特徴を持ちます.

  • std::stack が使用できない状況下でのスタックの使用
  • メモリを贅沢に使用しないサイズ固定スタック
  • 例外処理に対応していない環境下での使用
カメラ制御'CameraController'の紹介 | Componentの紹介

CameraControllerとはCameraを制御するものです。これは次のことができます。

  • 一人称,三人称カメラの切り替え
  • カメラ移動の線形補間,曲線補間
  • コライダーを自動で避けるAutoAvoidCollider機能
  • 任意の場所にカメラ位置を設定可能
  • 任意の方向にカメラを向けることが可能

上の機能が一つのカメラで実現できるためカメラ管理がしやすくなります。

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

WARNING

このページで書かれている書かれている内容が実際のスクリプトと異なる可能性があります.

このページの内容は2016年に執筆されています.

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

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

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

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

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

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

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

Controllerの関数一覧 | コントローラ読み取りライブラリ
Begin Controllerの開始
Stick スイッチ情報取得
Read スイッチ情報取得
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を改良、強化、何でもしてください(;´∀`)

イベント制御'EventController'の紹介 | Componentの紹介
EventControllerEditor画面
EventControllerEditor画面

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を改良、強化、何でもしてください(;´∀`)

WARNING

このページで書かれている書かれている内容が実際のスクリプトと異なる可能性があります.

このページの内容は2016年に執筆されています.

言語パック管理'LanguagePackManager'の紹介 | Componentの紹介

LanguagePackManagerとは言語パックを管理するものです. もちろんですがUnity上で動作します.
これを使うと以下のことができます.

  • 言語パックの管理
  • 各シーンでのアンロードとロード

言語パックといいながらファイル形式はテキスト形式です. 言語関係の編集が簡単になります.
また言語パックを各シーンでアンロードされるのでロードした言語パックが残り続けることがありません. これはすなわち使っていないメモリを開放します.

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

WARNING

このページで書かれている書かれている内容が実際のスクリプトと異なる可能性があります.

このページの内容は2016年に執筆されています.

C++ライブラリ | 各種ライブラリ

このページは筆者が作成したC++のライブラリが公開されます.

Controllerの導入方法 | コントローラ読み取りライブラリ

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

  • ダウンロード
  • ファイルの説明
  • インクルード
  • コントローラの使用開始
Controllerの使い方 | コントローラ読み取りライブラリ

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

  • ボタン数,ピン設定
  • ボタン番号設定
  • スイッチ情報の読み込み
コントローラ読み取りライブラリ | コントローラー

Controllerとは、このページで紹介したコントローラーを制御するものです。このヘッダファイルにある関数でコントローラーからのスイッチ情報を読み取りどのボタンが押されているかを判断します。Controllerができることは次の通りです。

  • ボタンが押されている間もそのボタン入力を検出すること(トリガー形式)ができます
  • ボタンが一回押されてそのあとも押されているときはそのボタン入力を検出しないこと(非トリガー形式)ができます
  • インスタンス生成でコントローラーを簡単に追加できます
  • ボタンの同時入力に対応しています

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

各種ライブラリ | Welcome!

このページでは, 筆者が作成したライブラリが置かれます.

C++でC#のようなListを使いたい | C++ライブラリ

C#からC++に入った人もいるでしょう. その時C#で大変よく使っていたListが恋しい場合があります. C++を書きつつC#を感じたい時があります.

上の問題を解決する方法でここで紹介するListがあります. このListで用意されている関数名はほぼC#と一致します. C#でのListは要素数が容量を上回ったとき自動でメモリが再確保されますが, ここで紹介するListもそのように動作します. アルゴリズムも同じです(はずです).

C#で非常に便利だったSort関数も用意されています. もちろんですが, 処理が一番早いとされているクイックソートアルゴリズム(O(n*log(n)))を使用しています.

Listを強化, 改良何でもしてください. ( `ー´)ノ

CAUTION

C#のListを使ったことがない方は, これをお勧めすることはできません. これと同様かそれ以上の機能を持つC++のvectorをお使いください. C++ですでに用意されています.

CollabCMS | Welcome!
CollabCMS
CollabCMS

CollabCMSは,コンテンツを中心に置き,コンテンツに対して様々なアプローチをとることができる ウェブコンテンツ管理システム(CMS: ContentsManagementSystem)です.

多くのCMS(フラットファイル型,データベース型にかかわらず)は,システムを通してコンテンツファイルを編集することを前提にしています.CMS上でコンテンツ編集中に,生のファイルを編集することは多くの場合想定されていません.

CollabCMSは,コンテンツファイルとそのファイル構造をデータベースの基本とします.システムを通さずにコンテンツを変更,移動,削除しても正しく動作します.ある人が,CMS上でコンテンツを編集中に,ほかの人が生のファイルを編集できます.

コンテンツの編集で,多くのCMSは編集画面上にいろいろなツールを用意して,文章作成の補助をしています.ですが,その機能は編集画面を開いているときのみ有効であり,ファイルそのものを編集している際にはまったく意味を成しません.

CollabCMSでは,コンテンツファイルに可読性,可視性の高い記法を採用し,コンテンツファイルそのものが,文章作成の手助けをしてくれます.よく使われる記法(Markdownなど)は,セクションレベルにかかわらず,すべて左寄せで書かれますが,採用した記法は,インデントが挟まれます.これにより,文章の階層構造(アウトライン)が見やすくなり,書きやすくなります.

CollabCMSは,基本的なコンテンツ管理機能を持ちます.例えば,コンテンツの追加,編集,移動,削除のほかに,画像などのファイルをサーバーにあげることなどが可能です.ユーザごとのコンテンツ管理や非公開設定が標準で行えます.

標準で足りない機能は別のアプリケーションに任せてしまうことが可能です.例えば,バージョン管理をGitを用いて行うことができます.さらに,コンテンツフォルダをクラウドストレージ(Google Drive,OneDriveなど)と同期させ,クラウドを通してコンテンツを編集することができます(その場合,パソコンで好きなエディタで編集できるでしょう).

このように,CollabCMSは,システムでありつつもコンテンツファイルをベースにするため,コンテンツをファイルとしてみることができ,コンテンツへ対して様々なアプローチをとることができます.

一般的なCMS
一般的なCMS
CollabCMS
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)]を参照してください.

ContentsViewer | Welcome!
ContentsViewer
ContentsViewer

自身が作成したもの, 見つけたものを公開する方法の一つに, インターネットを利用したWebPageの公開があります. この方法は他の方法(本の出版など)と比べ低コストで行うことが可能です. これは, 無料のレンタルサーバ, ページ編集ソフトなどのおかげです.

ContentsViewerはページ編集ソフトの一種です. 詳しく言うと, WebPageに関する機能を持つモジュールの集合です. ソフトの作りを簡単にして, カスタマイズ-デザイン, コンテンツ管理法, コンテンツ記法など- を簡単にできるようにという目的で開発しました.

ContentsViewerがどのようなものであるか知りたい方はこのWebPageを参考にしてください. このウェブページはすべてContentsViewerによって表示されています.

このシステムは古いです!

このシステムは, アップグレードされ, CollabCMS となりました. このシステムが持つモジュールは分離され, ContentsViewerはCollabCMSのモジュールの一部となりました.

コンポーネント | 仕組み

本CMSは, ルート部, フロントエンド部, モジュール部, サービス部, クライアント部に分かれます.

各部の詳細を説明します.

セキュリティ | Web

インターネットでのセキュリティ技術について

コンポーネント | 仕組み

CollabCMSは, ルート部, フロントエンド部, モジュール部, サービス部, クライアント部に分かれます.

各部の詳細を説明します.

導入方法 | ContentsPlanet (CMS)

ここでは, 本CMSの導入方法を説明します.

すぐに使用したい方は, 項目のはじめるをご覧ください.

導入方法 | CollabCMS

ここでは, CollabCMSの導入方法を説明します.

すぐに使用したい方は, 項目のはじめるをご覧ください.

ContentsPlanet (CMS) | Welcome!
ContentsPlanet
ContentsPlanet

ContentsPlanet は, 次の三つの特徴を持つWebコンテンツ管理システム(CMS)です.

  • OS標準のファイルシステムを介した他システム(Git, FTP, GitHub, GitLab, OneDrive, Google Drive, …) との連携
  • アウトラインの視認性と可読性を考慮したエディタに依存しないコンテンツ記述軽量マークアップ言語
  • ディレクトリを超えたコンテンツの検索性とトピックモデルに基づいたコンテンツ管理(自動タグ付け, 自動カテゴライズ, 関連提示)
TranslatePreprocessor: 段落を保持するグーグル翻訳ペースト前処理機 | Webツール

英語論文PDF内の英文をグーグル翻訳にペーストする際, 同じ段落にもかかわらず改行が含まれており, 正しく翻訳できません.

これまで多くの方法が提案されています[1][2][3]が, 基本的に改行を削除しているだけで, 複数の段落が一つの段落になる問題があります.

そこで, 段落を保持したまま改行を取り除く前処理機を紹介します. 入力した文章を行ごとに処理し, 行文字が他と比べて少ない場合は, 改行をそのままにします.

英語PDFからの文字列を対象としていますが, 処理としては, 文字数と改行コードを見ているだけなので, 日本語などほかの言語にも対応しています.

Webツール | Welcome!

Web(ブラウザ)上で動く各種ツール

仕組み | ContentsPlanet (CMS)

本CMSの仕組みについて

仕組み | CollabCMS

CollabCMSの仕組みについて

ダウンロード | ContentsPlanet (CMS)

本CMSは以下のサイトからダウンロードできます.

ダウンロード | CollabCMS

CollabCMSは以下のサイトからダウンロードできます.

article

Summary

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

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

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

各タスクごとに割り当てられるメモリの管理

スクリプティング | 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の設定 | 仕組み

ここでは, OSの設定方法について説明します.

設定ファイルは,ArduinOSConfig.hです. このファイル内にOSの設定を書きます. また, 設定ではハードウェアの基本構成に加え, 各機能の有効化, システムフックを行うか, などといった設定を行えます.

状態リスト | タスク管理

それぞれのタスクにはそのタスクの状態というものがあります. 今回のOSでは, このタスクの状態を状態リストを用いて判別することにします. 以下から, タスク状態の種類, 状態リストの構造, リストを用いたタスク状態の切り替え方法を詳しく見ていきます.

電源 | 電子回路

電子回路において、必要な電源知識

Listの関数一覧 | C++でC#のようなListを使いたい

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の導入方法 | C++でC#のようなListを使いたい

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

  • ダウンロード
  • インクルード
Listの使い方 | C++でC#のようなListを使いたい

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

  • 使用例
  • C#との相違点
  • Sortについて
ダウンロードページ | Arduinoで2Dグラフィックを扱う

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

Stringの導入方法 | C++でC#のようなStringを使いたい

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

  • ダウンロード
  • インクルード
ダウンロードページ | 端末第四世代(TerminalPro4)

TerminalPro4開発セットをダウンロードすることができます. TerminalPro4用サンプルアプリケーション, TerminalPro用Bootプログラムなどが含まれます.

WARNING

一部のサンプルプログラムは音楽ファイルを使用します. 音楽ファイルが存在しないときプログラムは正しく動作しません. ただ, 筆者は著作権の問題より音楽ファイルをアップロードすることができません. 各音楽ファイルを用意していただく必要があります.

ダウンロードページ | ContentsViewer

ContentsViewerのダウンロードページです.

このシステムは古いです!

このシステムは, アップグレードされ, CollabCMS となりました. このシステムが持つモジュールは分離され, ContentsViewerはCollabCMSのモジュールの一部となりました.

パーサー | 仕組み

OutlineTextのパーサ(Parser)について

LanguagePackManagerの使い方 | 言語パック管理'LanguagePackManager'の紹介

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

  • パラメータの説明
  • 言語パックの作成
  • 使用例
  • 言語パックの読み込みについて
LanguagePackManager関数一覧 | 言語パック管理'LanguagePackManager'の紹介
関数
LoadFile パックファイルをロード
GetString 指定したラベルに関連付けられた文字列を返します
LanguagePackManagerの導入方法 | 言語パック管理'LanguagePackManager'の紹介

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

  • ダウンロード
  • Unityにインポート
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
数学 | Welcome!

ここには, 数学に関することが書かれます.

TwitterBot | アプリケーション一覧

ここには, TwitterBotに関することが書かれます.

筆者が現在作成中のTwitterボットは以下のリンクからBOTのたまり場

目的は以下のとおりです.

  • 誰もが簡単にTwitterBOTを導入できるような枠組みを提案すること
  • 自然な会話ができること
  • 自動で学習すること

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

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

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

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

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

ROS2 | Welcome!

ここには,ROS2に関する情報が書かれます.

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

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

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

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

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

ファイル構成 | Arduino上で走るOSの作り方

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

コンピュータグラフィクス | Welcome!

Computer Graphics に関する知識

TerminalPro4アプリケーション例 | 端末第四世代(TerminalPro4)

TerminalPro4用のアプリケーション例を挙げていきます.

  • NON: 何もしないプログラム
  • GLCDTest: GLCD動作確認プログラム(fps表示)
  • CtrlTest: コントローラ動作確認プログラム
  • SerialMonitor: シリアルモニター
  • MediaPlyer: 音楽プレイヤー
  • Bullet: シューティングゲーム(東方風)
  • NadekoAdventure: 千石撫子(化物語)横スクロールゲーム
  • Notes: 音ゲー

これらアプリケーションはダウンロードページ から取得したフォルダ内にある’Exapmle’フォルダに存在します.

Stringの関数一覧 | C++でC#のようなStringを使いたい

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の使い方 | C++でC#のようなStringを使いたい

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

  • 使用例
  • Splitについて
  • GetLineについて
Optibootについて | ArduinoでArduinoにスケッチ書き込み

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

  • optibootとは
  • optibootの起動方法
  • optibootにコマンドを送る
  • optibootにスケッチを送る
C++ | ソフトウェア開発

プログラミング言語C++に関する知識

MelodyPlayerの使い方 | Arduinoでメロディーを鳴らす

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

  • 再生
  • メロディーの追加方法
コントローラー | Arduino

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

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

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

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

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

  • 一ピンあたりボタン六個の入力が可能
  • 同時入力も可能
キャンバスの特徴 | Arduinoで2Dグラフィックを扱う

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

  • 応用しやすい関数セット
  • 白紙のキャンバスに文字、画像、直線などを描くような操作
  • 高い移植性
  • 高い描画効率
キャンバスの関数, 変数一覧 | Arduinoで2Dグラフィックを扱う

関数

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

変数

color 色情報
posX 描画位置x座標
posY 描画位置y座標
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ではこの通信がうまくいきません。

MelodyPlayerの関数一覧 | Arduinoでメロディーを鳴らす
関数
Begin MelodyPlayerの開始
End MelodyPlayerの終了
Play メロディー再生
Stop メロディー停止
IsPlaying 再生中かどうか
Enum
PLAY_MODE プレイモード
キャンバスの使い方 | Arduinoで2Dグラフィックを扱う

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

  • ファイルの配置
  • キャンバスの開始
  • 点を打つ
  • 文字を書く
  • 画像を描く
  • 最後に
Arduino | Welcome!

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

MelodyPlayerの導入方法 | Arduinoでメロディーを鳴らす

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

  • ダウンロード
  • ファイルの説明
  • インクルード
  • ピン接続
Arduino標準機能との融合 | 仕組み

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

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’のサイズ
TerminalPro4の特徴 | 端末第四世代(TerminalPro4)

TerminalPro4の特徴としては以下があげられます.

  • ゲーム機として成り立つ必要最低限の機能
  • 迅速なアプリケーション切り替え
  • 簡単なソフトウェア開発
SketchWriterの使い方 | SketchWriter

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

  • SketchWriterのしくみ
  • HexFileの入手
  • スケッチの送信
タスク管理 | 仕組み

ここでは, OSには必ずなくてはいけない機能の一つであるタスク管理について説明します.

タスク管理には非常に多くのことが関わっているため以下のように分けていきます.

  • タスクコントロールブロック(TCB)
  • メモリの構造
  • 状態リスト
  • コンテクスト
  • システム割り込み
GLCDControllerの使い方 | GLCDControllerの紹介

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

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

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

  • ダウンロード
  • ファイルの説明
  • インクルード
SketchWriterの導入方法 | SketchWriter

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

  • ダウンロード
  • ファイルの説明
  • SDカード、操作したいArduinoと接続
  • インクルード, SketchWriterを開始
EventControllerの使い方 | イベント制御'EventController'の紹介

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

  • 用語
  • EventClipとは
  • 外部スクリプトによるParameter設定と取得
  • 実際に使ってみる
  • 応用例
EventControllerの導入方法 | イベント制御'EventController'の紹介

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

  • ダウンロード
  • Unityにインポート
CameraControllerの導入方法 | カメラ制御'CameraController'の紹介

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

  • ダウンロード
  • Unityにインポート
EventControllerの関数, 変数一覧 | イベント制御'EventController'の紹介
関数
ResetTrigger TriggerをResetします
GetBool 指定したbool型Parameterの値を取得
GetInteger 指定したint型Parameterの値を取得
GetFloat 指定したfloat型Parameterの値を取得
SetTrigger Triggerを引きます
SetBool 指定したbool型Parameterを設定
SetInteger 指定したint型Parameterを設定
SetFloat 指定したfloat型Parameterを設定
CameraControllerの使い方 | カメラ制御'CameraController'の紹介

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

  • パラメータの説明
  • タイプの説明
「https://www.contentsviewer.work/Master/:tagmap/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?layer=ja」から取得