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

Reactで子のイベントから親に情報を伝える

ここを参考に ohs30359.hatenablog.com class Child extends React.Component { handleClick = () => { this.props.callback({'value':'mystr'}); } render() { return ( <button onClick={this.handleClick}>Click</button> ) } } class Parent extends React.Component { constructor(props){ super(pro…

Intel NUC KitをローカルでMacと共有してVivadoを使う

一枚のNICに2つのIP(DHCPと固定ローカルIP)を設定 参考:http://engetu21.hatenablog.com/entry/2014/09/30/070236 /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eno1 iface eno1 i…

起動時にNASをマウントする

シェルコマンドでマウントできるか確認 sudo mount -t cifs //192.168.100.217/disk1 /mnt/nas -o username=shohei,password=MYPASSWD,iocharset=utf8/etc/fstab に以下を記載 //192.168.100.217/disk1 /mnt/nas cifs username=shohei,password=MYPASSWD,fil…

SDSoCの注意点:Releaseでビルドする

Array Partitionのサンプルをビルドしてみたら Release環境でビルドしないとPYNQ-Z1には入りきらなかった Debugでビルドした場合 Releaseでビルドした場合

Arduinoで簡易パルスカウンタ

https://www.packtpub.com/mapt/book/web_development/9781785888564/3/ch03lvl1sec27/reading-and-counting-pulses-with-arduino int pin = 2; volatile unsigned int pulse; void setup() { Serial.begin(9600); pinMode(pin, INPUT); attachInterrupt(0, …

Arduino Pro mini 5VへのArduino UNOを使った書き込み

配線Arduino UNOのRX->Pro miniのRX Arduino UNOのTX->Pro miniのTX Arduino UNOのRESET->Pro miniのDTR Arduino UNOの5V->Pro miniのVCC Arduino UNOのGND->Pro miniのGNDボードをArduino Pro mini 5V (16MHz)にして、書き込みを行う (ポートはArduino UNO…

OpencvのminArearectで回転角度の計算

pos.x,pos.yがminArearect()で得た4点から計算した重心の座標 marker.x,marker.yがマーカーの位置座標 マーカーは縦長の長方形の左上に置く仮定 angleはminArearect()で計算した角度 -90° let cx = pos.x let cy = pos.y let mx = marker.x let my = marker…

ArduinoでContinuous servoを使う

#include <Servo.h> Servo myservo; void setup() { myservo.attach(9); myservo.write(90); // set servo to mid-point Serial.begin(115200); } void loop() { for (int i = 90; i < 180; i++) {myservo.write(i);delay(5);Serial.println(i);} delay(1000); for (i</servo.h>…

MicroBlazeのソフトリセット

安全な方法ではないらしいが、以下でリセットできる https://forums.xilinx.com/t5/Embedded-Development-Tools/Software-reset-of-MB-processor/td-p/188732 void mb_reset() { microblaze_disable_interrupts(); (*((void (*)())(0x00)))(); // restart }

MicroBlazeでsprintf()でfloatを指定("%f")すると落ちる

https://renesasrulz.com/synergy/f/synergy---forum/7006/sprintf-with-float リンカースクリプトで、ヒープサイズを増やしたら落ちなくなった 最初はスタックサイズ0x200, ヒープサイズ0x200 変更後はスタックサイズ0x400, ヒープサイズ0x800

PYNQのUARTLITEで文字列の受信

pynqmbのuart.c/uart.hを編集してuart_readline()関数を実装する 実装は以下を参考にした: ZYBO / Pmod / UART > PmodからUART接続してみた (UARTLITE使用) https://qiita.com/7of9/items/d93d24766bd8ff13631a https://github.com/shohei/PYNQ/commit/d14d…

Xilinx SDK上にPynquinoの開発環境を構築する(その2)

https://github.com/shohei/Zsprinter-pynquino にも書いた 1. base designをビルドする。 必要な変更は以下 1. UART1を追加:http://d.hatena.ne.jp/seinzumtode/20180729/1532826360 2. BRAMを64Kから256Kに:http://d.hatena.ne.jp/seinzumtode/20180814/…

Ubuntu上にPynquinoの開発環境を構築する

A. Xilinxツールのバージョン Vivado 2017.4.1 Xilinx SDK 2017.4 B. PYNQライブラリをGitHubからクローンしてtop.bitを作成する PYNQ/boards/Pynq-Z1/base/に移動してmakeするだけ。1時間くらいでtop.bitができる。 C. Address EditorでBRAMを拡張してtop.b…

Xilinx SDK上にPynquinoの開発環境を構築する(その1)

新しい記事も参考→ Xilinx SDK上にPynquinoの開発環境を構築する(その2) http://d.hatena.ne.jp/seinzumtode/20180815/1534292975 A. VivadoのAddress editorでBRAMへの割当てを増やしてGenerate bitstream B. Xilinx SDKでPynquino対応のBSPを作成する 0…

PYNQ ArduinoIOPのbspの作りかた

PYNQ/boards/sw_repoの下にmakefileがあるので、これをMakeすればいい

Altiumが起動しないとき 

https://electronics.stackexchange.com/questions/317127/altium-not-starting Temp fileを削除する C:\Users\shohei\AppData\Local\Altium C:\Users\shohei\AppData\Roaming\Altium

Lanscan on Linux

https://askubuntu.com/a/655916 netdiscover sudo apt install netdiscover sudo netdiscover -r 192.168.100.24/0

ML-808GXの圧力を変更する

#!/usr/bin/env python import sys if len(sys.argv)<2: command = "04DI " else: command = sys.argv[1] print("Command:",command) s = 0x0 for c in command: s = s - (ord(c)) ubyte = (s & (0b11110000)) >> 4 lbyte = s & 0b00001111 ubyteChar = hex(…

ROSでUR5を動かす

ur_modern_driver https://github.com/ThomasTimm/ur_modern_driver パッチを当てる https://github.com/iron-ox/ur_modern_driver/commit/883070d0b6c0c32b78bb1ca7155b8f3a1ead416c

PYNQ Arduino IOPで2つのUARTを使う

UART0はデフォルトで入っている 1. Chipkit GPIO[15:0]の16bitの2つを削って、14bitとする。 2. UART1を追加 自動配線だとMicroBlazeに配線されないので、Arduino IOP内のAXI Interconnectにつなぐように手動で配線する。UARTLITE0を参考にすればいい。 あ…

PYNQでChipkit GPIOのテスト

ck_gpio[15:0]のck_gpio[0]=IO26を点灯させる コード #include <stdio.h> #include "platform.h" #include "xil_printf.h" #include "xparameters.h" #include "xgpio.h" #define GPIO_EXAMPLE_DEVICE_ID XPAR_GPIO_1_DEVICE_ID #define LED_DELAY 10000000 #define </stdio.h>…

PYNQのArduino GPIOとChipkit GPIOのピン配置

Arduino GPIO Chipkit GPIO

PYNQのArduino IOPでUART0(UARTLITE)を使う

http://pynq.readthedocs.io/en/v2.1/overlay_design_methodology/pynq_microblaze_subsystem.html baudrate 115200で問題なく通信できそう。 1. PYNQライブラリ(uart.c, uart.h)を使う実装(こっちの方が簡単) #include <stdio.h> #include "platform.h" #include</stdio.h>…

15.6GBのRaspberry piイメージを15.5GBのSDカードに焼く(失敗)

普通にやると収まりきらなくてエラーがでる。 一度ext4領域を縮小してやる必要があるここのやり方に従う https://arakan60.mydns.jp/04kousaku/03-05sdcopyshrunk.html1. Linuxを立ち上げてgpartedを起動 ext4をリサイズする(今回は約14.8GB->約14GBに縮小…

VivadoでトップレベルHDLが自動で更新されないとき

https://forums.xilinx.com/t5/Design-Entry/hdl-wrapper-of-block-design-no-longer-updates-automatically/td-p/711741 Close BD Reopen BD Validate BD Save design Generate output products.

benchmark code

void setup() { Serial.begin(230400); //Serial.begin(115200); delay(1); } void loop() { if(Serial.available()){ int r1 = Serial.read() - '0'; Serial.print(r1+1,HEX); } }

PYNQでPartial reconfiguration

https://github.com/AEW2015/PYNQ_PR_Overlay 論文 A dynamic partial reconfigurable overlay concept for PYNQ(リンク切れ?) A Hardware Accelerator Framework Approach for Dynamic Partial Reconfigurable Overlays on Xilinx PYNQ

OpenAMP with Zybo

https://qiita.com/take-iwiw/items/ff46792eb107d978cd0b https://qiita.com/take-iwiw/items/3922ec5cae6aa35c5e81 https://qiita.com/take-iwiw/items/8b589650c15a6f705f35 https://qiita.com/take-iwiw/items/5f7c24bd0475274ded23

Google scholarにコマンドラインで問い合わせる

scholarly.pyを使う https://github.com/shohei/scholar.py/usr/local/bin/getpaper #!/usr/bin/env python import sys import os if(len(sys.argv)<2): print("usage: getpaper [phrase]") exit() phrase = "" for p in sys.argv[1:]: phrase = phrase +" "…

SphinxでMarkdownを使う

$ sudo pip install recommonmarkconf.py source_parsers = { '.md': 'recommonmark.parser.CommonMarkParser', } source_suffix = ['.rst', '.md']