# Other Companies # Nordic ## Thingy:52 IoT Sensor Kit https://www.mouser.jp/new/nordicsemiconductor/nordic-thingy-52/ https://www.nordicsemi.com/Software-and-Tools/Development-Kits/Nordic-Thingy-52 ![](https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1562204215233_+2019-07-04+10.36.06.png) ## Provided Application(for Thingy:52) <img src="https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1562289736924_Untitled5+1.png" width="600"> - Development tool https://www.nordicsemi.com/Software-and-Tools/Development-Tools ## 1. Firmware - Document: Firmware Architecture including BLE info https://nordicsemiconductor.github.io/Nordic-Thingy52-FW/documentation/firmware_architecture.html - Source https://github.com/NordicSemiconductor/Nordic-Thingy52-FW ## 2. Smartphone **Nordic Thingy** - Access from smart phone. General data such as temparature, accell can be browsed. - Parameters such as connection interval also can be configured. - Source code for iOS, Andorid is available. Link: Source code for Android and iOS https://github.com/NordicSemiconductor?utf8=%C3%A2%C2%9C%C2%93&q=thingy ![](https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1562021507830_Nordic+App.png) ### nRF Connect for Mobile - Browse devices and check parameters in connected device such as services,,characters. <img src="https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1562294358912_Screenshot_20190705-112057.jpg" width="300"> ### nRF Cloud Gateway - Connect to Thingy - The app can be gateway between Thingy and nRF Cloud. - Source is not avaiable?? <img src="https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1562294373101_Screenshot_20190705-112347.jpg" width="300"> ## 3: Desktop ### Web Application(Browser) https://developer.nordicsemi.com/thingy/52/ - App executed on Javascript(Browser). Browser can access to bluetooth on the PC via **Web bluetooth API**. (Although browser with Web bluetooth API supported is not very common yet. Chrome support that ) - Source code is available - Build by React Link: Source code https://github.com/NordicPlayground/webapp-nordic-thingy ![](https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1562024849721_Nordic+Web+App.png) ### nRF Connect for Desktop https://www.nordicsemi.com/?sc_itemid=%7BB935528E-8BFA-42D9-8BB5-83E2A5E1FF5C%7D ## 4: Cloud(Not only for Thingy) = nRF Connect for Cloud https://nrfcloud.com/#/ - Create account and login on Nordic web site - Install “Nordic Gateway” on smartphone. That behaves as gateway. - Launch “Nordic Gateway” and connect to the Thingy:52 then, status of the gateway and Thingy can be seen on Web browser. Link: Sources on cloud side https://github.com/nRFCloud ![](https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1562038236499_Nordic+Cloud+1.png) - “nRF Connect for Cloud Device API” is documented in the cloud > The nRF Connect for Cloud Device API allows you to programmatically interact with, and retrieve historical information generated by, any device that you have connected to nRFCloud.com. This includes both IP-based devices–that is, devices that have an IP address and can talk directly to our IoT platform–and Bluetooth Low Energy (BLE) devices, which require the use of an IP-based device (a gateway). ## Link - Nordic Software Development kit https://infocenter.nordicsemi.com/index.jsp - Thingyのためのライブラリ、On/Offなど https://github.com/NordicPlayground/Nordic-Thingy52-Thingyjs ## General Contents https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_thingy52%2FUG%2Fthingy52%2Fintro%2Ffrontpage.html&cp=10_0&tags=Nordic+Thingy+52%2CnRF52832 - User Guide - Introduction - Minimum Requirements - Resources - Kit content - Getting started - System overview - a - b - Hardware description - schema…. - Note: This is not for life support products,,,, Contact details….. # Thunder ## Mobile App - ---------- # ST https://www.st.com/content/st_com/ja/stm32-ann.html - Cloud Connecter https://www.st.com/content/st_com/ja/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-expansion-packages/x-cube-cloud.html # STM32 solutions for Artificial Neural Networks > STM32 - STM32がARMのCortex-M3コア - 内蔵ペリフェラルすべてをサポートするファームウェアが無償提供されているのは私が知る限りではSTMicroelectronicsのSTM32とTexas InstrumentsのStellarisだけです。 - STM32マイコンをお勧めする3つめの理由はマイコンボードが安価に入手できることです。 - STM32をお勧めする4つめの理由は、フォーラムが活発なことです。 ## STM32Cube.AI 学習済みneural netのモデルをSTM32に合わせて最適化 > **ニューラル・ネットワーク実装を実現するSTM32Cube.AI** - 一般的なディープラーニング・ツールと相互運用可能 - 多くの統合開発環境およびコンパイラとの互換性を確保 - センサやRTOSに依存しない - 単一のSTM32マイコンで複数のニューラル・ネットワークを実行可能 - 超低消費電力STM32マイコンにも対応 - 開発効率の向上 ディープラーニングを駆使して信号処理性能を強化し、STM32を採用したアプリケーションの可能性を向上させます。STM32用のニューラル・ネットワークを生成、実装できます(最適化されたコードを自動生成)。コードを手作業で作成する必要はありません **FP-AI-SENSING1** The package enables advanced applications such as human activity recognition or audio scene classification, on the basis of outputs generated by neural networks (NN). The NN are implemented by libraries generated by the X-CUBE-AI extension for STM32CubeMX tool. The NN provided in this package are just examples of what can be achieved by combining the output of X-CUBE-AI with connectivity and sensing components from ST. The package comes with an AI utility for data logging and annotation on SD card. You can record the data from the sensors and define which classes or events to record. With the recorded annotated data, you can train your own neural network on your PC/GPU/cloud, get the model, use X-CUBE-AI extension for STM32CubeMX tool for conversion, and then run it on the STM32 platform. This package, together with the suggested combination of STM32 and ST devices, can be used to develop specific wearable AI applications, industrial predictive maintenance applications, smart things and building applications in general, where ultra-low power consumption is a key requirement. The software runs on the STM32 microcontroller and includes all the necessary drivers for the STM32 Nucleo development board and expansion boards, as well as for the STEVAL-STLKT01V1 and STEVAL-MKSBOX1V1 evaluation boards and the B-L475E-IOT01A STM32L4 Discovery kit IoT node. ![](https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1561354401061_+2019-06-24+14.32.00.png) ---------- ## iNEMO Inertial Module 1. 慣性モジュール https://www.st.com/en/mems-and-sensors/lsm6dsox.html > iNEMO™モーション・センサである[LSM6DSOX](https://www.st.com/content/st_com/en/products/mems-and-sensors/inemo-inertial-modules/lsm6dsox.html?icmp=tt9483_gl_pron_feb2019)は、機械学習用コアを搭載し、既知パターンに基づいてモーション・データを分類します。メイン・プロセッサで行うアクティビティ・トラッキングにおける最初の工程が不要になるため、消費電力を低減できるとともに、フィットネス・データの記録、健康モニタ、携帯型ナビゲーション、落下検出といったモーション・ベースのアプリの効率化を促進します。 > 機械学習用コアは、センサに内蔵されたステート・マシンのロジック回路とともに動作し、モーション・パターン認識や振動検出を処理します。**機器メーカーは、アクティビティ・トラッキング機器にLSM6DSOXを組み込むことにより、Weka(PCベースのオープンソース・アプリケーション)を使用して決定木による分類をコアに学習させることができます**。これにより、加速度、速度、磁気角度などのサンプル・データから、検出するモーション・データのタイプを特徴付ける設定値や閾値を生成します。 2. Weka **Weka** (Waikato Environment for Knowledge Analysis) は、[ニュージーランド](https://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B8%E3%83%BC%E3%83%A9%E3%83%B3%E3%83%89)の[ワイカト大学](https://ja.wikipedia.org/wiki/%E3%83%AF%E3%82%A4%E3%82%AB%E3%83%88%E5%A4%A7%E5%AD%A6)で開発した[機械学習](https://ja.wikipedia.org/wiki/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92)ソフトウェアで、[Java](https://ja.wikipedia.org/wiki/Java)で書かれている。[GNU General Public License](https://ja.wikipedia.org/wiki/GNU_General_Public_License) でライセンスされている[フリーソフトウェア](https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AA%E3%83%BC%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)である。 ---------- なぜWekaか? - 現状(クラウドベース)オフラインで且つプログラミングレス、GUIで設計できる、且つフリーのツールはあまりない。Rが近いかも。 > 樹木モデルに関するアルゴリズムは多く提案されているが、RにはCARTのファミリーの一族 tree、rpart、randomForest 以外には見当たらない。樹木モデル(決定木)の話題で欠かせないのはC4.5のアルゴリズムである。そこで、本稿では、C4.5のアルゴリズムが実装されているデータマイニングのフリーソフトWEKAを紹介する。 - かこのC4.5のアルゴリズムがIPに乗せやすかったか ---------- 3. UNICO GUI & STEVAL-MKI109V3ボード(MEMSマザーボード) センサーとのやりとり、データ取り、書き込みなど https://www.youtube.com/watch?v=96GOlBPP0pA&&feature=youtu.be [https://youtu.be/96GOlBPP0pA](https://youtu.be/96GOlBPP0pA) ---------- データシート https://www.st.com/resource/en/datasheet/lsm6dsox.pdf Machine Learning Core Finite State Machine **The LSM6DSOX can be configured to generate interrupt signals activated by user-defined motion patterns**. To do this, up to 16 embedded finite state machines can be programmed independently for motion detection such as glance gestures, absolute wrist tilt, shake and double-shake detection. Definition of Finite State Machine A state machine is a mathematical abstraction used to design logic connections. It is a behavioral model composed of a finite number of states and transitions between states, similar to a flow chart in which one can inspect the way logic runs when certain conditions are met. The state machine begins with a start state, goes to different states through transitions dependent on the inputs, and can finally end in a specific state (called stop state). The current state is determined by the past states of the system. The following figure shows a generic state machine. Machine Learning Core The LSM6DSOX embeds a dedicated core for machine learning processing that provides system flexibility, allowing some algorithms run in the application processor to be moved to the MEMS sensor with the advantage of consistent reduction in power consumption. **Machine Learning Core logic allows identifying if a data pattern (for example motion, pressure, temperature, magnetic data, etc.) matches a user-defined set of classes.** Typical examples of applications could be activity detection **like running, walking, driving**, etc. **The LSM6DSOX Machine Learning Core works on data patterns coming from the accelerometer and gyro sensors, but it is also possible to connect and process external sensor data (like magnetometer) by using the Sensor Hub feature (Mode 2).** The input data can be filtered using a dedicated configurable computation block containing filters and features computed in a fixed time window defined by the user. Machine learning processing is based on logical processing composed of a series of configurable nodes characterized by "if-then-else" conditions where the "feature" values are evaluated against defined thresholds. ![](https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1561353244891_+2019-06-24+14.13.51.png) The LSM6DSOX can be configured to run up to 8 flows simultaneously and independently and every flow can generate up to 16 results. The total number of nodes can be up to 256. The results of the machine learning processing are available in dedicated output registers readable from the application processor at any time. The LSM6DSOX Machine Learning Core can be configured to generate an interrupt when a change in the result occurs これだけだと分からないのでアプリケーションノート https://www.st.com/content/st_com/ja/campaigns/machine-learning-core.html https://www.st.com/content/ccc/resource/technical/document/application_note/group1/5f/d8/0a/fe/04/f0/4c/b8/DM00563460/files/DM00563460.pdf/jcr:content/translations/en.DM00563460.pdf ---------- **ツール・ソフトウェア** https://www.st.com/ja/mems-and-sensors/lsm6ds3.html#tools-software - クラウド向けあり ![](https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1561356390138_+2019-06-24+15.06.15.png) Weka J48フォーマット ![](https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1561356325719_+2019-06-24+15.05.05.png) ![](https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1561356947707_Untitled3.png) ## Edge http://www.eurecom.fr/en/publication/5193/download/comsys-publi-5193_1.pdf https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8123913 ![](https://paper-attachments.dropbox.com/s_588059164889B43D7851F51916D21B73F0EBE6D27C6C00E3B28C99EB7F260FA4_1561345321900_+2019-06-24+12.01.28.png) # その他 ## Web Bluetooth API https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API ## C4.5 https://ja.wikipedia.org/wiki/C4.5 > **C4.5**はロス・キンランが開発した[決定木](https://ja.wikipedia.org/wiki/%E6%B1%BA%E5%AE%9A%E6%9C%A8)を生成するためのアルゴリズムである。C4.5はキンランの[ID3](https://ja.wikipedia.org/wiki/ID3)アルゴリズムの拡張である。C4.5が生成する決定木はクラス分けのために使うことができ、このため、C4.5はしばしば統計学的クラス分類器とみなされている。