반응형

전자기 유도 방식으로 통신하는 NFC나 RFID는 이제 일상생활에 흔히 사용되는 통신이다.

 

  RFID NFC
사용 주파수 125kHz~2.45GHz 13.56MHz
연결범위 ~100m ~10cm
통신 단방향 양방향

RFID와 NFC의 차이

 

NFC는 양방향 통신이 가능하므로 태그와 리더가 통합될 수 있지만 RFID는 태그와 리더가 분리 되어있다. 또, RFID는 장거리 통신이 가능하고, NFC는 암호화가 가능해 보안성이 높다는 특징 때문에 NFC는 모바일 기기 등 개인 단말기에 자주 사용되는 반면, RFID는 개인뿐 아니라 물류 등 각종 산업에서 활발하게 이용되고 있다.

 

이렇게 우리 생활에 편리함을 더해주는 NFC와 RFID 태그를 쉽게 읽고 복사하는 방법을 알아보자.

 

스마트 카드 키 머신(?)이라고 한다. 중국어로 정신 없이 적혀 있지만 아래 주파수 대역의 통신 방식을 읽고 쓸 수 있는걸 알 수 있다.

125kHz, 250kHz, 375kHz, 500kHz, 625khz, 750kHz, 875kHz, 1000kHZ, 13.56MHz

 

태그 복사기의 각 부분 설명.

 

상자를 열어 보자. 바로 태그 복사기가 보인다.

 

몇몇 기능키와 숫자키가 있다.

 

 

뒷면에는 읽고 쓸 카드를 고정할 수 있는 밴드와 배터리(AAA) 커버가 있다. USB 전원으로도 동작 가능하다.

 

간단한 매뉴얼과 USB 케이블도 함께 들어있다.

 

같이 구매한 125kHz, 13.56MHz 태그들.

 

사용 방법은 영상으로 확인하자.

 

 

ISO/IEC 14443 Type A 규격의 태그라도 위 영상의 방법으로 복사 되지 않는 경우가 있다. (NFC라는 설명이 붙은 태그) Google Play Store에서 MIFARE Classic Tool을 설치하고 WRITE TAG를 선택한다.

 

Clone UID - OPEN THE CLONE UID TOOL을 선택한다.

 

원본 태그를 스캔하면 자동으로 UID가 입력된다. GENERATE BLOCK 0 AND CLONE UID 버튼을 누른다.

 

Waiting for magic tag(2nd gen) 메세지가 나오면 복사될 태그를 스캔한다.

 

 

복사가 완료되면 검증을 위해 다시 스캔한다.

 

문제없이 복사되었다면 Successfully cloned UID 메세지가 나오고 복사 과정이 다시 진행된다.

 

반응형
Posted by J-sean
:
반응형

아래 링크의 제품과 거의 같지만 조금 더 심플한 MP3 디코더다. 


2020/11/29 - [Review] - MP3 Decoder with Built-in Amplifier Module


스위치나 터미널이 달려 있지 않아 그냥 사용하기 불편할 수 있지만 원하는 형태의 MP3 플레이어를 만들기는 더 좋다.


Micro SD카드 슬롯만 있는 작고 간단한 형태의 MP3 디코더 보드.


Pin assignment


1. V33REG DVDD33: Digital power 3.3V.

2. V50REG VMCU/BAT: Lithium battery input, 3.3V~5V.

3. VSSREG DVSS: Digital ground.

4. DACOL DACL: Left audio signal output.

5. VCOM: Center audio signal Vref, please plug 1uF capacitor voltage.

6. DACOR DACR: Right channel audio output.

7. LINEIN_R LineInR + L: LineIn left + right input.

8. IOA4: AD-key buttons.

9. IOA3 FMCLK: If IOA3 pull-down resistor to ground, IOA3 will output clock signal to the outside Hanging FM radio IC. If IOA3 is vacant, FM radio IC will take their 32768Hz crystal.

