HMI-1動作確認ツールとAPR9600
- 2018/05/27
- 01:29
通常、MH-1を組み立てた際に、
・PTTが動作するか?
・マイク音声はDINに出力されているか?
・DINから入ってきた音声でSPが動作しているか?
などを確認します。
ということで、HMI-1側でPTTを押して話をして、PTTを話すと、オウム返しで音声が返ってくる装置を作りました。
超簡易版です、
・最低限のAPR9600回路
・7.9ドルで作ってもらえるプロトタイプ基板活用
グランド忘れ、録音再生間のディレー忘れ、などトラブルありましたが、とりあえず、完成、、
左ががHMI-1、右側が今回作った物、、
今回は、少し遊んでみました。。。
自動車とかに、青色LEDをつけて、ドレスアップしている方がおられますよね。。
真似して、基板の背面に青色LEDを付けてみました。 写真では分かりにくいですが、青色が反射してきれいです。


最近流行りのアクリル板サンドイッチで仕上げます。


さて、
今回はAPR9600の扱いに慣れたいという動機もあり、それらを満たすことができました。
・ SP端子を使わずAF出力から信号を取り出す方法
・ /RE、M0、BUSY等のマイコン制御
・ 録音制裁の制御タイミング
APR9600でCQマシンを作る際など、これらの情報があれば簡単に完成できると思います。
回路図

スケッチ
・PTTが動作するか?
・マイク音声はDINに出力されているか?
・DINから入ってきた音声でSPが動作しているか?
などを確認します。
ということで、HMI-1側でPTTを押して話をして、PTTを話すと、オウム返しで音声が返ってくる装置を作りました。
超簡易版です、
・最低限のAPR9600回路
・7.9ドルで作ってもらえるプロトタイプ基板活用
グランド忘れ、録音再生間のディレー忘れ、などトラブルありましたが、とりあえず、完成、、
左ががHMI-1、右側が今回作った物、、
今回は、少し遊んでみました。。。
自動車とかに、青色LEDをつけて、ドレスアップしている方がおられますよね。。
真似して、基板の背面に青色LEDを付けてみました。 写真では分かりにくいですが、青色が反射してきれいです。


最近流行りのアクリル板サンドイッチで仕上げます。


さて、
今回はAPR9600の扱いに慣れたいという動機もあり、それらを満たすことができました。
・ SP端子を使わずAF出力から信号を取り出す方法
・ /RE、M0、BUSY等のマイコン制御
・ 録音制裁の制御タイミング
APR9600でCQマシンを作る際など、これらの情報があれば簡単に完成できると思います。
回路図

