組込み設計・制御開発
アセンブリ言語によるMPU・SoCの設計・解析から、マイコン制御のボード開発まで。
組込み・制御の開発から、業務を支えるソフトウェアまで。手を動かしながら、「あったらいいな」を形にしています。
BUSINESS
私たちの仕事は、大きく2つです。「つくる」と「つくり方を良くする」の両方をお手伝いします。
アセンブリ言語によるMPU・SoCの組み込み設計・解析から、マイコン制御やロボット制御を含むボード開発まで一貫して対応します。
ハードウェアの仕様や挙動を読み解きながら、実機で動くところまで丁寧に形にします。既存コードの解析や、仕様が固まりきっていない段階のご相談も歓迎です。
アプリをつくるだけでなく、「開発のやり方」そのものを良くするのが得意です。
静的解析やレビュー改善、テスト自動化など、自社の現場で形にして効果を確かめた、実績ある仕組みをもとにご提供できます。
WORKS
これまでに手がけたものの、ほんの一部です。
アセンブリ言語によるMPU・SoCの設計・解析から、マイコン制御のボード開発まで。
半導体製造装置の動作ログを解析し、トラブルシューティングを支えるアプリケーション。
実務の困りごとから生まれた「CSharp_IngeniousAnalyzer」。NuGetで公開しています。
食品製造業向けの、在庫・工程・売上をまとめて見られる管理システム。担当者頼みの属人化を抑えます。担当者がいなくても、従業員みんなが状況を把握できます。
xUnitで単体・機能テストを整え、システムテストは専用のオーケストレーターアプリで自動化しています。
「つくるって楽しい」を、現役のエンジニアが伝える教室。未来の日本を支える子どもたちの、最初の一歩を応援します。
KNOWLEDGE
技術の話は、Qiitaで公開しています。気になるものがあれば、のぞいてみてください。
Windows の開発ツール(Quartus)を使わず、Mac だけでボードの LED を点けた記録です。LED を動かすレジスタの調べ方から、クロスビルド、ボードでの実行まで一周しています。ARCH の付け忘れなど、つまずいたところも正直に書きました。C# 屋の目線で、カーネルモジュールをC# のイベント登録にたとえた話もあります。
記事を読む1人1台のPCがなかった時代、バグを直したくても、コンパイラを使えない状況がありました。そんなとき、機械語を直接書き換えて乗り切った、という社内の資料から学びました。HelloWorld が CPU にどう見えるのか、HelloKitty への書き換え、ループ回数の変更、そして、隙間のないところへ処理を割り込ませる方法まで。実際の機械語を並べて、小さなサンプルで再現しています。
記事を読む業務で気づいた「危ない書き方」を、静的解析ツールにしました。その全11ルールの解説です。各ルールを、なぜ必要なのか、どんなコードが検知されるのか、どう直るのかの順に、ひとつずつ解説しています。警告レベルを、プロジェクトに合わせて変える方法も紹介しています。
記事を読むC#の静的解析アナライザーです。追加するだけで、編集中にリアルタイムで警告が表示されます。NULL チェックの書き方、非効率な LINQ、マジックナンバーなど、「危ない書き方」を見つけます。ルールの警告レベルは、.editorconfig で変更できます。
パッケージを見るCOMPANY
電子立国、ふたたび。
「電子立国」と呼ばれ、世界の技術産業をリードしてきた日本。もう一度、世界に誇れる「電子立国 日本」を取り戻したい。その想いから、私たちは会社を設立しました。
日本を背負う技術者を育て、夢のあるオモシロい社会を、独創的な技術で実現したい。
それが、インジニアスデザインの想いです。
CONTACT
「こんなことできる?」
「どうやってるの?」
「ちょっと話を聞いてみたい」
ハードウェアの仕様を読み解いて、実機で動かすところまで手が回らない。
ハードウェアの仕様(ブロック図・タイミングチャート)を読み解き、実機で動くところまで形にしました。メモリコントローラの読み出しを、割り込み(IRQ)で動く処理として、C言語で実装しました。レジスタを直接操作する低レベルの処理は、ARMアセンブリでも書きました。仕様や既存コードの解析結果は、基板図やブロック図などの設計資料としてまとめました。
仕様の読み解きから、実機での動作確認まで、ひとつながりで対応します。
半導体製造装置の異常に気づくのが遅れ、ダウンタイムで稼働ロスが出てしまう。
装置の動作ログを自動で取り込み、ラインごとの状態を一画面で見られる監視ダッシュボードを作りました。ログの傾向から異常の予兆を抽出し、警告として知らせるようにしました。異常が起きたときは、イベントの推移・推定原因・推奨対応・類似事例をまとめた診断レポートを自動で作りました。対応後は、停止時間や対応内容を記録した完了レポートまで、ひとつの流れで残しました。
現場のトラブル対応を支えるツールです。
若手の自己レビューだけでは、品質を保ちきれない。ミスがレビューまで残り、レビューする側の負担が大きくなる。
業務で気づいた「危ない書き方」を、C#の静的解析ツール「CSharp_IngeniousAnalyzer」にしました。NULL安全性、LINQの性能、メソッドの複雑度などのルールを用意し、編集中にリアルタイムで警告が出ます。各ルールの考え方や直し方は、Qiitaの記事で解説しました。自社で使うだけでなく、NuGetでOSSとして公開しました。
自社の現場で使い続けながら、ルールを育てています。
在庫・工程・売上の管理が、担当者ごとのやり方に頼りがちになっている。その人がいないと状況が分からず、引き継ぎにも時間がかかる。
在庫・工程・売上を、ひとつのダッシュボードにまとめて見られるシステムを作りました。商品ごとにロット番号・賞味期限・保管場所を管理し、入出庫の履歴も残しました。賞味期限が近いものはアラートで知らせ、ロスの削減にも対応しました。在庫が減った商品は、画面から追加発注できるようにしました。
担当者がいなくても、従業員みんなが状況を把握できます。属人化を抑える仕組みです。
テストを手作業で回すと、時間がかかってしまう。しかも担当者の技術力で結果に揺れが出て、品質の判断がばらつく。
xUnitで単体・機能テストを整えました。システムテストは、オーケストレーターアプリで自動化しました。正常・異常・しきい値の観点を押さえ、カバレッジも考慮しました。夜間に自動で実行し、失敗の詳細は、実行結果レポートで確認できるようにしました。
人の技術力による揺れを吸収し、誰が実行しても同じテスト結果になるのが強みです。
プログラミングに興味はあっても、どこで始めればいいか分からない。
現役のエンジニアが、子どもたちにプログラミングを教える教室を開きました。ブロックを組み合わせて動かす形から始められるようにしました。動かして確かめながら、自分の作品をつくる流れを大切にしました。「つくるって楽しい」を、いちばん大切にしました。
未来の日本を支える子どもたちの、最初の一歩を応援します。