10. IOA2 Mute: Mute the external amplifier.

11. DM: USB of DM.

12. DP: USB of DP.

13. IOA0: IO-key/LED.

(1) Plug-in LED light: Output “1” represents the lit LED.

(2) IO-key1.

(3) Options are used to define the key mode.

14. IOB1 SD_CLK: Clock output T card/SD card. SD_DET: detecting whether there is an SD card is inserted, to read “0” on behalf of insertion. Please connect a 3.3KΩ resistance.

15. IOB0 SD_CMD: T card/SD card command and response. I2C_CLK: I2C the clock; the external EEPROM, and FM.

16. IOB2 SD_DAT: data input T card/SD Card/output. I2C_DAT: I2C of data; and external EEPROM FM.


3.7V 배터리나 (USB)5V 전원으로 작동 가능하며 Micro SD 카드에 듣고 싶은 음악을 담아 플레이 할 수 있다. 위 다이어그램과 같이 스위치와 4Ω 3W 스피커를 연결해 사용한다.


■ Previous/Volume--: 이전 곡 / 길게 누르면(약 2초) 소리 작게

■ Play/Stop: 플레이 / 정지

■ Next/Volume++: 다음 곡 / 길게 누르면 소리 크게


반응형
Posted by J-sean
:

Bluetooth Amplifier XY-P15W

Review 2020. 11. 30. 19:13 |
반응형

간단히 블루투스 스피커를 만들 수 있는 블루투스 앰프 XY-P15W.


Voltage: 8~24 DCV

Bluetooth Version: 5.0

Connect Distance: 15 meters

Output Mode: Stereo


Reverse Power Protection

Short Circuit Protection

Thermal protection


케이스도 같이 구매했다.


예쁘게 조립해 준다. 아래 다이얼을 돌리면 볼륨 조절이 가능하고 누르면 Play/Pause 모드가 전환된다.



전원을 연결하면 바로 동작하고 블루투스에 검색된다.


XY-P15W를 연결한다.


8V 이상의 전압에서 안정적이지만 높은 볼륨이 아니라면(4Ω 3W X 2EA) 5V에서도 작동은 한다(볼륨을 높이면 소리가 끊어진다). 더 큰 스피커에 연결한다면 8V 이상의 전원을 공급하자.


반응형
Posted by J-sean
:
반응형

컴퓨터에 사운드 카드가 기본 사양이 되기 전, 큰 결심을 하고서야 구입할 수 있었던 옥소리나 사운드 블래스터등의 고가 사운드 카드를 컴퓨터에 설치하고 듣던 게임 음악은 정말 놀라웠다. 삐~ 소리만 나는 줄 알았던 컴퓨터에서 이런 소리가 날 수 있다니..


옥소리(사운드 카드)를 광고하는 옥소리(배우)


옥소리 사운드 카드


그리고는 MP3로 대표되는 여러가지 오디오 압축 포맷 덕분에 작은 용량으로도 많은 노래를 저장할 수 있게 되었고 컴퓨터가 아닌 작은 기기에서도 노래를 재생할 수 있는 플레이어들이 등장하기 시작했다. 물론 저렴한 가격은 아니었던거 같다.


최초의 MP3 플레이어


지금은 중국에서 한국까지 오는 배송비를 포함해도 천원이 조금 넘는 저렴한 가격에 MP3 디코더를 구입해 직접 간단한 MP3 플레이어를 만들 수 있다.



앰프가 포함된 MP3 디코더


알리 익스프레스에서는 Nondestructive Decoder Board 라는 이름으로 판매되고 있다. 왜 nondestructive 일까.. 무슨 의미로 nondestructive를 붙인걸까.. 알 수가 없다.


어쨌든 USB 2.0 type A, Micro 5 pin, 또는 3.7~5.5V 배터리로 작동 가능하며 Micro SD 카드에 듣고 싶은 음악을 담아 플레이 할 수 있다. 3.5mm 이어폰 잭을 연결하거나 4Ω 3W의 스피커를 연결해 듣는다.


