タグ

組み込みと開発に関するvccのブックマーク (38)

  • Electronで組み込み端末向けアプリケーションを開発し3年間運用してみて

    組み込み端末のアプリケーションに Electron を採用し開発・運用を行っています。 継続的な機能追加やトラブルサポートを行いながら 3 年が経過したので、Electron を採用した経緯や結果を経験を交えながら共有したいと思います。 組み込み案件自体が初めてでしたのでその話も入っています。 約 700 台ほど導入されており、なかなか大きな案件での採用と思いますので参考になれば幸いです。 ※Electron の基的な説明は割愛します。 システムについて 一般的に「受付精算機」などと呼ばれ、店頭に何台か並べて設置して自動で受付・精算を行うシステムです。 ホテルの受付端末のイメージです。ハード的にはセルフレジにも近いです。 筐体自体は他社が用意し、弊社はその上に載せる GUI アプリケーションのみを担当しました。 機能 主な機能として 来店受付・整理券発行 予約チェックイン チェックアウト

    Electronで組み込み端末向けアプリケーションを開発し3年間運用してみて
  • 「Rust」でOSの自作に挑戦! 低レイヤーシステム開発の解説書『Rustで始める自作組込みOS入門』が発売/【Book Watch/ニュース】

    「Rust」でOSの自作に挑戦! 低レイヤーシステム開発の解説書『Rustで始める自作組込みOS入門』が発売/【Book Watch/ニュース】
  • ArmマイコンのRTOSとして充実する「Mbed OS」に一抹の不安

    IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する連載。第5回は、プロセッサコアIPベンダーのArmが独自に展開する「Mbed OS」を取り上げる。 ArmのリアルタイムOS(RTOS)「Mbed OS」は過去に何度か取り上げさせていただいた。最初は2014年のこちらの記事で、次いで2015年のこちらの記事、mbed 3.0の話、連載「IoT観測所」の第13回と第39回、そして2018年の「Mbed Linux OSに」絡んだ話といった具合だ。 加えて言うなら、2020年7月にArmがISG(IoTサービスグループ)を切り離すという報道があり、Mbed OSはどうなるのか? と思っていたら、最近になってロイターがこの計画が中止になったと報じている。これが事実ならまぁ一安心ではあるのだが、

    ArmマイコンのRTOSとして充実する「Mbed OS」に一抹の不安
  • リアルタイムOSとは何か、ここ最近10年の動向を概説する

    リアルタイムOSとは何か、ここ最近10年の動向を概説する:リアルタイムOS列伝(1)(1/3 ページ) IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する連載。第1回は、リアルタイムOSのここ最近10年の動向について概説する。 リアルタイムOS(RTOS)は、組み込み向けシステムにおいて、既に欠くことができない重要なコンポーネントになっている、と言うと「えー」という声も聞こえそうだが、事実そういうポジションにある。 RTOSとは何か、という話は3年ほど前にもTechFactoryで一度書かせていただいているが、要するに組み込み向けに最適化した(特にリアルタイム応答性能を重視した)軽量なOSである。 先述の記事では、以下の7つの特徴をご紹介した。 複数スレッド(タスク)の並行動作が可能 最

    リアルタイムOSとは何か、ここ最近10年の動向を概説する
  • IoT設計製造のテンプレ・ガントチャート~Shiftall流、設計製造のポイントを添えて | Shiftall blog

    Shiftall代表の岩佐です。 ESP32やRaspberry piを使って1品もののちょっとした試作機を作ったことがあるという人は増えてきましたが、いわゆる『量産品』を作った事がある人はそう多くはありません。また、大手企業に勤めていて量産品に関わったことがある人であっても、電気・メカ・ソフト・部品調達・品質評価・デリバリーなど開発の全プロセスを俯瞰して見た経験のある人は稀でしょう。 そこで年を締めくくるShiftallブログネタとして、何十品目という家電・IoT製品のスケジュールチャートを引いてきた立場で、製品開発全体のガントチャートをどう引くか?をご紹介したいと思います。IoTの肝となるスマートフォンアプリ&サーバサイドのガントチャートについては世に山ほど解説記事があるのでここでは省略します。 まず、全体工程のパート分けを行います。 電気 機構 組み込みSW App/Server(

    IoT設計製造のテンプレ・ガントチャート~Shiftall流、設計製造のポイントを添えて | Shiftall blog
  • Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG

    こんにちは、R&Dチームの齋藤(@aznhe21)です。 さあみなさん、ついにこの時がやってまいりました。 日2019/11/8にリリースされたRust 1.39により、あらゆる環境で最高速な非同期プログラミングが可能になりました。 新たな時代に乗り遅れないよう、今のうちにRustでの非同期プログラミングをマスターしておきましょう。 なお、この記事は、先日開催したOPTiM TECH BLOG Meetupの内容を大幅に加筆修正した上でエントリに仕上げたものです。 まず最初に伝えたいこと 非同期の歴史 Rustの非同期プログラミングの歴史 Rust 1.0以前 Rust 1.0 〜Rust 1.3 Rust 1.2あたり Rust 1.11あたり Rust 1.26あたり Rust 1.36 Rust 1.39 Rustの非同期プログラミングの特徴 ゼロコスト抽象化 プラットフォーム非依

    Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG
  • IAR DevCon Tokyo 2019から見えたRISC-Vの現状と今後

    現状のRISC-VベースMCUと将来 さて、IAR DevConでは実際にそのRISC-V(今回はIAR DevCon Evaluation boardではなく、SiFiveのHiFive 1を利用)を使ってのハンズオンも開催されたので、その内容を元にちょっとMCUとしての現状のRISC-Vをご紹介したいと思う。 そもそもRISC-V向けのソフトウェア開発環境としては、GitHubで色々公開されているほか、Andes Technologyが今年1月末にAndeSightというRISC-V向けIDEを無償公開するなど選択肢はいくつかあり、IAR EWRISC-Vは「初の商用開発環境」という扱いになるが、商用というだけにきちんとサポートが整った環境が提供される。以下、RISC-V一般の話とEWRISC-Vの話が混在するが、ちょっとまとめてご紹介したい。 まずは割り込み回り。現状RISC-Vその

    IAR DevCon Tokyo 2019から見えたRISC-Vの現状と今後
    vcc
    vcc 2019/11/06
    “現状RISC-Vそのものは割り込みに関して割と寛容というか、どうにでもなる仕様で、実際はPLICがその管理を行う形になるが、これが標準化されているという訳ではない”
  • ARM Cortex-M0でもラクラク使えるNT-Shellよりもコンパクトな端末入出力ミドルウェアMicroShellライブラリを開発しました (NXP LPC824用サンプルプロジェクト付き)

    あらまし 昨年のこと、NXP LPC824を使ったサウンドモジュールMicroSoundModuleを開発していました。このサウンドモジュールは、コマンドを受け取って色々な再生を行うもので、当初はこのコマンド処理部分の実装にNT-Shellを用いる計画でした。しかし、最小10KBのROM、最小1KBのRAMを要求するNT-ShellはNXP LPC824の小さなリソースに対して厳しいものです。仮に入ったとしてもアプリケーション側に大きな制約を課すことになります。 よくよく見まわしてみると、様々な面白そうなマイクロコントローラがNXP LPC824と同クラスで存在します。ARM Cortex-M0のような小さなマイコンを使ったシステムにおいて、NT-Shellほどの機能は要らない、でも、きっちり入力は出来るようにしたい、といったニーズはありそうです。 そこで、NXP LPC824のような小さ

    ARM Cortex-M0でもラクラク使えるNT-Shellよりもコンパクトな端末入出力ミドルウェアMicroShellライブラリを開発しました (NXP LPC824用サンプルプロジェクト付き)
  • FPGAのソフトコアCPU (MicroBlaze)とFreeRTOSでシリアル通信ソフトをつくる - Qiita

    はじめに 記事ではXilinx社のソフトコアCPUであるMicroBlazeでFreeRTOSを動作させ、PCのターミナルソフトとFPGAとの間でシリアル通信してI2CやSPI、UARTのペリフェラル制御を行います。 ※因みに私はRTOSを触るのは初めてなので、突っ込みどころがありましたらぜひご指南ください。。 設計の背景 FPGAの利用価値は 汎用品では不可能な柔軟な回路構成(静的にも動的にも) プリミティブな回路による圧倒的なリアルタイム性能 の2点に集約されると言えます。 例えば、数多くのセンサとアクチュエータをぶら下げて、流れてくるデータを監視しながらリアルタイムにデバイス制御したい場合など。 最近ではARMコアと論理回路部がワンパッケージになったFPGAも一般的になってきましたが、ARM上のLinuxにさせるまでもない瑣末な処理で、なおかつリアルタイム性能も重視したい時に便利な

    FPGAのソフトコアCPU (MicroBlaze)とFreeRTOSでシリアル通信ソフトをつくる - Qiita
  • mruby/cで始めるオリジナルIoTデバイス作り

    はじめに こんにちは、kishimaと申します。 mruby/c(えむるびーすらっしゅしー)という言語を皆さんは御存知でしょうか? この記事では、mrubyから派生して生まれたmruby/cを使ったIoTっぽい電子工作について説明していきたいと思います。 mruby/cでIoT 筆者は仕事で馴染み深かったのもあり、2017年後半あたりから電子工作格的に趣味として始めました。 機器の制御のためにマイコンにソフトを書き込むわけですが、プログラミング言語は基的にC言語を用いてきました。 しかしちょっとした機能の実装に、いつもC言語を使うのも面倒と感じる場面も多く、Rubyのようなスクリプト言語を使えたらいいなとずっと思ってきました。 最近では、mrubyという選択肢もあるわけなのですが、RAMが数百KB程度のマイコンで動かすことを考えると、mrubyは動かせないということはないのですが、あ

  • Visual Studio Code で ARM Cortex の開発環境を作る - くにゅくにゅの雑記帳

    Visual Studio Code で ARM Cortex の開発環境を構築してみたので,備忘録代わりに構築手順を書いておきます。 Visual Studio Code そのものは統合開発環境ではなく,あくまで高機能なコードエディタという位置づけの製品ですが,アドオンを入れることにより,コーディングだけでなく,プロジェクトのビルドや,ターゲットMCUへのダウンロード,ターゲット上で実行しながらのデバッグを,エディタ上で行うことができるようになります。IntelliSense によるコード補完もきちんと動作し,なかなか快適です。一方,大きな欠点として,2018年5月時点では C/C++ のリファクタリング機能が完全に欠落しています。このため,変数名の一括変更といった,ほかのコードエディタならば当たり前にできるようなことができなかったりもします。それを差し置いても,Eclipseベースの環

    Visual Studio Code で ARM Cortex の開発環境を作る - くにゅくにゅの雑記帳
  • RaspberryPiのCPU温度、電圧、クロック数をElasticsearchに送ってグラフ化 - 俺より凄いやつしかいない。

  • IoTデバイス用プログラミング言語「Eclipse Mita」登場。C言語へ変換、組み込み開発を容易に

    IoTデバイス用プログラミング言語「Eclipse Mita」登場。C言語へ変換、組み込み開発を容易に Eclipse Mitaでは、IoTデバイスをプログラミングする際に面倒になりがちな、センサーの読み取りやネットワークデバイスの制御といった低レベルかつデバイスごとに異なる部分をプラットフォームごとに吸収する仕組みを持ち、IoTデバイスにおいてもモダンなプログラミングを実現できるとのこと(プラットフォーム吸収部分のドキュメントはまだ準備中のようです)。 また、イベントループを用いることでプログラミングモデルを分かりやすくするなど、組み込み開発を経験したことのないプログラマでも容易にIoTデバイスのプログラミングができるような言語設計になっています。 Eclipse MitaのコードはC言語として出力されるため、多くのIoTデバイスに対応できる見通しです。 Eclipse Mitaの発表に

    IoTデバイス用プログラミング言語「Eclipse Mita」登場。C言語へ変換、組み込み開発を容易に
  • 組み込み開発へのテスト駆動開発の導入 その2 - 千里霧中

    組み込み開発へのテスト駆動開発の導入 - 千里霧中の続きです。 実機を伴うテストの問題点 では次に実機を伴うテスト環境についてですが、こちらはターゲットに似た実機環境を用意する方法と、テスト専用の機器上で動かす方法があると思います。 まず後者については、有力な候補ではないと思います。テスト用デバイスというのはパッケージソフトウェア以上に高額な価格設定がされているのが一般的な上、ターゲットと大分違う条件でテストをせざるを得ないためです。おそらくこのような環境を活用できるのは、よほど恵まれた環境か、特定製品に専業化した環境ぐらいに限られると思います。 一方前者に関しては、組み込み開発では最も一般的に行われている手段ではないかと思われます。例えば試作段階のターゲットの基盤を最低限のプロセッサが動作できるように一時的に改造して、Tera Termといった端末でファームウェアと通信したり、メモリダン

    組み込み開発へのテスト駆動開発の導入 その2 - 千里霧中
  • ARM Cortex-M 32ビットマイコンでベアメタル "Safe" Rust - Qiita

    これは Rustその2 Advent Calendar 2017 24日目の記事です。ARM Cortex-M アーキテクチャを採用した32ビット・マイクロコントローラ(マイコン)向けに、Rust でプログラムを開発する方法を紹介します。これらのマイコンでは Linux などの OS は動きませんので、OS なしで動作する「ベアメタル」なプログラムを書きます。 Rust を使うと、たとえマイコンであってもマルチスレッドでデータ競合のない「安全な」プログラムを簡単に開発できます。 今回は STM32F4 Discovery という Cortex-M4 を搭載した2千円台で買えるボードを使用します。Cortex-M0+ 以上のプロセッサを搭載したマイコンならどれでも同じ開発手法がとれるはずです。 高性能かつ低価格のマイコンを実現する Cortex-M アーキテクチャ ARM Cortex-M

    ARM Cortex-M 32ビットマイコンでベアメタル "Safe" Rust - Qiita
  • 中国で驚きの「速攻開発」 雨後の竹の子、AIスピーカー

    まさに雨後の竹の子――。世界でAI人工知能)スピーカー(スマートスピーカー)の新機種が続々と登場している。特に世界最大のオーディオ機器産業集積地となった中国発ブランドの製品が多く、中国Webサービス企業も後に続いた。

    中国で驚きの「速攻開発」 雨後の竹の子、AIスピーカー
    vcc
    vcc 2017/12/12
    “デザインハウスが提供する公板の周辺情報には、目を見張るものがある。BOMに型番が並ぶだけでなく、それぞれの価格、販売会社、担当者名、連絡先電話番号も書かれている。
  • LuaのC++組み込み方自分用まとめ - Qiita

    前にLuaを入門Luaプログラミングで勉強してたんですが、Luaの文法は分かっても肝心の組み込み方やコルーチン・メタテーブル等はサラッとしか書いておらず、結局どう使えばいいのやらサッパリ分からなくて挫折してました。 最近、Programming in Luaという公式の解説書を読んで、勉強し直してます。 さすが公式というだけあって、情報量が半端ない。 C++組み込み部分だけでも、自分用に備忘録を作っておきます。 ちなみに、ライブラリのリンクが一番手間取ったのですが、今でもよく分かってないので書きません。 Makefileでビルドしたのをリンクしても、↓のようなエラーが出てリンクできません。 ignoring file.../liblua.a, file was built for archive which is not the architecture being linked (x86

    LuaのC++組み込み方自分用まとめ - Qiita
  • “CPU大国への道”を突き進む中国、ドローン分解で見えた懸念

    連載の前々回「まるで“空飛ぶプロセッサ”、進化する中国ドローン」で扱った中国DJIのドローン「Phantom 4」の追加情報を今回も掲載する。DJIのPhantom4には実に27個ものCPUが搭載されていることを報告した。今回はその具体例を紹介したい。 図1は、カメラ雲台(Gimbal)に採用される米Ambarellaのカメラ用プロセッサ「A9」のチップ開封の様子である。 A9チップは、映像機器関連で採用が多く、DJIのDroneのみならず、アクションカメラで有名な「GoPro」、ドライブレコーダーや監視カメラにも搭載されている。DJIは、このカメラプロセッサにソニーのCMOSセンサーを組み合わせてPhantom 4の雲台を構成している。 このチップは図1に掲載するように、仕様(内部ブロック図)が公開されていて、3つのCPUと、ビデオやイメージ処理を行うDSPから構成されていることが明ら

    “CPU大国への道”を突き進む中国、ドローン分解で見えた懸念
  • 幻の白いカラスを追い求め、僕らはインドにたどり着く

    CMMレベル5の認定を受けたインドの会社に発注したはずが、品質が悪い。こうした悲劇がなぜ起こるのか? そのメカニズムを考えてみよう 前回のコラムで紹介したように、絶望的に不足している組み込み系ソフトウェア開発技術者を補うものとして期待されているのがインドなどへのソフトウェア開発の海外発注です。インドは、レベルの高いハイテク技術者を安価に大量に提供できる能力を備えており、まさに需要と供給がピタリと一致しているのですが、懐石料理の繊細な風味をカレー粉の鮮烈さで塗りつぶすように、両者がうまく融合した例はほとんど聞きません。今回は、この悲劇が起きるメカニズムについて考えてみます。 インドのソフトウェア開発会社が日でセールスを展開する場合、殺し文句として使うのが「ウチは、CMMのレベル5の認定を受けています」でしょう。“CMM(Capability Maturity Model)”とは、ソフトウェ

    幻の白いカラスを追い求め、僕らはインドにたどり着く
    vcc
    vcc 2017/01/26
    インドは、レベルの高いハイテク技術者を安価に大量に提供できる能力を備えており、需要と供給がピタリと一致しているのですが、懐石料理の繊細な風味をカレー粉の鮮烈さで塗りつぶすように、両者がうまく融合した例
  • まるで“空飛ぶプロセッサ”、進化する中国ドローン

    まるで“空飛ぶプロセッサ”、進化する中国ドローン:製品分解で探るアジアの新トレンド(11)(2/2 ページ) 「空飛ぶプロセッシング」 主にこの空間認識処理を行うのは、米Movidius(2016年9月にIntelが買収)のビジョンプロセッサだ。MovidiusのチップはGoogleの「Project Tango」(3次元認識技術)で採用されたことで一躍有名になった。その他にも、メイン基板には各種プロセッサやシステム制御のマイコンが搭載されていて、さながら「空飛ぶプロセッシング」という様相だ。 実際にテカナリエでは、ほぼ全てのチップを開封した。2.4GHz帯対応のコントロール通信、モーター制御のコントローラーIC、カメラ処理エンジン、ビジョンプロセッサのホスト、電池監視マイコンなど、全てのチップを開封した上で内部の仕様を調査した。結論から言えば、Phantom 4には、なんと27個もCPU

    まるで“空飛ぶプロセッサ”、進化する中国ドローン
    vcc
    vcc 2016/12/09
    2.4GHz帯対応のコントロール通信、モーター制御のコントローラーIC、カメラ処理エンジン、ビジョンプロセッサのホスト、電池監視マイコンなど、Phantom 4には、なんと27個もCPU(コントローラーを含む)が搭載されている