センサの入力信号は、ノイズ成分が含まれる場合がほとんどです。このノイズをソフトで除去する方法がデジタルフィルタです。今回は、代表的なローパスフィルタ、Mean(平均)フィルタ、Median(中央)フィルタのプログラム方法を紹介します。 ローパスフィルタ(RCフィルタ) ローパスフィルタは、周波数が低い信号を通して、周波数が高い信号を遮断します。また、このフィルタはRCフィルタとも呼ばれます。電気回路でローパスフィルタを作るときは、下記のような回路構成で、抵抗(R)とコンデンサ(C)を使用します。 これを式で表します。ある時刻tにおけるフィルタ出力値Voutは、係数をaとして、センサ入力値をVinとすると、下記のようになります。 Vout[t] = a * Vout[t-1] + (1-a) * … [もっと読む...] about ArduinoでSTEM教育 基礎編:デジタル入力フィルタ
アーカイブ2019
ArduinoでSTEM教育 基礎編:センサのキャリブレーション
センサはいろいろな種類がありますが、どんなものにも誤差が生じます。この誤差をできるだけ小さくするために、キャリブレーション(校正、調整)を行います。例えば、ライントレースカーの場合だと、床材が異なると反射率も異なるので、その環境下でデータを取って、制御閾値を調整する必要があります。このようなセンサデータを処理プログラムする方法を紹介します。 起動時にキャリブレーションする方法 起動時時に実行されるsetup関数内で、基準となるラインを計測して、それをもとに閾値やヒステリシスを設定します。 ヒステリシスについて、簡単に説明します。例えば、照度センサの閾値を500に設定して、500以下だとLEDを点灯、501以上だとLEDを消灯するプログラムを作るとします。照度センサから入力される値は、常に微小に上下しているため、500や501といった値 … [もっと読む...] about ArduinoでSTEM教育 基礎編:センサのキャリブレーション
Arduinoをビジュアルプログラミングする ~ Ardublock, BlocklyDuino, S4A, Scrattino, mBlock ~
Arduinoのプログラミングは、C/C++を学んだことがある人からすると、すんなりと入り込めると思います。しかし、多くの子供はキーボードを打つことさえ難しいのが現状です。そこで、登場するのがScratchのようにブロックを置いてプログラムする方法です。Arduino用にさまざまなツールが開発されていますので、それぞれの特徴について解説します。 なぜビジュアルプログラミング? 初めてプログラミングをする子供に学んで欲しいことは、自分のアイデアを形にして、トライ&エラーを繰り返し、より良いものを作り上げる楽しさです。プログラミングは、それを実現するための手段であり、習得することが目的では有りません。 テキストベースのプログラム … [もっと読む...] about Arduinoをビジュアルプログラミングする ~ Ardublock, BlocklyDuino, S4A, Scrattino, mBlock ~
ArduinoでSTEM教育 実践編:ライントレースカーをPID制御する
前回作成したライントレースカーはガタガタ走行でした。今回は、自動制御でよく用いられるPID制御で、ラインに対して滑らかな走行ができるようにプログラムします。難しそうに感じるかもしれませんが、実際にモノを作ってみると理解度が断然上がります。 使用する部品一覧 使用する車は、前回の記事(ArduinoでSTEM教育 実践編:ライントレースカー)で作成したものを使用します。 電子部品の説明、回路図、ブレッドボード図はこちらを参照してください。 PID制御とは 前回作成したライントレースカーは、左右のフォトリフレクタがラインを検出する/しないの2値で、車の進行方向を制御していました。単純な制御なので理解しやすいですが、車はガタガタ走行になってしまいます。滑らかに走行するためには、フォトリフレクタのライン検出をアナログ値で取得して、 … [もっと読む...] about ArduinoでSTEM教育 実践編:ライントレースカーをPID制御する
ArduinoでSTEM教育 実践編:スマートフォンで制御するラジコン
今回は、Arduino互換ボード(Adafruit Feather 32u4 Bluefruit LE)とBlynkアプリを使用して、スマートフォンからBLE( Bluetooth Low Energy )通信で車をコントロールする方法を紹介します。 使用する部品一覧 使用する車は、前回の記事(ArduinoでSTEM教育 実践編:ライントレースカー)で作成したものを使用します。 電子部品の説明、回路図、ブレッドボード図はこちらを参照してください。 今回はライントレースではないので、フォトリフレクタは不要です。 Blynkとは Blynkは、スマートフォンやタブレットのアプリから、様々な通信規格(Ethernet, Wi-Fi, USB, GSM, Bluetooth, BLE)を使用して、ArduinoやRasberry … [もっと読む...] about ArduinoでSTEM教育 実践編:スマートフォンで制御するラジコン