■ Prev/V--: 이전 곡 / 길게 누르면(약 2초) 소리 작게

■ Next/V++: 다음 곡 / 길게 누르면 소리 크게

■ P/P/Mode: 플레이 / 정지, 길게 누르면 U Disk, Micro SD 카드 전환 (U Disk는 5V 전원 필요)

■ Repeat: 1곡 반복 / 전체 반복


U Disk를 지원한다고 적혀 있어서 FAT, FAT32 파일 시스템으로 포맷한 USB 드라이브에 음악음 담아 시도해 봤지만 플레이 되지 않았다. Micro SD 카드는 문제없이 플레이 되었다.


간단한 MP3 플레이어가 필요한 경우 유용하게 사용할 수 있을거 같다.


※ 참고: 2020/12/09 - [Review] - MP3 Decoder with Built-in Amplifier Module (GPD2846A)


반응형
Posted by J-sean
:
반응형

Note(Banknote) Acceptor, Bill Acceptor 등으로 불리는 지폐 인식기는 보통 자판기, 동전 교환기, 오락실등에서 사용된다. 여러가가지 모델이 있지만 작동 원리는 대부분 비슷하다.

 

SAMDUCKSA의 SN401PK라는 모델의 지폐인식기다.

 

오른쪽 측면에 8개의 dip switch가 있다. 2번(천원당 pulse 2회), 7번(pulse length = 50ms) switch가 on 되어 있다.

 

왼쪽 측면에는 입력(Vcc, GND), 출력(Pulse)등을 위한 10개의 터미널(Molex Microblade Connector)이 있다. 보통 2, 8(9), 10번 터미널을 사용한다.

 

위에도 6개의 터미널은 있는데 설명이 없다. 제조사에서 사용하는 터미널이 아닐까 싶다.

 

 

 

 

지폐 투입구. 지폐를 밀어 넣으면 자동으로 인식 된다.

 

지폐 투입구를 열어보면 LED, 센서, 타이밍 밸트, 롤러등이 있다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
const int NOTEPIN = 4;
unsigned long duration;
int count = 0;
 
void setup() {
  pinMode(NOTEPIN , INPUT_PULLUP);
  // 플로팅 방지 풀업 저항.
  Serial.begin(9600);
  Serial.println("Counter Ready");
}
 
