日曜技術者のメモ

趣味でやった事のメモ書きです。

PYNQ JTAGでZynqとRISC-Vをまとめてデバッグ(失敗)

Xilinxのフォーラムを見てたらこんなのがあった forums.xilinx.com 以前SCR1をFPGAで動かしたときにFPGAとRISC-Vで別々のJTAGケーブルが必要なのが面倒だと思った。これができれば1本のケーブルで全部できるやん!と思ってやってみた 結果、JTAGは繋がった様…

M5Stack Core2の電源管理IC(AXP192)を調べてみた-1-

PM5Stack Core2をESP-IDFで開発したいがサンプルプロジェクトがないので自分で作ることにした。 まずは設定が必要そうな電源回りを調査した 参考資料 M5Core2公式サイト (ただしAXP192のデーターシートは一部しかない) M5Stack Docs - The reference docs fo…

PlatformIOでM5Stack Core2のCore2_Factory_testをビルドしてみた

久しぶりに更新。 仕事と趣味が一緒だとブログに書く内容に困る・・・ M5Stack Core2を買ったのはいいがPlatformIOに登録されていなかったので自分で追加して出荷時のプログラム「Core2_Factory_test」をビルドしてみた ※この方法はPlatformIO公式でサポート…

Keras+TensorflowでRapsberry Piライントレーサー作ってみた

某所のライントレース大会向けに機械学習を使ったライントレーサーを作ってみた。 そろそろいいかなと思うのでblogで公開してみる。 完成した動作は↓を参照。 Keras+TensorflowでCNNを使ったラズパイライントレーサ作ってみた。挙動がかなり怪しい場面もある…

リチウムコイン電池で動くワイヤレス温湿度気圧ロガーを作ってみた-2-

前回の続き。 se.hatenablog.jp 本当は↓の連続送信テストが終了したらブログに纏めようかと思っていたが、2週間待っても電池が切れないので途中結果で書いておく。 連続送信テスト 前回の投稿から電池の持ちを調べる為に電池での連続送信テストしてみた。 実…

リチウムコイン電池で動くワイヤレス温湿度気圧ロガーを作ってみた-1-

秋月で温度・湿度・気圧をまとめて測定できるBME280というセンサーを買ったので リチウムコイン電池で動くワイヤレスな装置を作ってみた。 (左:センサー・送信 右:受信) 主な部品リスト 名前 価格 MSP430G2553 210円 BME280モジュール 1080円 315MHz…

Vivado IP Integratorでap_fifoとfifoを簡単に接続する

ap_fifoとfifoを接続するときの小ネタ。 ap_fifoはfifoと接続されない Vivado HLSでap_fifoを多用する私ですが、Vivado IP Integrator上でFIFO Generatorと接続しようとしてもそのままでは繋がりません。 ↑の様に接続候補に現れない。 ap_fifoは何故かfullや…

VivadoHLSで射影変換を実装してみた-3-

↓の続きで今回が多分射影変換の最終回 se.hatenablog.jp 原因追求 前回射影変換をお手軽に実装したがかなり遅かったのでまずは原因を確かめる。 と、言っても原因は↓のAXI HP3の波形を見れば明らか。 Write/Read共にシングルアクセスなので1pix読み書きに時…

Zynqのベアメタルアプリケーションで画像をメモリに書き込む

Zynqでベアメタルアプリケーション(OSなし)を走らせる際 テスト入力として画像データをメモリ上に展開したくなる時がある。 その際GIMPを使えば簡単に画像データをソースコードに変換できるので blogに書いておく。 GIMP まず、GIMPをインストール&起動する…

VivadoHLSで射影変換を実装してみた-2-

前回の続き se.hatenablog.jp Vivado HLS 射影変換は以下図のように2モジュールに分けて実装をした。 fifo使ってモジュールを小分けにすると 実装が楽になったり速度が出やすくなるので良く使います。 ここら辺の話は需要があればblogかどっかで纏めるかも。…

VivadoHLSで射影変換を実装してみた-1-

台形補正のアルゴリズムを調べてたら射影変換でやるみたいなのでFPGAに実装してみた。 OpenCV まずはOpenCVでさくっとテスト #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> int main(void) { //cv::Mat src_img; //src_img = cv::imread("test.jpg", 1); IplImage *pImg; pImg = cvLo</opencv2/highgui/highgui.hpp></opencv2/opencv.hpp>…

多層パーセプトロンをPythonで実装してみた-手書き数字認識-

前回(↓)の続き。 se.hatenablog.jp 簡単な分類で動作を確認できたので次は数字認識をやってみる。 多層パーセプトロンをPythonで実装してみた-1- - 日曜技術者のメモ で書いたクラスは出力層が二個以上に対応していなかったので修正して使った。 ブログは修…

多層パーセプトロンをPythonで実装してみた-2-

前回(↓)の続き。 se.hatenablog.jp 多層パーセプトロン各層の実装ができたので実際に動かしてみる。 パーセプトロンの数や層の構成は↓を参考にした。 googlecloudplatform-japan.blogspot.jp 簡単な分類 直線分類 まず↓をやってみる。 実装は↓ # -*- coding:…

多層パーセプトロンをPythonで実装してみた-1-

A Neural Network Playgroundのデモが素晴らしかったので Pythonを使ってそれっぽく動く物を作ってみた。 開発環境 Visual studio 2015 community PTVS Python3.5.2 numpy 1.11.1 scipy 0.18.0 scikit-learn 0.18 matplotlib 1.5.3 多層パーセプトロン ニュ…

