how to code something このページをアンテナに追加 RSSフィード

2018-11-07

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

一枚のNICに2つのIPDHCPと固定ローカル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 inet dhcp

auto eno1:1
iface eno1:1 inet static
address 192.168.11.100
netmask 255.255.255.0
gateway 192.168.11.1
dns-nameservers 192.168.11.1 8.8.8.8 8.8.4.4

$ sudo service networking restart

eno1      Link encap:Ethernet  HWaddr 94:c6:91:a1:20:c0
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::96c6:91ff:fea1:20c0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5711 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3193 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1806586 (1.8 MB)  TX bytes:879618 (879.6 KB)
          Interrupt:16 Memory:dc200000-dc220000

eno1:1    Link encap:Ethernet  HWaddr 94:c6:91:a1:20:c0
          inet addr:192.168.11.100  Bcast:192.168.11.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:16 Memory:dc200000-dc220000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2795 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2795 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:14880688 (14.8 MB)  TX bytes:14880688 (14.8 MB)

wlp58s0   Link encap:Ethernet  HWaddr 14:4f:8a:05:ea:97
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


2. macの設定
Ethernet Adapterの設定
f:id:seinzumtode:20181107075139p:image
インターネット共有の設定
f:id:seinzumtode:20181107075135p:image

3. 確認
SSHで入ってsudo apt updateができることを確認→OK
SSHでX Forwardingを有効にし、Vivadoが立ち上がることを確認→OK

2018-11-06

起動時に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,file_mode=0755,dir_mode=0755,iocharset=utf8,uid=1000,gid=1000,forceuid,forcegid,_netdev 0 0

2018-10-31

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

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

Debugでビルドした場合

f:id:seinzumtode:20181031102210p:image

Releaseでビルドした場合

f:id:seinzumtode:20181031102207p:image

2018-09-18

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, count_pulse, RISING);
}

void loop()
{
  pulse = 0;
  interrupts();
  delay(1000);
  noInterrupts();

  Serial.print("Pulses per second: ");
  Serial.println(pulse);
}

void count_pulse()
{
  pulse++;
}

2018-09-16

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

配線

Arduino UNOのRX->Pro miniのRX
Arduino UNOTX->Pro miniのTX
Arduino UNOのRESET->Pro miniのDTR
Arduino UNOの5V->Pro miniのVCC
Arduino UNOGND->Pro miniのGND

ボードをArduino Pro mini 5V (16MHz)にして、書き込みを行う
(ポートはArduino UNO選択する)

OpencvのminArearectで回転角度の計算

f:id:seinzumtode:20180916165243p:image

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

        let dx = mx - cx
        let dy = my - cy

        let newAngle 
        let pattern
        if(robot.size.width < robot.size.height){
          if(angle>=-45){
            if(dy<0){
              pattern = 1
              newAngle = Math.abs(angle)
            } else {
              pattern = 5
              newAngle = Math.abs(angle) + 180
            }
          } else {
            if(dx<0){
              pattern = 2
              newAngle = Math.abs(angle)
            } else {
              pattern = 6
              newAngle = Math.abs(angle) + 180
            }
          }
        } else {
          if(angle>=-45){
            if(dy>0){
              pattern = 3
              newAngle = Math.abs(angle) + 90
            } else {
              pattern = 7
              newAngle = Math.abs(angle) + 270
            }
          } else {
            if(dy>0){
              pattern = 4
              newAngle = Math.abs(angle) + 90
            } else {
              pattern = 8
              newAngle = Math.abs(angle) + 270
            }
          }
        }