ザ☆マニアックス

~マニアックだろうと思い込んでいる趣味について~

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- ] | スポンサー広告

arduino電界強度計のスケッチ

プログラム解らないんですが、
arduinoでAD8307を使って電界強度計を作ったので、スケッチを放り込んでみます。
ネットでスケッチ探したんですが、なかなか見当らないので、
色々と参考にしながら作ったんですが、VSWRの表示が出来ていないので、
コメントして動作させていません。
ちなみに、VSWRは3D無線クラブのリターンロスブリッジを作って表示させたいと
思っているけど、セットボタン押してもセットされない気がするので、
現状放置状態っす。

回路図は書いてないです。
時間を見付けてツイッターにでもアップします。
アカウントは@osamouです。

変な所があれば指摘もらいたいと思っておるよ。
あわよくば、VSWRの表示のよい方法とかも。。。

powermeter.ino
---------------------------------------------
#include <LiquidCrystal.h>
#include "math.h"

//int SetSwitch = 5; //vswrセット用スイッチ"D5"
int ModeSwitch = 4; //モード切り替え用スイッチ"D4"

//int SET = 0; //セット出来ないでコメント
int MODE = 0; //モード初期値0

LiquidCrystal lcd(7,8,9,10,11,12); //LCD設定 それぞれの環境に合せて

void setup() {

//ピンをインプットにする。セットはコメント
// pinMode(SetSwitch, INPUT);
pinMode(ModeSwitch, INPUT);

lcd.clear();
lcd.begin(16,2);
delay (500);

}

void loop() {
float dat = analogRead(0); // AD8307 spec. Slope 25mV/dB, intercept -84dBm
double dbm, dbu, mv, mw, rloss, vswr;
static double oloss;
char dbm_ch[16];
char dbu_ch[16];
char mv_ch[16];
char mw_ch[16];
char vswr_ch[16];

//ここで計算させる
dbm = dat * (2.5 / 1024.0) / 0.025 - 84.0 - 6.0;
dbu = dbm + 107.0;
mv = pow(10.0, (dbu / 20.0)) * 0.001;
mw = mv * mv / 50.0 * 0.001;
delay (50);

//表示桁数と小数点以下の表示
dtostrf(dbm,5,3,dbm_ch);
dtostrf(dbu,5,3,dbu_ch);
dtostrf(mv,5,3,mv_ch);
dtostrf(mw,13,12,mw_ch);

//セットをコメント
/* if (digitalRead (SetSwitch) == 1) {
* SET = SET + 1;
* if (SET >= 3) SET = 0;
* }
*
* lcd.setCursor(0,0);
*
* if (SET == 0) {
* lcd.print("NotSet ");
* }
*
* else if (SET == 1) {
* oloss = dbu;
* lcd.print("Set");
* }
*
* else if (SET == 2) {
* rloss = dbu - oloss;
* vswr = (pow(10,(rloss / 20)) + 1) / (pow(10,(rloss / 20)) - 1);
* delay (50);
* lcd.print("VSWR=");
* dtostrf(vswr,5,3,vswr_ch);
* lcd.print(vswr_ch);
* }
*/

//MODEスイッチdbm→dbu→mv→mw切り替え
if (digitalRead (ModeSwitch) == 1) {
MODE = MODE + 1;
if (MODE >= 4) MODE = 0;
}

lcd.setCursor(0,1);

if (MODE == 0) {
lcd.print(dbm_ch);
lcd.print("dBm");
}

else if (MODE == 1) {
  lcd.print(dbu_ch);
lcd.print("dBu");
}

else if (MODE == 2) {
lcd.print(mv_ch);
lcd.print("mV");
}

else if (MODE == 3) {
lcd.print(mw_ch);
lcd.print("mW");
}
//mw表示のあとゴミが残るので500msでLCDをクリア
delay (500);
lcd.clear();
}
---------------------------------------------
スポンサーサイト
[ 2017/05/24 ] | arduino | CM(0) | TB(0)

archphileにした。

arch linux→rune audio→archphileにした。
音飛びがなかなかおさまらないので、いろいろネットを探した。

microSDをclass10に替える。
USBにルートを移動する。

今迄、何度かカーネルパニック発生したんで、USBにルートを移すことにした。

方法

SDにいつも通りdd
USBのパーティション分け(1にvfat、2にext4を5Gくらい)←重要
SDからUSBの第2パーティションにルートをdd
dd if=/dev/mmcblk0p2 of=/dev/sda2
resize2fs /dev/sda2
電源断
SDから/bootをPCへコピー
SD formatterだっけでフォーマット
PCから/bootをコビーして戻す
config.txtの編集
mmcblk0p2からsda2へrootを変更
らずばい起動
いつもどおりの設定
終了

MPDのmusicフォルダへリンク貼る設定する

winマシンでもUSBとSD認識するから取扱が楽になる。
ルートをUSBに移しているからSDが壊れても安心。
class4のSDでも音飛びしない!!←今のところ24bit/96kのwavまでは確認。
[ 2015/07/06 ] | raspberry pi | CM(0) | TB(0)

rasberry piにarch linux入れてpcm5102から音出した2※間違いを見つけたが直さない。

この前の続き

mpd.serviceを/usr/lib/systemd/system/mpd.serviceから/usr/lib/systemd/user/へコピーする。

