目次

リアルタイムOS, CI-CD, オセロ, トラブルシューティング

+
その他

CI-CD | ソフトウェア開発

ソフトウェア開発における継続的インテグレーション(CI)や継続的デプロイ(CD)に関するノウハウと知識。

Arduino
Arduino上で走るOSの作り方 | Arduino

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
シリアルモニタを開くまでArduino-Python間のシリアル通信のデータ破損 | トラブルシューティング

ArduinoとPython間のシリアル通信で, Arduino側から送られたシリアルデータをPythonのpySerialモジュールで読み込むと, 破損したデータ-予想していないデータ-を受信する. だが, 一度Arduinoのシリアルモニタでデータを確認すると正常に受信できており, それ以降, pythonの方でも正常に受信できる.

pythonで受信. 予期しないデータが受信されている
pythonで受信. 予期しないデータが受信されている

本稿では, 上記の問題の原因と解決方法について述べる.

OS
Arduino上で走るOSの作り方 | Arduino

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
GitHub-Actions, FTP, ダウンロード
rcloneを用いてFTPによるファイルのアップロードとダウンロードをGitHub Actions上で行う | CI-CD

本稿では、外部アクションに頼らずrcloneをもちいた外部サーバとのファイル転送方法を説明します。rcloneとは、FTPだけに限らず外部サーバに対してファイルのアップロードやダウンロード、削除や移動といったファイル操作を行えるCLIツールです。rcloneをGitHub Actionsで使うことにより、特殊な要求にも柔軟に対応できるようになります。

Python
オセロ | アプリケーション一覧

オセロです. 遊びで作ったものなので, きれいにできている自信はありません.

より多くの石をひっくり返した方が勝利です.

遊ぶには, pythonの環境が必要です.

AI搭載で一人でも遊べます. (貧弱なAIですので改良しちゃってください.)

シリアルモニタを開くまでArduino-Python間のシリアル通信のデータ破損 | トラブルシューティング

ArduinoとPython間のシリアル通信で, Arduino側から送られたシリアルデータをPythonのpySerialモジュールで読み込むと, 破損したデータ-予想していないデータ-を受信する. だが, 一度Arduinoのシリアルモニタでデータを確認すると正常に受信できており, それ以降, pythonの方でも正常に受信できる.

pythonで受信. 予期しないデータが受信されている
pythonで受信. 予期しないデータが受信されている

本稿では, 上記の問題の原因と解決方法について述べる.

遊び, アプリ
オセロ | アプリケーション一覧

オセロです. 遊びで作ったものなので, きれいにできている自信はありません.

より多くの石をひっくり返した方が勝利です.

遊ぶには, pythonの環境が必要です.

AI搭載で一人でも遊べます. (貧弱なAIですので改良しちゃってください.)

シリアル通信
シリアルモニタを開くまでArduino-Python間のシリアル通信のデータ破損 | トラブルシューティング

ArduinoとPython間のシリアル通信で, Arduino側から送られたシリアルデータをPythonのpySerialモジュールで読み込むと, 破損したデータ-予想していないデータ-を受信する. だが, 一度Arduinoのシリアルモニタでデータを確認すると正常に受信できており, それ以降, pythonの方でも正常に受信できる.

pythonで受信. 予期しないデータが受信されている
pythonで受信. 予期しないデータが受信されている

本稿では, 上記の問題の原因と解決方法について述べる.

「https://contentsviewer.work/Master/:tagmap/リアルタイムOS,CI-CD,オセロ,トラブルシューティング?layer=ja」から取得