Elecrowのレーザーカットサービス注文用メモ

Elecrowのアクリルカット木材カット注文時の自分用メモです。
<利用例>
Ibanez TS9 TUBE SCREAMER アクリル製ケース & 木製ケース
Fuzz Face 積層アクリル筐体
※2020年9月時点での情報です。仕様変更にご注意ください。


    【特徴・注意点】
  • 使えるデータの種類はEPS、DXF、CDR、PDF(木材カットのページにはDWGも記載あり)
  • 注文数1で5枚分となる
  • PCBのように面付というものはなく、指定寸法内にいくらでも図を入れてよい(ただし、細かいパーツが多いと忘れられるかも)
  • 注文ページに記載されている厚みより実物は0.1~0.25mm程度薄い
  • レーザーの幅(太さ)は約0.2mm→線の両側0.1mmが余計に削られることになるのでそれを計算に入れて設計
  • 木材カットの場合、プラモデルのように一部切り取られていない状態で配送される(毎回この状態なのかどうかは不明)


【KiCadでのデータ作成】
基板上のジャック等の位置に合わせてアクリルのデータを作成したい場合、元のPCBデータ(.kicad_pcb)をコピーして編集します。ただしカーソルがグリッド単位になるので、円の接線等作図しにくい場面が出てきます。

20_259_3el.png
Edge.Cutsレイヤーに作図します。線が途切れているかどうかをDRCでチェックできます。3D表示もできますが、複数枚分のデータがあると穴部分が表示されないようです。Cmts.Userレイヤーに提出ファイル用の寸法線を入れます。その他の寸法線や下書き等はDwgs.Userレイヤーに描いています。

(1) DXFファイル出力
20_259_4els.png
プロットの出力フォーマットをDXFとし、Edge.Cutsレイヤーのみ出力します。DXFオプションはチェックを外し、Export units: をmmにします。

(2) PDFファイル出力
Elecrowの注文ページに外形寸法を伝えるよう記載があります。TXTファイルでもよいらしいですが、念のため寸法線が入ったPDFファイルを準備することにしています。
20_259_5elss.png
印刷からEdge.Cuts、Cmts.Userレイヤーを選択し、Microsoft Print to PDFでPDFファイルを出力します。

(1) (2) で出力したDXFファイルとPDFファイルをまとめてzipに圧縮し、注文ページでアップロードします。



【Jw_cadでのデータ作成】
私は昔から製図関係はJw_cadというフリーソフトを使っています(今は他に使いやすいフリーソフトがあるかもしれません)。このソフトでDXFファイルをそのまま編集します。

20_259_6elsj.png
印刷→Microsoft Print to PDFで外形寸法を入れたPDFファイルを出力します。このPDFファイルとDXFファイル本体をまとめてzipに圧縮し、注文ページでアップロードします。

デシベル計算の高速化

前回記事でべき乗(pow)や対数(log)の演算は遅いということが分かりました。デジタルエフェクターではデシベル計算をよく使うため、これらの演算を高速化することを考えます。(以下、C言語を前提とした記述となっています。)



< dB x → 電圧比(倍率) y >

通常の計算は y = powf( 10.0f, x / 20.0f ) ですが、500サイクル程度かかります。そこでテーブル引きという方法を使います。あらかじめ表(ルックアップテーブル)を用意しておき、そこから値を取り出して計算する方法です。

今回テーブルは-128dB~+128dBの範囲で1dBステップとしました。小数点以下の部分については線形補間(2点間を一次関数に当てはめる)で近似します。コードは下記の通りです。dbtovolTable.hファイルはGitHubに置いています。

#include "dbtovolTable.h"

float dbtovol(float x)
{
x += 128.0f;
uint8_t xi = (uint8_t) x;
return dbtormsTable[xi] + (dbtormsTable[xi+1] - dbtormsTable[xi]) * (x - xi);
}

xiにはuint8_tの0~255が入るので、テーブル配列のサイズは257にすればよいです。もちろん入力値が範囲外の場合は正しい値が出力されません。誤差は最大0.015dBで、実用には充分だと思います。サイクル数は約30となり大幅に高速化できました。



< 電圧比(倍率) x → dB y >

通常の計算は y = 20.0f * log10f( x ) ですが、230サイクル程度かかります。こちらもテーブル引きを利用したいところですが、等比級数的なテーブルを準備する方法がわかりませんでした。膨大な量の配列を準備している例もありますが、メモリが少ない場合には無理があります。

今回はsqrtf演算(=1/2乗)が高速なことを利用することにしました。以下のように式を変形します。
log x
= log ( x1/2 )2
= 2 log x1/2
・・・
= 32 log x1/32
あとは x1/32 とdBの関係を三次関数で近似します。コードは以下の通りです。

#include <math.h>

float voltodb(float x)
{
x = sqrtf(sqrtf(sqrtf(sqrtf(sqrtf(x)))));
return - 559.57399f + 995.83468f * x
- 591.85129f * x * x + 155.60596f * x * x * x;
}