スケッチ
//
// HMI-1 TEST SYSTEM
//
int LED_RED = 13;
int LED_GREEN = 10;
int SW1 = 15;
int SW2 = 14;
int SW1_STAT = 1; // SW ON = 0
int SW2_STAT = 1; // SW ON = 0
int PTT = 4;
int PTT_STAT = 0; // PTT ON = 1
int PREV_PTT_STAT = 0;
int RX = 9;
int RX_STAT = 1; // RX ON = 0
int REC_PLAY_SW1 = 7;
int REC_PLAY_SW1_STAT = 1; // 0=REC 1=PLAY
int START_REC_PLAY = 2;
int START_REC_PLAY_STAT = 1; // 0=RECORDING
int BUSY = 8;
int BUSY_STAT = 1;
int TX_RX_STAT = 0; //RX = 0
int PREV_SW2_STAT = 1;
void setup() {
Serial.begin(115200);
pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(SW1, INPUT_PULLUP);
pinMode(SW2, INPUT_PULLUP);
pinMode(PTT, INPUT_PULLUP);
pinMode(RX, OUTPUT);
pinMode(REC_PLAY_SW1, OUTPUT);
pinMode(START_REC_PLAY, OUTPUT);
digitalWrite(RX, HIGH);
digitalWrite(REC_PLAY_SW1, HIGH);
digitalWrite(START_REC_PLAY, HIGH);
pinMode(BUSY, INPUT_PULLUP);
}
void loop() {
PTT_STAT = digitalRead(PTT);
if (PTT_STAT == 1 && PREV_PTT_STAT == 0) { // -------------------------------- PUSH PTT NEWLY ---------------------------------------
delay(100);
TX_RX_STAT = 1;
// REC START //
digitalWrite(REC_PLAY_SW1, LOW); // REC=0
delay(100);
digitalWrite(START_REC_PLAY, LOW); // START
digitalWrite(LED_GREEN, HIGH);
/////////////
Serial.println(" PTT ON ");
}
if (PTT_STAT == 0 && PREV_PTT_STAT == 1) { // -------------------------------- UN PUSH PTT NEWLY ---------------------------------------
delay(100);
TX_RX_STAT = 0;
// REC END //
digitalWrite(START_REC_PLAY, HIGH); // END
digitalWrite(LED_GREEN, LOW);
/////////////
delay(1000);
// PLAY START //
digitalWrite(REC_PLAY_SW1, HIGH); //PLAY=1
delay(500);
digitalWrite(START_REC_PLAY, LOW); // START PUSH
delay(500);
digitalWrite(START_REC_PLAY, HIGH); // START PUSH
digitalWrite(LED_RED, HIGH);
digitalWrite(RX, LOW); // RX = 0
while (digitalRead(BUSY) == 0) { // PLAY BY END OF MEM
}
digitalWrite(LED_RED, LOW);
digitalWrite(RX, HIGH);
Serial.println(" PTT OFF ");
}
PREV_PTT_STAT = PTT_STAT;
SW1_STAT = digitalRead(SW1);
if (SW1_STAT == 0 ) { // --------------------------------------------------- SW1 TO PLAY ---------------------------------------------
delay(100);
TX_RX_STAT = 0;
// PLAY START //
digitalWrite(REC_PLAY_SW1, HIGH); //PLAY=1
delay(500);
digitalWrite(START_REC_PLAY, LOW); // START PUSH
delay(500);
digitalWrite(START_REC_PLAY, HIGH); // START PUSH
digitalWrite(LED_RED, HIGH);
digitalWrite(RX, LOW); // RX = 0
while (digitalRead(BUSY) == 0) { // PLAY BY END OF MEM
}
digitalWrite(LED_RED, LOW);
digitalWrite(RX, HIGH);
Serial.println(" PTT OFF ");
}
SW2_STAT = digitalRead(SW2);
// Data_Export_For_Debug();
}
void Data_Export_For_Debug(void)
{
Serial.print(" SW1_STAT= ");
Serial.print(SW1_STAT);
Serial.print(" SW2_STAT= ");
Serial.print(SW2_STAT);
Serial.print(" PTT_STAT= ");
Serial.print(PTT_STAT);
Serial.print(" RX_STAT= ");
Serial.print(RX_STAT);
Serial.print(" BUSY_STAT= ");
Serial.print(BUSY_STAT);
Serial.println("");
}
- 関連記事
-
-
アナログポート増設 2018/09/01
-
ポータブル無線機に取り付けるロッドアンテナ検討② 2018/08/12
-
BPF備忘録 2018/07/21
-
TA7358PでAM変調 2018/07/14
-
NJM2594VでAM変調② 2018/07/12
-
NJM2594VでAM変調① 2018/07/11
-
MC1496D 2018/06/28
-
HMI-1動作確認ツールとAPR9600 2018/05/27
-
ArduinoのEEPROMを試してみる 2018/02/26
-
12bit (4096P/R) 磁気式エンコーダAS5601 2017/12/19
-
Fusionから基板が届きました 2017/12/17
-
Si5351 自分用備忘録 2017/11/05
-
スピーカー穴の実験 2017/09/20
-
ステッピングモーターで遊ぶ(備忘録) 2017/08/17
-
IOポート1個で複数スイッチ入力 2017/05/03
-