LearningHorse

TK74 機械学習の勉強をしていて、脳科学に基づいたAGIの開発に興味があります。プログラミングはRustとかJuliaを使っていて、OS開発の記事も書きます。

LearningHorse

TK74 機械学習の勉強をしていて、脳科学に基づいたAGIの開発に興味があります。プログラミングはRustとかJuliaを使っていて、OS開発の記事も書きます。

最近の記事

ESP32で自作マウス〜その6〜

前回のあらすじ前回はESP-IDFに移行して、マルチペアリングの実装を行いました。 ただ、ホワイトリストなどの実装に問題があったので、今回はそれを直しつつ、操作性の改善とバッテリー駆動の実装をやっていこうと思います。 今回のコミットはこれです。 マルチペアリングの修正ホワイトリストについていろんなサイトを調べても、正直何が正解か分かりませんし、今実装して完成としているコードも本当にうまく行っているのか、逆になんで他のコードがうまくいかないのかも不明なんですが、とりあえずう

    • ESP32で自作マウス〜その5〜

      前回のあらすじ前回はESP-IDFを導入して、電源管理などができるようにしました。 今回はGihubのレポジトリごとESP-IDFのプロジェクトに移行しつつ、機能の改善をしていこうと思います。Githubのコミットはこれです。 レポジトリの移行前回の記事を書いた時点では、「フォルダの.gitさえ移動すれば良いんじゃないか?」とか軽く考えてたんですが、結構苦労しました。 何が大変かと言うと、BLEのライブラリを使うのにArduinoのライブラリがあるとかなり実装が楽なんです

      • ESP32で自作マウス〜その4〜

        前回のあらすじ前回は躯体を作ったり、ホイールの実装をして、だいぶ形になってきました。 今回はマルチペアリングや省電力化を実現するために、ESP-IDFの導入に挑戦します。 ESP-IDF導入の動機そもそも、なぜ今までArduino IDEで開発してきたのに、ESP-IDFに変更する必要があるのか?そして変更すべきなのか?というのは当然の疑問としてあると思います。 まず第一に、前述したように「マルチペアリングと省電力化の実現のため」です。少電力を実現するには、動作していない

        • ESP32で自作マウス〜その3〜

          前回のあらすじ前回は3次元マウスの実装までやって、コアとなる機能が揃ってきました。 今回は3Dモデルを作って実際にマウスの形にしてから、スイッチなんかを配線して動くようにするまでをやろうと思います。 3Dモデル作成本題の前に、前回のESP32の記事を書いてからかなり時間が空いているわけですが、なぜかと言うと夏休み中に3Dモデルをさくっと作れると思っていたのが、トラブルがあって時間がかかった(のと単純に時間なかった)からなんです。 じゃあ実際どんなトラブルがあったかを見てい

          ESP32で自作マウス~その2~

          前回のあらすじ前回はESP32でMPU60506軸センサーを使ってカーソルを動かしてみました。 今回は秋月電子で買ってきた新しい部品を使いつつ、続きをやっていこうと思います。 秋月で何を買ってきたのかメインのものを挙げると、 BMX0559軸センサー ロータリーエンコーダー マイクロスイッチ×2 ADコンバーター 昇圧型DCDCコンバーター ってとこです。この他にもいくつかセンサー等買ったんですが、試した(冷静に性能を比較した)結果BMX055でええやんという

          ESP32で自作マウス~その2~

          ESP32で自作マウス〜その1〜

          はじめに普段からOS自作とか低レイヤーなことはしていますが、今回は自分でやろうと思ったわけではなく、学校でESP32(一応他のマシンでも可)を使って開発することがあったのがきっかけです。 何を作ろうか色々考えたんですが、あんまり高度なことをやらせようとするとスマホっぽくて、いい感じにセンサー類を活かしつつ小型・少電力で有ることを活かすなら周辺機器かなと思いマウスを自作することにしました。 どんなマウスを作るのかマウスを作ろうと決めたらどんな機能を実装するか考えなきゃいけませ

          ESP32で自作マウス〜その1〜

          ArchLinuxのインストール

          この記事について自分の使うPCをすべてLinuxにしている僕ですが、ArchLinuxはローリングリリースであることや、巷で上級者向けと言われていることから手が出せずにいました。しかし経験値も溜まってきた今なら使えるんじゃないかということで、この記事ではArchLinuxをVirtualBoxにインストールして、環境を整える手順をまとめます。 インストール手順まずisoファイルをこっから持ってきます。僕の記憶が正しければArchLInuxのインストールイメージは1ヶ月に一度

          ArchLinuxのインストール

          Linuxのスケジューラを理解する(for 自作OS)

          この記事の概要今回は、自作OSでLinuxのスケジューラをベースとした実用的なタスクスケジューラを実装するため、Linuxのタスクスケジューラについて調べていこうと思います。 いつもならコーディングと同時並行するところですが、あまりにもスケジューラは複雑なので、あくまでこれ単体の記事にすることにしました。それでは、スケジューラの全体像から調べて行きます。 (一応自作OSの前回の記事のリンクを貼っておきます) スケジューラの概要まず、スケジューラが何をしているのかというと、ス

          Linuxのスケジューラを理解する(for 自作OS)

          OS自作~バグ修正その他~

          前回のあらすじ前回はFATを実装して、ファイルシステムが使えるようになりました。 ただ、前回の記事の内容を実装をしている時、僕がアホな間違いをしたせいでデバッグに時間を浪費したので、今回はバグ修正のやり方等少し開発そのものについて書こうと思います。 ファイルシステムのバグ修正OSのデバッグの難しさ 最初に結論を言っておくと、ファイルシステムではなく、前前回に実装したIDE Controllerがぶっ壊れてました。しかもたちが悪いことにコードを追っているだけでは何も問題な

          OS自作~バグ修正その他~

          OS自作 ~ファイルシステム~

          前回のあらすじ前回はStorageトレイトではハードディスクにアクセスできるようになりました。 今回はいよいよFATのファイルシステムを実装して、ファイルを扱えるようにしていきます。コミットはこれ(本来はこれ実装した直後はバグだらけですが、これはバグフ修正後のコミット): パーティションなどについてハーディスクを認識した後にOSがすべきことは、パーティションとそのファイルシステムを認識することです。ちょっとこれがまた混乱しやすいので簡単に説明します。ちなみにこういうの調べ

          OS自作 ~ファイルシステム~

          OS自作~IDE Controllerと仮想ディスクの実装~

          前回のあらすじ前回はタイマーを実装しました。 今回はこのタイマーを使ってIDE Controller(PATA Driver)と、Live Mode用の仮想ディスクを実装しようと思います。 今回のコミットはこれ(この記事の内容の他にファイルの整理とかACPIのバグ修正とか入ってる): ハードディスクのあれこれまず、ハードディスクのドライバを書く前に、ハードディスク周りの規格について整理します。まず、ハードディスクの接続方式ですが、僕が認識している中では主に以下の3つです:

          OS自作~IDE Controllerと仮想ディスクの実装~

          OS自作〜タイマー実装〜

          前回のあらすじ前回はQEMU用のビデオドライバの基礎を作りました。 そして、今回はビデオドライバの続き…のつもりだったのですが、ちょっと記事お順番を変えます。まずは順番を変えた理由から説明しようと思います。 今回分のコミットはこれ。 なぜ急にタイマー?最初に言っておくと、実はすでに解像度の変更には成功しています。しかし」、ビデオドライバの仕事は解像度の変更するだけでなく、フレームバッファーをスペシャルファイルとして提供する必要があります。しかし、現状ファイルシステムがない

          OS自作〜タイマー実装〜

          サンフランシスコ留学20日目・総括

          この記事の概要この記事は僕のサンフランシスコ留学について書いているものです。詳細は前回の記事を参照してください。 そして、今日でトビタテ上は留学期間が終了し、後は観光するだけなので、ここで全体を通しての感想など総括を書こうと思います。 Day20プロジェクトの発表 本日はついにプロジェクトをGoogleXの方や保護者の方々の前で発表します!ちなみに午前中は暇だったのでトルネードの予測モデル作ってみたりOS開発したりしてましたが、本筋ではないので割愛。 以前にも書いたとおり

          サンフランシスコ留学20日目・総括

          サンフランシスコ留学18・19日目

          この記事の概要この記事は僕のサンフランシスコ留学について書いているものです。詳細は前回の記事を参照してください。 サマーキャンプも残すところ3日となりました! Day18リスク計算の実装 前回の記事では分類問題に変換する的なことを書きましたが、結局やめました。その代わりに、震央と現在地の距離とマグニチュードをもとに地震のリスクを計算することにしました。簡単に言えば、マグニチュードの指数を戻したものを、距離の3乗で割って平均したものをリスクとしていて、地震のエネルギーを距離

          サンフランシスコ留学18・19日目

          サンフランシスコ留学16・17日目

          この記事の概要この記事は僕のサンフランシスコ留学について書いているものです。詳細は前回の記事を参照してください。 今回の記事では一気にプロジェクトを進めていきます! Day16モデルの改善 本日は土日に考えてたモデルを実際に実装していきました。調べていて、(これも割と知られている気がするけど)地震予測には、短い周期で小さな地震を予測するか、長い周期で大きな地震を予測するかのいずれかしかできません。ここで、メンバーに聞いたところ、今までどおり小さな地震でもいいから、短い周期

          サンフランシスコ留学16・17日目

          サンフランシスコ留学13・14・15日目

          この記事の概要この記事は僕のサンフランシスコ留学について書いているものです。詳細は前回の記事を参照してください。 あと14日と15日が土日でプロジェクトについてはモデルについて再考していただけなので、アクティビティをまとめて書いちゃいます。 Day13JavascriptとPythonの接続 さて、本日は前から調べていたGithubActions(つまりPython)とJavascriptの接続部分から作り始めました。簡単に説明すると、Javascriptから特定のURL

          サンフランシスコ留学13・14・15日目