satotsuのいろいろつくってみた日記

いろいろつくってみたあれこれの記録。

Arty Z7-20 の立ち上げめも

■ボードの設定

board filesをダウンロードする
https://github.com/Digilent/vivado-boards/tree/master/new/board_files/arty-z7-20/A.0

Vivadoの該当フォルダにコピーする
C:\Xilinx\Vivado\2017.3\data\boards\board_files


■Vivadoプロジェクトの作成

Arty-Z7-20-templateをダウンロード
https://github.com/Digilent/Arty-Z7-20-template
Arty-Z7-20-templateをコピーして、好きな名前に変更する

projフォルダの、create_project.tcl をテキストエディタで開く
set proj_name "TEMPLATE"のTEMPLATEを、好きなプロジェクト名に変更して保存する

Vivadoを起動する

Tcl Console で、create_project.tcl のフォルダに移動する
例:cd C:/Users/xxxx/Xilinx/prj/Arty-Z7-20-template/proj
pwd でフォルダ移動できているか確認する

source ./create_project.tclを実行する


■PLの作成

Block Design を作成するIP INTEGRATOR -> Create Block Design -> OK

Diagramでブロックを配置する「+」 -> zynq -> ZYNQ7 Processing System
「+」 -> gpio -> AXI GPIO

自動配線するRun Connection Automation -> All Automation ->OK

ボード設定するRun Block Automation

きれいに並べるくるっとした矢印 (Regenerate Layout)

Wrapperを作るSource -> design_1を右クリック -> Create HDL wrapper -> OK

論理合成する再生マーク (Run Synthesis) -> OK
右上のくるくるが終わるまで待つ(数分かかる)
Run Implementation -> OK -> OK
右上のくるくるが終わるまで待つ(数分かかる)
Generate Bitstream -> OK -> OK
右上のくるくるが終わるまで待つ(数分かかる)

FPGAに書き込むArty Z7をPCのUSBに接続する
Open Hardware Manager -> Open Target -> Auto Connect
Program device -> Program

SDKの準備File -> Export -> Export Hardware -> Include bitstream -> OK

SDKの起動File -> Launch SDK -> OK


■PSの作成

projectの作成File -> New -> Application Project
Project name に好きな名前を入力 -> NEXT
Hello world -> Finish

ソースの作成hello -> helloworld.c を開く

Tera Termの準備シリアル 115200bps

実行Run -> Launch on Hardware (System Debugger) -> OK
Tera Termに "Hello World" が出ればOK

ついにオシロを買った!(RIGOL DS1054Z)

買ってしまいました。据え置きのオシロ

ネットで安くて良さそうなの探して見つけたこれ。

RIGOL DS1054Zです。中国メーカー。

4chで帯域は50MHzと普段使いには十分な性能。

f:id:msatotsu:20180128171448j:image

 

輸入かと思いきや、モノタロウで扱ってました。

お値段税別49,900円。月一の計測機器10%オフの日に買うとお得ですよ。

https://www.monotaro.com/p/5574/2733/

 

寒い中運ばれてきて結露してたので、部屋で温めてあげる。

合わせてAmazonベーシックの台がとてもいい感じ。

こちらを参考にしました。

https://rabbit-note.com/2017/12/23/rigol-ds1054z-stand/

 

電源入れたらプローブを補正。早速使ってみた。

f:id:msatotsu:20180128171221j:image

 

前にちゃんと見れなかった、arduinoで作ったタイマー1の相補PWMが確認できた。すごい。

 

ちなみに前に取ったのはこんな感じ。

すごいなまってる。帯域は200kHzだし。

そして1chなので相補がわからない。。

f:id:msatotsu:20180128172321j:image

 

ちょくちょく波形見たいときにストレスなく見られるのがとてもいい感じ。

埃まみれにならないよう、カバーつけたいな。 

esp32の時刻合わせをntpでやってみる。

esp32のサンプルスケッチで時計を動かせたので、時刻も合わせたくなった。

こちらを参考にさせていただく。

qiita.com

 

はまったのが、wifiに接続するところ。

何回WiFi.status()やってもWL_NO_SSID_AVAILが返ってくる。

scanしたら見つけてるので、見えないわけではないみたい。。

statusの内容はここの.hファイルを参照。

github.com

 

結果的には、beginの前にdisconnectするとできた。

しばらく繋がらなかったら、またdisconnectしてbeginする。

WiFi.disconnect();
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

macでesp32のoledひからせるまで。

これ届いた。さっそく開発環境をととのえるよー。

ja.aliexpress.com

まずはGithubからesp32の設定とってきて、USBドライバをインストールする。

qiita.com

たぶんうちのはESP 32 Dev Moduleじゃなくて、Heltec_WIFI_LoRa_32でいいはず。

スケッチの書き込みにはボタン押してモード変更してやる。

-> [RST]押しながら[PRG]押して、[RST]を離せばおK。

 

コンパイラでBLEが無効とかでるのは特に問題なさそうだけど。

ここからダウンロードして、esp32フォルダに置けば出なくなる。

github.com

 

で、びんぼうでいいのと同じようにOLED動かそうとするも動かない。。

スケッチ書き込み前はちゃんと動いてたので、ハード的には問題ないはず。

あとシリアルはなんか吐き出してるので、i2cまわりがあやしそう。

 

Aliでみてみた。SDAが4,SCLが15らしい。

https://ae01.alicdn.com/kf/HTB1hdmKSpXXXXbMXFXXq6xXFXXXR.jpg?size=188590&height=599&width=1000&hash=9ae2381838511582087d4c5a7912a60d

なので、SSD1306 display(0x3c,4,15);でうごくはず。 動かない。。

 

結局、ここでまんまのボードとサンプルがあったので試す。これは動いた。

robotzero.one

 

#include "SSD1306.h"でやるときは、setup()で、

// put your setup code here, to run once:
  pinMode(16, OUTPUT);
  digitalWrite(16, LOW); // set GPIO16 low to reset OLED
  delay(50);
  digitalWrite(16, HIGH); // while OLED is running, must set GPIO16 to high
  Wire.begin(4, 15);
  display.init();

  display.flipScreenVertically();

ってやると動いた。16pinがみそらしい。

macでelectronいれるまでのめも。

mac(osx el capitan 10.11.6 )にelectronいれるまでのめも。

node.jsを最初にpkgでいれたけどうまくいかずに結構はまった。

 

nodenvでnode.jsをいれる。今回は安定の8.9.4で。

joppot.info

 

electronをいれる。sudoつけるとうまくいかない。でもこれはいらないかも。

npm install electron -g

 

gitでサンプルひろってきて動かしてみる。動く。ヽ(=´▽`=)ノ

masaru-sasaki.sakura.ne.jp

macでsinatraインストールするまでめも。

まずはhomebrewいれる。

brew.sh

次にrubyをいれる。とりあえず2.4.1で。(2.4.3とか2.5.0でもいいかも。)

qiita.com

うまく入らないのでここを見る。

qiita.com

 やっとこさsinatraのターン。

qiita.com

で、myapp.rbにhello world描いて実行。

ruby myapp.rb

とりあえず動く。で、何するか。。