ここから結構はまったことだが、

systemctl enable mpd.service

してからのrebootはエラーになる。
一度、mpd実行してokなら、/var/log/mpd.logの権限を変更する。

chmod 666 /var/log/mpd.log

この後rebootでokだった。

これよりその他もろもろの設定。
USBをオートマウントするため下記を/etc/fstabの最後へ追記。
/dev/sda1 /mnt/MPD/usb vfat defaults 0 0

gpio.serviceを作成し、
/usr/lib/systemd/system/mpd.serviceと/usr/lib/systemd/user/へコピー(どっちかはシンボリックでも良いかも)
gpio.luaとgpio.shを~へ作成。

systemctl enable gpio.service
reboot

/etc/locale.genの編集。
ja_JP.UTF-8とen_US.UTF-8をアンコメント
locale-genを実行
/etc/locale.confを作成

日本時間へ変更
timedatectl set-timezone Asia/Tokyo

つづく
[ 2015/06/24 ] | raspberry pi | CM(0) | TB(0)

arch linuxでPCM5102音だした※間違っているので後から直す←放置決定

メモっとかないと忘れるんでメモ

今まで、raspberrypiに音楽専用のOSを入れていたんだけど
何かと安定しないんで、最初から設定していくことにした。

とりあえず今まで入れたものは
volumio、runeaudio、moode、archphile
ポータブル環境なので、起動が早いことを条件とすると、
runeaudio、archphile
の2択だった。

ベストだったのが、runeaudioのカスタムバージョンmpdが最新(0.19.6-1)で、リサンプラーでSOXが使用されていた。
cuiがアップデートされて、mpdが起動しなくなったので、使用するのをあきらめた。
その後、archphileを使っていたが、2度のカーネルパニックでげんなりした。
聴こうと思うときに聞けないつらさったらなかった。

2つともarch linuxベースだったんで、arch linuxを導入することに決めた。
とりあえずpacman -Syuする。リブート。
必要なソフトヲインストール。
pacman -Sy vim gcc alsa-utils luajit mpd mpc

設定
/etc/modules-load.d/raspberrypi.conf
bcm2708-rng
#snd-bcm2835
snd_soc_pcm5102a
snd_soc_hifiberry_dac

/etc/asound.conf
pcm.!default {
type hw card 0
}
ctl.!default {
type hw card 0
}

/etc/mpd.conf
zeroconf_enabled "yes"
zeroconf_name "mpd"
decoder {
plugin "ffmpeg"
enabled "yes"
}
audio_output {
name "hifiberryDac"
type "alsa"
device "hw:0,0"
mixer_type "hardware"
mixer_control "Master"
mixer_device "hw:0"
mixer_index "0"
auto_resample "no"
auto_format "no"
enabled "yes"
}

/boot/config.txt
最後に追記
dtoverlay=hifiberry-dac

あと、いろいろやっているとファイルが足りなくなるのでパーティションを増強。
fdisk /dev/mmcblk0
2を消して5Gぐらいで作成。最初デフォルト最後+5G
2を消すと一緒に5も消えるので5も再作成。デフォルトでよい
resize2fs /dev/mmcblk0p5
mmcblk0p2だとはじかれるので、0p5にかける。

あと、やらないといけないのはmpdの自動起動
Luajitでシャットダウンボタンの作成
USBの自動マウント
基本的な設定(時刻設定、ローケーロ等)
SSHはDHCPで適当に割り当てられて、うちの環境じゃ変動しないようなので放置。

今日のところはここまで
なんかここまでやって、ファイル容量がいっぱいで、archphileパニクッたんじゃないかと思った。
[ 2015/06/23 ] | raspberry pi | CM(0) | TB(0)

なんというか。お久しぶりです。

ひさしぶりにブログでもかいてみるかと急に思いたちました。
この長い間に色々と環境の変化ががらりと変わってしまいました。

そんなたいしたことではないのですが、職場の環境が変わりました。
それから、家も引越しました。

それぐらいなのですが、ああ、そうだ!
生まれて初めて買ったmacを処分しました。
なごりおしかったので、キーボードとトラックボールは邪魔にならないので、
記念に取り外して保管しています。

あとは、アンドロイド端末を買った事と、電子ブック"kobo touch"を買ったことです。
アンドロイドで、うまく文章書けるかと思ったけどなかなかうまくいきません。
入力していると、変換途中で思いがけない動作をする。
アルファベット入力すると急に変なところへジャンプしてしまったり、
漢字変換するときも、思いがけないところで確定なったり。。。
とりあえず、回避策として、ターミナル起動してそこでvimのskk.vimだと上手いぐあいに
変換出来る。

もう、vimで入力して貼り付けるやりかたで文字入力は決りかと思います。
今日はこのへんできりあげますm(__)m
[ 2013/05/27 ] | ひとりごと | CM(1) | TB(0)
プロフィール

おさもう

Author:おさもう
出身&住まい
沖縄在住

趣味などに関する事を書いていきます。

カウンター

ブログランキング

これは素晴らしいと思った方はクリックしてください。


そうでない人もクルックしてね。

amazon検索

ブログ内検索

裏ブログの入口
青空文庫

手作りアンプの会HP

集まれ塩ビ管スピーカー

ブロとも申請フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。