使用範囲は0.00001(-100dB)~1(0dB) 推奨、最大誤差0.016dBです。電圧比というより音量変換を見据えた範囲としています。範囲を超えると誤差が増えますが、極端に外れた値にはなりません。サイクル数は約90で、効果はそれなりでした。

他にもいろいろな方法を試したのですが、条件分岐を入れると意外とサイクル数が増えてしまう等、なかなかこれといった方法が見つかりませんでした。場合によっては通常のlog10fを使うことになりそうです。

Raspberry Pi でのCS4272使用方法

Raspberry Pi(RPi)で音声信号向けのADCとDACを使う場合、最も手軽に使用できるICはWM8731だと思います。今回はさらなるノイズ低減を期待して、CS4272というICを試しました。



CS4272を使ったオーディオカードにTeensy Super Audio Board(SAB)というものがあり、KiCAD files and some test codeから回路図や使用ガイド等がダウンロードできます。このSABのデバイスドライバを利用するわけですが、カーネルビルドというやや面倒な作業をしないとドライバを使えるようになりません。→「rpi-update」コマンドで簡単に利用できるようになったようです。(2018年5月21日追記)

RPi公式サイト記事Kernel buildingのLocal buildingの通りに操作を行っていきます。

[1]
$ sudo apt-get install git bc
↓SAB用のカーネルソースをコピー
$ git clone --depth=1 https://github.com/whollender/linux

[2a] RPi 1, 0 の場合
$ cd linux
$ KERNEL=kernel
$ make bcmrpi_defconfig
↓ビルド開始、RPi0で14時間程度かかる
$ make zImage modules dtbs

[2b] RPi 2, 3 の場合
$ cd linux
$ KERNEL=kernel7
$ make bcm2709_defconfig
↓ビルド開始、RPi3で3時間程度かかる
$ make -j4 zImage modules dtbs

