予めとってあるCSV形式の電圧変化の値を、Arduino Unoで読み込ませ、モーターへ出力させる方法
または、参考となるプログラムなどございますでしょうか。
より具体的にはCSVは別の操作によって得られた一定時間ごとに電圧値が記されたPC内に保存された
ファイルです。そのファイルをArduinoで読み込み、読み込んだ値をモータへアナログ出力させる方法はないかというものです。
ひとくちにArduinoと言ってもいろいろな機種があり、一番ポピュラーなArduino UNOであれば(そのままでは)ストレージはありません。つまり、単体では「ファイル」の概念がないのですが、どういう形で「読み込ませ」ることを想定していますか?
あるいは、「ファイル」を持てるような機種なのですか?
編集した後ではありますが、Arduino Unoです。この機種では上のような操作は実現は難しいでしょうか
UNOならシリアルで流し込むのでしょうね(SDカードのI/Fを付けるとかすればそれはまたそれですが)。
で、そのデータの総量はどのくらいあるのですか? UNOは2KBしかRAMがないので、(プログラムの他の動作に必要なメモリも合わせて)それより大きいデータは保持することは出来ません。その場合は、PC側のプログラムで「小出し」にしてやる必要が出てきます。
やりたいことを、その部分だけに限定しないで全体像を説明してみていただけませんか。
「ドリルを使おうとしている人は、ドリルが欲しいんじゃなくて穴が欲しいんだ」なんて話があります。ドリルの話だけを聞かれても、どこにどんな穴が必要かによってやりざまがいろいろに違ったりします。
やりたいこととしては、マイクで拾った衝突の振動波形の電圧変化を、モーターに出力させ衝突の感覚を再現させるというものです。
前提の話になっちゃいますけど、
> マイクで拾った衝突の振動波形の電圧変化を、モーターに出力させ衝突の感覚を再現させる
そのCSVの一桁目が時間っぽい(それすら説明ないですけれど)として、その単位は秒ですか?それとも、ミリ秒ですか? マイクで拾うようなものだと、ミリ秒だったりして...それって、モーターの反応速度に対してどうでしょう?
上で説明させていただいたのですが、左が時間で右が電圧値で間違いないです。
単位はミリ秒なのですが、時間間隔はナノ秒スケールでさらに細かいものとなってしまっております。モーターはボイスコイルモーターを使用しているのですが、そもそも出力が難しいでしょうか。難しければ、データを間引いて出力させることも可能ではあります。
> 時間間隔はナノ秒スケールでさらに細かいもの
> 感覚を再現させるというものです。
人間の感覚がナノ秒オーダーの反応速度を持っているわけもありません。
> モーターはボイスコイルモーターを使用しているのですが、
使ったことがないので知識がありません。
> そもそも出力が難しいでしょうか。
あなたが用途に適する(少なくとも使用可能である)と判断したから使っているのでしょう? 採用を決めたときの判断資料を示していただければ何らかの意見を出せるかも知れません。