LPC1114FN28でマルチコプター作ってみた-フライトコントローラー-

マルチコプターのフライトコントローラを作ったときのメモ プロポ入力 S-BUSが使いたかったのでFutaba 10Jを採用 S-BUSはFutabaの規格で仕様は公開されてないが 解析している人がいたのでありがたく使わせてもらった Futaba S-BUS controlled by mbed | mbed…

LPC1114でマルチコプター作ってみた-フレーム-

マルチコプターのフレームを作ったときのメモ フレーム材料 材料は悩んだが入手性・強度・軽量・加工性を考えてアルミの角材+アルミ板を採用 カーボンは理想的だけと加工は大変だし何より高いので不採用 木材は加工が容易だが強度の見積もり方法が全く分から…

LPC1114FN28でマルチコプター作ってみた

1年位マルチコプターを作ってとりあえず飛んだ浮いたので色々メモしておく。 ↓はプログラム修正中でプロペラを外した写真 買った物 これで5万位 フレーム アルミ角材 アルミ板 ねじ プロペラ 1045プロペラ 電装 ブラシレスDCモーター(A2212) ESC(Simonk 30A…

LPC1114+CMSIS Libraryでprintfを使ってみた

LPC11xx_cmsis2_Libに実装されているUARTSend関数を使ってシリアル出力していたが 文字列以外の表示が面倒なのでprintfを使えるようにした。 今の所2種類の方法で動いたので両方メモしておく。 試した環境 LPCXpresso_7.7.2_379 LPCXpresso1114_cmsis2.zipを…

CypressでEZ-USB FX3 のキットを買ってみた

ZedboardとPC間で高速大容量通信の実験をしようと思いUSB3.0のキットを買ったので購入方法などのメモ 買ったのはCypressの「EZ-USB FX3 SuperSpeed Explorer Kit」$49と安価なのでこれにした。 CYUSB3KIT - 003 EZ - USB® FX3™ SuperSpeed Explorer Kit - Cy…

Simple framebufferを有効にする

Linux上からディスプレイに出力する方法を調べているとSimple framebufferという物がある様なのでqemu上で試したメモ。 qemuは前回のqemu2svの環境を流用。 qemu側の変更点 hw_if.cからソケット通信を削除して単体で動作する様に修正 ベースアドレスの変更 q…

qemu2svを試してみた-3-

qemu2svを試してみた-2- - 日曜技術者のメモの続き プログラムを書いてWrite/Readテストをした qemu⇔svの通信テスト 通信プログラムの作成 qemuからsvへアクセスする為のプログラムを作成した。 sv側にライトしてからリードするだけのプログラム。 main.c #i…

qemu2svを試してみた-2-

qemu2svを試してみた-1- - 日曜技術者のメモの続き Device Treeの準備と動作確認 Linux Device Tree Linuxカーネルに付属しているDevice Treeを使うとqemu上でブートはするがネットワークが繋がらなかった。 色々試した結果zynq-zed.dtsを修正する事で接続で…

qemu2svを試してみた-1-

qemuとSystemVerilogを接続してシミュレーションをするqemu2svがgithubにて公開されていたので試してみた SVHackathon2014B/qemu2sv qemu2sv qemu2svの入手&ビルド git clone https://github.com/SVHackathon2014B/qemu2sv.git qemu2svのビルドは付属してい…

C++11とC++14とSystemC

C++11やC++14といった新しいC++でSystemCを使ったらどうなるか軽く試したメモ C++11 C++11でSystemCがどうなるかについては↓の資料にまとめられています。 http://www.nascug.org/events/17th/black_cpp11_2_27_2012.pdf 一番気になったのはテンプレートにつ…

clangでSystemC2.2をビルドしてみた

clangでSystemC2.2がビルドできたのでメモ ただしこの方法はclangのバージョン3.3のみに有効 clangインストール インストールは以下ページを参考にしました。 CentOS5にLLVMとclangをインストールする | CentOS・Red Hat Linux実践テクニック - サンプルコー…

GDBでsc_int、sc_uintのアンダー/オーバーフロー検出をしてみた

SystemCライブラリのコードにオーバーフロー/アンダーフローを検出する機構を考えてた時に Twitter上でGDBでできると教えてもらったのでやってみた。 始めはGDB+Pythonを使おうかと思ったけどGDBコマンドでそれっぽくできた。

VGA端子の同期信号出力タイミング規定

今までFPGAからVGA出力する時 HSYNCやVSYNCのタイミングは適当にしていたが規格で決まっている様なのでメモしておく。

SystemC+GoogleTestを試してみた

Twitter上でSystemCでテストフレームワークが使えるかの話をしている時に 以下ページを教えてもらったので試してみました。 Using existing unit test frameworks with SystemC - Stack Overflow ソースコード まずはページに載っているソースコードをファイ…

STREAM Benchmarkをやってみた

STREAMというメモリ帯域を測定するベンチマークソフトがあるので試してみました。 http://www.streambench.org/ 上記ページにあるFTPサイトにはstream.exeがありますが Windows32bit版で実行にはCygwin.dllが必要です。 私はWindows7 64bit版なのでソースコ…

Terasic SoCKitのデモを実行してみた-HPS-

SoCKit System CD(Terasicのページからダウンロード)にデモが入っているので実行してみた。 HPS側は以下デモが入っています。 hps_gpio hps_gsensor hps_lcd my_first_hps デモ実行方法は「My_First_HPS.pdf]に記載されています。 my_first_hps実行方法 C:\a…