元高専生のロボット作り

元高専生のロボット作り

主にプログラミング, 電子系について書きます。たまに機械系もやります。メモ代わりの記事ばっか書きます

2018-01-01から1年間の記事一覧

pythonでWebカメラから文字認識を行う

OCR(Optical Character Recognition/Reader)ってやつです。Anacondaを使用してますまずはモジュールのインストール conda install -c brianjmcguirk pyocrOCRツールのtesseractをいれます。ここにいろいろ書いてある。 github.com学習済みデータを保存してお…

Excelで2つの時系列データの位相を推定する

Excelで2つの時系列データの位相と周期を求めます。 位相はこちらから指定してやり、計算から指定した位相を求められるかというのを試します。こんな感じのことをやります。 以下にExcelデータ置いときます。 https://docs.google.com/spreadsheets/d/e/2PA…

プロキシに接続するバッチファイル

学校の無線LANはプロキシの設定をいちいち変えないと接続することができません。なので僕はバッチファイルを作ってそれを実行して接続しています。以下がそのバッチファイルのコードです。 reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVe…

SparkFunのラインフォロワアレイをmbedで使う

スイッチサイエンスでラインフォロワアレイというものが売ってます。 www.switch-science.com赤外線LEDとフォトリフレクタが8つ付いていて、I2Cで読み取れるらしいです。 ライントレースとかを手軽にやるには便利そうなので購入しました。Arduinoライブラリ…

LPC1768のVUの出力を上げる

LPC1768にはVUという5Vを出力するピンがあります。ピン番号39ですね。 今回はこのVUから出力できる電流を増やします。まず、回路図を見てみますと、 https://developer.mbed.org/media/uploads/chris/mbed-005.1.pdfより、以下の回路がUSBの電源、VBUSより接…

B3MサーボとAXサーボを並列で動かす

近藤のB3MサーボとDynamixelのAXサーボを並列で動かす必要があったのでやってみました。使用したのは ・KONDO B3M-SC-1170-A ・Dynamixel AX-12Aです。どちらも通信方式は半二重通信なのでLTC485を使用すれば使い分けることができます。B3Mは差動通信なのでD…

mbedでJY901を使う

JY901というものを紹介します。加速度、ジャイロ、地磁気センサが入っていて、カルマンフィルタを通して3軸それぞれの角度を出力してくれる便利なやつです。WitMotion WT901 センサー MPU9250 モジュール 3 軸加速度計ジャイロスコープ角度磁気フィールド TT…

ラズベリーパイとmbedでI2C通信する

ラズパイとmbedでi2c通信してみました。ラズパイはI2C Slaveにはなれないようなので、マスターになっています。mbedがスレーブで受信割り込みで自動で値を受け取るようにしました。レジスタ指定で、4バイトの送受信が可能です。使用したものはRaspberry Pi …

Hブリッジ式モータードライバーを設計する

モータードライバー(略してMDとか呼ばれる)を設計します。 当ブログを参考に製作をする際は必ず自己責任にて行ってください。当ブログを参考にしたことによる損害等の責任は一切負いません。 すみません。まだよくわかっていない部分もあるので。。。 今回…

pythonで顔向き推定をする

正しくは頭部姿勢推定ですね。 顔を認識して平行移動ベクトルと回転ベクトルを取得します。 こんな感じでリアルタイムで検出できる。 マスクしてると精度は悪い。 環境設定Anacondaを使用している場合 $ conda install -c anaconda opencv $ pip install imu…

XBEEにファームウェアを書き直す

XBEEを買ったんですけど、勘違いして間違ったファームウェアを書き込んでしまいました。使用したXBEEは XBEE ZB (S2C)ってやつです。 XBee ZB(S2C) / ワイヤアンテナ型 - スイッチサイエンス で、これのファームウェアは以下のURLでダウンロードできます。…

pythonで外部プロセスから3Dプリンターを操作する

3Dプリンターを監視できるTwitterのbotを作った - 高専生のロボット作りの続きです。3Dプリンターの監視までは良いんですけど操作もできなくちゃ、、、ということでタイトルの通りです。 方法としては、使用している3Dプリンター操作用ソフト pronterface ま…