[3]
$ sudo make modules_install
$ sudo cp arch/arm/boot/dts/*.dtb /boot/
$ sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
$ sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
$ sudo cp arch/arm/boot/zImage /boot/$KERNEL.img

そして再起動すると/boot/overlaysディレクトリにsuperaudioboard.dtboというファイルができています。続いて/boot/config.txtを編集します。
$ sudo nano /boot/config.txt
 以下の2行の#を外す
  #dtparam=i2c_arm=on
  #dtparam=i2s=on
 最後に以下の1行を追加
  dtoverlay=superaudioboard

再起動後、lsmodコマンドでSABドライバのモジュールが確認できる…はずですが、読み込まれていないことがわかります。モジュール情報をmodinfoコマンドで確認するとvermagic:4.9.59+という記載が出てきますが、ビルドしたカーネルのバージョン(リリース番号)をuname -r コマンドで確認すると4.9.80+となっています。強制的にモジュールを読み込ませようとしてみます。
$ sudo modprobe -f snd-soc-superaudioboard
Exec format errorというのが出てきてダメでした。

バージョン情報を編集して再ビルドするという方法を行います。参考ページ→Linux 4 Tegraにv4l2loopbackモジュールを入れる時の注意点
$ sudo nano linux/include/generated/utsrelease.h
#define UTS_RELEASE "4.9.80+"という記載があるので、4.9.80+を4.9.59+(RPi 2, 3の場合は4.9.80-v7+→4.9.59-v7+)へ変更した後、もう一度[2a](または[2b])と[3]をやり直し再起動します。一度ビルドしているので早く終わります(未確認ですが、RPi3で1時間未満)。
※後から確認すると、再ビルド後のバージョンは4.9.80+でした。どこか記憶違いをしている部分があるかもしれません。



RPiとCS4272との接続は下図です。SABと同じように24.576MHzの水晶発振子と39pFのコンデンサを使います。
22_216_1cs.png

aplay -l コマンドでサウンドカードの確認ができます。接続が正しければ、CS4272がSABとして認識されているはずです。音量等の調節はalsamixerコマンドでできます(hキーでヘルプ表示)。今後特に問題が出てこなければ、自作デジタルエフェクターRasPd3に採用する予定です。→FILT+とVCOMピンが0Vになるという問題が解決できず、ボツになりました。(2018年5月7日追記)

タグ : RaspberryPi 

Raspberry Pi zero 設定メモ

SSH接続とファイル操作ができるようになるまでの自分用設定メモです(太字表記はコマンド)。
Raspberry Pi 3, Raspberry Pi zero W の設定メモはこちら
※Raspberry PiやRaspbianの仕様変更によりうまくいかなくなる可能性があります。



Raspbian Stretch Liteダウンロード、Win32 Disk ImagerでmicroSDカードに書き込み
/boot/ ディレクトリに ssh という名前のファイルを置いておく



データ通信できるmicroUSBケーブルをPCと接続するだけで通信可能(OTGモード)
WindowsからTera Termで raspberrypi.local にSSH接続
参考ページ→ノートパソコンだけで raspberry pi zero をセットアップする方法

<インターネット接続>
参考ページ→SSH接続で raspberry pi zero の設定を行う1(インターネットに接続する)

<IPアドレス固定>
$ ifconfig (usb0 の inet addr: を確認)
$ sudo nano /etc/dhcpcd.conf
以下を追記(割り当てられたアドレスが192.168.137.99の場合)
interface usb0
static ip_address=192.168.137.99
static routers=192.168.137.1
static domain_name_servers=192.168.137.1

再起動後、WindowsからTera Termで固定したIPアドレスにSSH接続



<アップデート>
$ sudo apt-get update
$ sudo apt-get upgrade

<初期設定>
$ sudo raspi-config
Change User Password
Boot Options > Desktop / CLI > Console Autologin
Localisation Options > Change Timezone > asia > tokyo
※Pure Dataと相性が悪そうなので日本語表示しない

<ルートパスワード変更>
$ sudo passwd root

<Samba設定>
$ sudo apt-get install samba
$ sudo nano /etc/samba/smb.conf
Samba設定参考サイト→ツール・ラボ » 第14回 Raspberry Piのファイルサーバ設定をする
※プログラムが実行可能なように、ファイルのパーミッションも0775にしておく
Sambaのユーザ登録
$ sudo smbpasswd -a pi

Windowsのエクスプローラーのアドレスに\\raspberrypi\piを入力、ユーザー名・パスワードを入れアクセス

タグ : RaspberryPi 

Raspberry Pi 3, Raspberry Pi zero W 設定メモ

SSH接続とファイル操作ができるようになるまでの自分用設定メモです(太字表記はコマンド)。
Raspberry Pi zero の設定メモはこちら
※Raspberry PiやRaspbianの仕様変更によりうまくいかなくなる可能性があります。最終更新:2018年2月1日



Raspbian Stretch Liteダウンロード、Win32 Disk ImagerでmicroSDカードに書き込み
/boot/ ディレクトリに ssh という名前のファイルと、以下の内容の wpa_supplicant.conf という無線LAN設定ファイルを置いておく
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="SSID"
psk="password"
}

起動後、WindowsからTera Termで raspberrypi.local にSSH接続(ユーザー名 pi パスワード raspberry)

無線LANのパスワードをわかりにくくする場合、以下の操作をしておく
$ sudo bash -c 'wpa_passphrase "SSID" "password" >> /etc/wpa_supplicant/wpa_supplicant.conf'
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
すでに記載がある「network={…}」や「#psk="password"」を消去

<IPアドレス固定>
$ sudo nano /etc/dhcpcd.conf
以下を追記(ルーターのアドレスが192.168.10.1の場合)
interface wlan0
static ip_address=192.168.10.99/24
static routers=192.168.10.1
static domain_name_servers=192.168.10.1

再起動後、WindowsからTera Termで固定したIPアドレスにSSH接続
※コピー・ペーストはAltキー
※キーボードの↑↓キーで前に使ったコマンドを呼び出せて便利
自動ログイン参考サイト→自動ログインする方法



<アップデート>
$ sudo apt-get update
$ sudo apt-get upgrade

<初期設定>
$ sudo raspi-config
Change User Password
Boot Options > Desktop / CLI > Console Autologin
Localisation Options > Change Timezone > asia > tokyo
※Pure Dataと相性が悪そうなので日本語表示しない

<ルートパスワード変更>
$ sudo passwd root

<Samba設定>
$ sudo apt-get install samba
$ sudo nano /etc/samba/smb.conf
Samba設定参考サイト→ツール・ラボ » 第14回 Raspberry Piのファイルサーバ設定をする
※プログラムが実行可能なように、ファイルのパーミッションも0775にしておく
Sambaのユーザ登録
$ sudo smbpasswd -a pi

Windowsのエクスプローラーのアドレスに\\raspberrypi\piを入力、ユーザー名・パスワードを入れアクセス

タグ : RaspberryPi 

管理人

管理人

自己紹介のページ
記事一覧
Twitter
GitHub
BOOTH

ブログ内検索
カテゴリー
タグ

自作エフェクター   回路図   レイアウト   歪み   マイコン   周波数特性   PureData   波形・倍音   RaspberryPi   エレキギター   アンプ   歪率   エフェクター自作方法   エレキベース   真空管   コーラス   ピックアップ   静音ギター   ヘッドフォンアンプ   擬似ギター出力   市販エフェクター   アコースティックギター   ブースター   コンデンサ   ソロギター   ポールピース   イコライザー   コンプレッサー   ビブラート   フェイザー   トレモロ   TAB譜   ディレイ   DIY_Layout_Creator   ワウ   オートワウ   バッファー   

最近の記事
最新コメント
Twitter
RSS
メールフォーム
当ブログに関するお問い合わせはこちらからお願いします。 ※FAQ(よくある質問)もお読みください。

お名前
メールアドレス
件名
本文

アクセスカウンター