void loop() {
  duration = pulseIn(NOTEPIN, LOW, 200000); // microsecond  
  // NOTEPIN은 풀업 저항을 사용하므로 LOW 펄스를 읽어야한다.
  // 0.2초 대기. 0.1초는 너무 짧아 Pulse signal을 제대로 받지 못한다.
  // 빠른 지폐인식을 위해 최소한의 대기시간을 지정.
  
  //Serial.println(duration); // 약 50ms의 펄스가 발생한다.
  
  // Condition: Pulse = 50 ms(millisecond), 1 time/1,000 won
  // 지폐 인식기의 Pulse 신뢰도가 100%가 아니면 1,000원당 1회의 Pulse로 세팅시
  // 1,000원짜리는 인식 하지 못하거나 다른 지폐도 잘못 인식하는 경우가 발생한다.
  // 그런 경우 1,000원당 2회 이상의 Pulse로 세팅하고 코드를 적절히 수정하면 오류에
  // 대응할 수 있다. 하지만 지폐 인식 속도는 느려진다.
  if (duration > 40000// 40 millisecond = 40000 microsecond
                        // SN401PK는 약50ms의 시그널을 발생한다.
  {
    count++;
  } else if (count > 0 && duration < 10000) {
    Serial.print("Signal count: ");
    Serial.println(count);
    
    if (count == 1) {
      Serial.println("1천원");
    } else if (count == 5) {
      Serial.println("5천원");
    } else if (count == 10) {
      Serial.println("1만원");
    } else {
      Serial.println("Error");
    }
    
    count = 0;
  }
 
  delay(10);
}
 

 

소스 코드

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
const int NOTEPIN = 4;
const int COINPIN = 2;
const int RELAYPIN = 6;
 
unsigned long duration = 0;
int billCount = 0;
int coinCount = 0;
 
int pulse=0,temp,target=0,index=0;
char sen;
unsigned long int timer;
 
 
void setup() {
    pinMode(NOTEPIN, INPUT_PULLUP);
 
    pinMode(COINPIN, INPUT_PULLUP);
    sen=digitalRead(COINPIN);
 
    pinMode(RELAYPIN, OUTPUT);
    digitalWrite(RELAYPIN, HIGH);
 
    Serial.begin(9600);
    Serial.println("Counter Ready");
}
 
void SpitCoin(int target) {
 
    index=0;
    timer=millis();
    temp=target;
    if((temp>0)&(temp<=100)){
      pulse=0;
      target=temp;
      Serial.println("Give me "+String(target)+" coins");
      digitalWrite(RELAYPIN,LOW);
    }
  while(true)
  {
    sen=(sen<<1)|digitalRead(COINPIN);
    sen&=0x03;
    if(sen==1&(digitalRead(RELAYPIN)==LOW))
    {
      timer=millis();
      pulse++;
      Serial.println("Count "+String(pulse));
      if(pulse>=target)
      {
        digitalWrite(RELAYPIN,HIGH);
        Serial.println("You get "+String(pulse)+"/"+String(target)+" coins");
        pulse=0;
        target=0;
 
        break;
      }
    }
 
    if((digitalRead(RELAYPIN)==LOW)&(millis()-timer>2000))
    {
      digitalWrite(RELAYPIN,HIGH);
      Serial.println("Out of coin. You get "+String(pulse)+"/"+String(target)+" coins");
      pulse=0;
      target=0;
 
      break;
    }
  }
}
 
void loop() {
    duration = pulseIn(NOTEPIN, LOW, 200000); // microsecond
    if (duration > 40000// microsecond (40 millisecond = 40000 microsecond)
    {
        billCount++;
    }
    else if (billCount > 0 && duration < 10000) {
        Serial.print("Signal count: ");
        Serial.println(billCount);
        
        if (billCount < 5) {            
            Serial.println("1,000 won");
            SpitCoin(2);
        }
        else if (billCount < 15) {
            Serial.println("5,000 won");
            SpitCoin(10);
        }
        else if (billCount < 25) {
            Serial.println("10,000 won");
            SpitCoin(20);
        }
        else {
            Serial.println("Error");
        }
 
        billCount = 0;
    }
 
  delay(10);
}
 

 

소스 코드

 

반응형
Posted by J-sean
:
반응형

거실에 큰 TV가 한 대 있지만 식탁과는 마주보지 않고 거의 90도의 각도를 이루고 있기 때문에 식사 중에는 거의 볼 수 가 없다. 밥을 오래 먹는건 아니지만 혼자 밥만 먹기 심심할 때나 가족들과 먹더라도 TV가 보고 싶을때 볼 수 있었으면 좋겠다.


그래서 구매 했다. 샤오미 미 TV 스틱과 10.1인치 모니터.


샤오미 미 TV 스틱.


안드로이드 TV다. 실제 TV 방송을 볼 수는 없다.


미 TV 스틱 외 리모콘, 어댑터, 케이블이 들어 있다.


필요 없는 설명서. 버린다.



따로 구매한 10.1인치 HD TFT LCD 모니터. 박스가 좀 구겨져서 도착 했다.


전원은 12V를 사용하고 2개의 스피커가 달려 있다. 이것 저것 많이 지원한다고 한다.


박스 안에 같이 들어 있는 구성품. 중국 먼지가 많이 따라 왔다. 닦아 주자.


HDMI 외 D-sub, USB등 여러가지 포트가 있다.



그런데 화살표 부분을 잡아 당기면 벗겨져야 할 보호 필름이 벗겨 지지 않는다. 살펴보니 필름이 모니터 케이스에 꽉 물려 있다. 짜증...


분해하기 싫었지만 어쩔 수 없었다. 내부는 평범하다. 흔히 볼 수 있는 AD 보드와 스피커가 보인다.


어쨌든 보호 필름을 제거 했다.


12V 어댑터는 US 타입이므로 KR 타입 플러그를 사용 한다.



모니터 전원을 켜 봤다. 별 이상은 없어 보인다.


샤오미 미 TV 스틱을 연결하고 간단한 세팅 진행 후 유튜브를 실행 한다.


화면 전체적으로 푸른 빛이 돌긴 하지만.. 뭐.. 잘 나온다.


거실 식탁에 올려 놓고 밥먹을 때 봐야겠다.


반응형
Posted by J-sean
:
반응형

평소 별 필요 없지만 언젠가는 유용하게 쓰일 수 도 있는 제품, 소형 전동 드라이버다. 데스크탑 컴퓨터 조립 시 사용하는 약간 큰 제품도 있지만 샤오미 와우스틱은 별, 삼각형등 특별한 모양의 비트가 포함되어 있기 때문에 노트북이나 핸드폰등 소형 기기 분해, 조립 시 유용하게 사용 할 수 있다.


일반 전동 드라이버


알리에서 구매한 샤오미 전동 드라이버. 전용 파우치와 함께 도착 했다.

가격은 $15.57.


한글 빼고 다 있다.


전동 드라이버와 비트 세트가 각각 포장 되어 있다.



깔끔하게 포장 되어 있다.


Specification

 Material

 Aluminum Alloy

 Battery

 2 x AAA 1.5V

 Speed

 150r/min

 Torque

 0.12/3N.m

Bit Size

(4x28mm)

PH000/ PH0/ PH2

SL1.0/ SL2.0/ SL3.0

T5/ T6/ T8 

P2/ P5/ P6 

H2.5/ H3 

SQ0/ 3.0/ Y2.5/ U3.0

 Weight

 Apprex. 240g


드라이버의 뒷부분을 열고 건전지를 넣는다.


앞부분엔 비트를 넣는다. 드라이버 바디에 있는 검정색 스위치의 아래를 누르면 시계방향으로, 위를 누르면 반시계 방향으로 회전 한다.



스펙에는 18pcs라고 적혀 있었지만 20개의 비트가 들어 있다.



비트를 장착 완료.


이렇게 전용 파우치에 보관 한다.


비트가 작기 때문에 크고 단단히 잠겨 있는 나사를 풀거나 조이기는 어렵지만 소형기기 분해, 조립시 사용하기에 충분한 힘을 낸다.


반응형
Posted by J-sean
:
반응형

보통 캡쳐 보드는 저렴한 제품도 10만원 정도이고 비싼건 30만원이 넘어 간다. 하지만 이 제품은 알리 익스프레스에서 배송비 포함 $14.26에 구매 가능 하다.


매뉴얼, 캡쳐 보드, 전원 케이블, USB 케이블이 포함되어 있다.


Specification:

Input & Loop out: 4K 30Hz

Video capture: 1080p 30Hz

HDMI

USB 2.0

Windows, Linux, macOS

VLC, OBS Studio, AMCap, and etc.

https://www.aliexpress.com/item/4001012071298.html?spm=a2g0s.9042311.0.0.35614c4dqqehTp


스트리밍 PC와 연결할 USB 2.0 포트와 Loop out용 Output 포트

(USB 3.0도 판매 한다)



전원 연결용 5VDC 단자와 소스 입력용 Input 포트


케이블 연결 다이어그램


실제 연결 사진


테스트는 영상으로 확인 하자.


반응형
Posted by J-sean
: