製作, CUDA, オセロ, 自作, 画面分割, リアルタイムOS, OpenVPN
その他
TerminalPro4用のソフトウェアの作り方を説明します.
- ソフト作製の流れ
- TerminalPro4での制御流れ
- ソフトの作り方
TerminalPro4のハードウェアを作っていきます. 次のことを説明していきます.
- 各モジュールの用意
- モジュール間の接続
私が製作に携わったゲームを紹介します.
私が製作に携わったゲームを紹介します.
オセロです. 遊びで作ったものなので, きれいにできている自信はありません.
より多くの石をひっくり返した方が勝利です.
遊ぶには, pythonの環境が必要です.
AI搭載で一人でも遊べます. (貧弱なAIですので改良しちゃってください.)
コントローラ製作に関することについて説明します. 説明の項目は以下のとおりです.
- 部品入手
- 製作
- 説明
- 参考文献
公式リファレンスを参考しつつ, Ubuntu 上にNVIDIA GPU ドライバ, CUDA, cuDNNを入れて, tensorflow をGPUで動かす方法を, フローチャートで進めます.
オセロです. 遊びで作ったものなので, きれいにできている自信はありません.
より多くの石をひっくり返した方が勝利です.
遊ぶには, pythonの環境が必要です.
AI搭載で一人でも遊べます. (貧弱なAIですので改良しちゃってください.)
TerminalPro4とはSDカードに保存されている任意のプログラムを選択, 実行することができるものです. また外部のマイコン(optibootのみ対応)に対してプログラムを書き込むことも可能です. プログラマはTerminalPro4が備えている液晶, 音楽再生機, ボタンを自由に使用することができます. TerminalPro4が音楽プレイヤーからゲーム機まで様々なものになるのは, プログラマ次第です.
このページでは, TerminalPro4のハードウェア製作方法, TerminalPro4用のソフトウェア(アプリケーション)作製方法を説明していきます.
大まかな仕様は次のようになっています.
- マイコン数: 3(ArduinoUno)
- 入出力デバイス: 白黒ディスプレイ, スイッチ, 音声, SD
- 音声出力法: PWM方式
TerminalPro4は次のライブラリを使用します.
よりモダンで, 完全に要素ベースの[JavaScript/画面分割ライブラリ SplitView]をご使用ください.
多くの編集ソフトには, 一つの画面を分割する機能があります. 一つの画面を分割することで, 同じ画面で複数の作業を行うことができます.
Splitterは, ウェブブラウザ上で動作する画面分割ライブラリです. 分割境界にあるスライドバーを動かすことで領域のサイズを調節できます.
ウェブブラウザ上で動作する, 画面分割ライブラリ.
スクリプト内に一切の状態を持たず, 完全に要素のデータ (例えば, 属性やスタイル) と要素の構造をベースに動作します. このことで, 次の三つの特徴が得られます.
- ページロード時のレイアウト変化なし
- 他スクリプトによるビューへの自由な変更
- カスタム可能
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