近藤のB3Mサーボモータをmbedとarduinoで動かす

高トルクなサーボモータが必要になったので近藤のB3M-SC-1170-Aを買いました。 B3M-SC-1170-A | 近藤科学 このサーボモータはよくあるPWMで指示するわけではなくシリアル通信で情報を送受信してやる必要があります。 PCからサーボモータを操作するには別売り…

FlatCAMをwindows10にインストールするだけ

プリント基板を製作しようと思ってFlatCAMをインストールしました。 環境はwindows10 64bitです。FlatCAMのインストールにはWinPythonが必要だとかいろいろ面倒くさそうだなとか思ってたんですが、 jpcgt / FlatCAM / Downloads — Bitbucket ここのFlatCAM-W…

pythonとArduino, mbedでシリアル通信する

pythonで計算した後、モーターを動かすためにArduinoに値を送信したくなりました。1バイトのデータとかだったら楽勝なんですけど、小数を送りたいとか、この値がどんなデータなのかとか送信するには少しだけ複雑なことをする必要がありそうです。今回はpytho…

ArduinoでPID制御する(位置/速度制御)

(2020.09.14 がっつり記事を書き直しました)# PID制御の説明DCモーターの位置や速度の制御をPIDで行います。 位置制御の場合、DCモータの角度をエンコーダで読み取り、 取得した現在の角度と、目標の角度の差を偏差と呼びますが、偏差にある一定の値(Kp)を…

Arduinoでロータリーエンコーダーを使う

モーター制御しようとすると角度を取得する何らかのセンサーが必要です。今回はその中でもロータリーエンコーダー(インクリメンタル型)をArduinoで使ってみました。ピン変化割り込みを使用しているので多少高速でも精度よく角度が読み取れると思います。使…

Arduinoでサーボモーターの角速度制御をする

サーボモーターって角度制御は簡単なんですけど、角速度制御しようと思うと面倒だったり、動きがカクカクしてしまうことあると思います。しかし、ArduinoにはVarSpeedServo.hという素晴らしいライブラリがあります。これは、タイマーを利用して、角速度から…

オフラインのラズベリーパイ2でtp-linkを使えるようにする

マジでラズパイとか初心者なのでおかしいことしているかもしれません怒らないでください。 OSはraspbianです。 ラズベリーパイ2で無線LANアダプタのTP-linkを使えるようになるまでをメモしておきます。使用した無線LANアダプタはこれです。 そのまま挿しても…

3DプリンターAnycubic kossel Linearを買った

3Dプリンターを買いました。というより少し前に買っていたので紹介させていただきます。 買ったものはAnycubic kosselのLinear でHeated bed と Power supplyを付けて23000円くらいでした。 http://s.aliexpress.com/Bfy22uUr 梱包はけっこうしっかりしてま…

pythonでArUcoライブラリを使ってARマーカの位置とか角度とか知る

こんにちは。今回はpythonです。pythonにはARマーカ用のArUcoという機能がOpenCVの中に入っています。ライブラリのインストール $ python -m pip install opencv-contrib-python anacondaでも以下でインストールできる $ conda install -c conda-forge openc…

Bluetooth角度センサーWT901CLをpythonで受信する

前回のJY901が楽しかったので、bluetoothモジュールのものも買ってみました。BWT901CLって名前らしいです。 加速度、ジャイロ、磁気の9軸センサーです。 勝手に角度とかも計算して出力してくれます。 充電してから使用するので、コードレスで角度などを取得…

processing でスプラインを書いてみる

こんにちは。 前回、行列式の計算をするプログラムをprocessingで書いたので、これを利用してスプライン補間するプログラムを書いてみました。 今回、書いたのは、プロットした各点間を三次関数で補完するような曲線です。 こちらのサイトを参考にさせていた…

processing で行列式の計算をしてみる

こんにちは。 行列の計算ライブラリはすでに多くありますが、再確認のため1から書いてみました。 processingというかjavaで書いたのは後で使うためです。 コード //java void setup() { float[][] A = {{ 1, 2, 3, 4, 5}, {16, 17, 18, 19, 6}, {15, 24, 25,…