- 필요한 재료
- 자력계 란 무엇이며 어떻게 작동합니까?
- HMC5883L 센서 모듈의 작동 방식
- 회로도
- Digital Compass 용 PCB 제작
- PCB 조립
- Arduino 프로그래밍
인간의 뇌는 우리가 지구상에서 지배적 인 종이되도록 돕는 복잡한 구조 층으로 구성되어 있습니다. 예를 들어, 뇌의 내 후각 피질은 익숙하지 않은 곳을 쉽게 탐색 할 수 있도록 방향 감각을 제공 할 수 있습니다. 그러나 우리와 달리 로봇과 무인 Ariel 차량은 새로운 지형과 풍경에서 자율적으로 기동 할 수 있도록 이러한 방향 감각을 얻으려면 무언가가 필요합니다. 로봇마다 다른 유형의 센서를 사용하여이를 수행하지만 일반적으로 사용되는 센서는 자력계로, 로봇이 현재 향하고있는 지리적 방향을 로봇에 알릴 수 있습니다. 이것은 로봇이 방향을 감지하는 데 도움이 될뿐만 아니라 미리 정의 된 방향과 천사로 돌아가는데도 도움이됩니다.
센서가 지리적으로 북쪽, 남쪽, 동쪽 및 서쪽을 표시 할 수 있기 때문에 우리 인간도 필요할 때 사용할 수 있습니다. 따라서이 기사에서는 자력계 센서가 작동하는 방식과이를 Arduino와 같은 마이크로 컨트롤러와 인터페이스하는 방법 을 이해하려고합니다. 여기 에서는 북쪽 방향을 가리키는 LED를 켜서 방향을 찾는 데 도움이되는 멋진 디지털 나침반을 만들 것입니다. 이 디지털 나침반은 PCBGOGO의 PCB에 깔끔하게 제작 되었기 때문에 다음에 야생에 나갈 때 휴대 할 수 있고 집으로 돌아가는 길을 찾기 위해이 물건을 사용하는 것만으로도 길을 잃었 으면합니다. 시작하자.
필요한 재료
- Arduino Pro mini
- HMC5883L 자력계 센서
- LED 조명-8Nos
- 470Ohm 저항기 – 8Nos
- 배럴 잭
- PCBgogo와 같은 신뢰할 수있는 PCB 제조업체
- 미니 용 FTDI 프로그래머
- PC / 노트북
자력계 란 무엇이며 어떻게 작동합니까?
회로에 들어가기 전에 자력계와 작동 방식에 대해 조금 이해해 봅시다. 이름에서 알 수 있듯이 Magneto라는 용어는 공중에서 피아노를 연주하여 금속을 제어 할 수있는 놀라운 돌연변이를 의미하지 않습니다. 오! 하지만 나는 그가 멋진 남자를 좋아합니다.
자력계는 실제로 지구의 자극을 감지하고 그에 따라 방향을 가리킬 수있는 장비 입니다. 우리 모두는 지구가 북극과 남극을 가진 거대한 구형 자석 조각이라는 것을 알고 있습니다. 그리고 그것 때문에 자기장이 있습니다. 자력계는이 자기장을 감지하고 자기장의 방향에 따라 우리가 향하고있는 방향을 감지 할 수 있습니다.
HMC5883L 센서 모듈의 작동 방식
HMC5883L 수있는 Being 자력계 센서는 같은 일을한다. Honeywell의 HMC5883L IC가 있습니다. 이 IC에는 x, y 및 z 축으로 배열 된 내부에 3 개의 자기 저항 재료가 있습니다. 이러한 물질을 통해 흐르는 전류의 양은 지구의 자기장에 민감합니다. 따라서 이러한 물질을 통해 흐르는 전류의 변화를 측정함으로써 지구 자기장의 변화를 감지 할 수 있습니다. 변화가 자기장을 흡수하면 I2C 프로토콜을 통해 마이크로 컨트롤러 또는 프로세서와 같은 임베디드 컨트롤러로 값을 전송할 수 있습니다.
센서는 자기장을 감지하여 작동하므로 금속이 근처에 있으면 출력 값에 큰 영향을 미칩니다. 이 동작을 활용하여 이러한 센서를 금속 탐지기로 사용할 수도 있습니다. 자석의 강한 자기장이 센서에 잘못된 값을 트리거 할 수 있으므로이 센서 근처에 자석을 가져 오지 않도록주의해야합니다.
HMC5883L과 QMC5883L의 차이점
많은 초보자에게 이러한 센서를 둘러싼 일반적인 혼란이 있습니다. 이는 일부 공급 업체 (실제로 대부분)가 Honeywell의 원래 HMC5883L 대신 QMC5883L 센서를 판매하기 때문입니다. QMC5883L이 HMC5883L 모듈보다 훨씬 저렴하기 때문입니다. 슬픈 부분은이 두 센서의 작동이 약간 다르며 동일한 코드를 둘 다 사용할 수 없다는 것입니다. 두 센서의 I2C 주소가 동일하지 않기 때문입니다. 이 튜토리얼에서 제공하는 코드 는 일반적으로 사용 가능한 센서 모듈 인 QMC5883L에서만 작동 합니다.
가지고있는 센서 모델을 확인하려면 IC 자체를 자세히 살펴보고 그 위에 쓰여진 내용을 읽어야합니다. 이 같은 것을 작성하는 경우 L883 다음은 HMC58836L이며이 같은 것을 작성하는 경우 DA5883 다음은 QMC5883L IC이다. 두 모듈 모두 쉽게 이해하기 위해 아래 그림에 나와 있습니다.
회로도
이 Arduino 기반 Digital Compass 의 회로 는 매우 간단합니다. HMC5883L 센서를 Arduino와 인터페이스하고 Arduino Pro mini의 GPIO 핀에 8 개의 LED를 연결하기 만하면됩니다. 전체 회로도가 아래에 나와 있습니다.
센서 모듈에서 5 핀 갖는 우리는 연속 모드에서 센서를 조작하기 때문에 그중 DRDY (데이터 준비)은 본 프로젝트에서 사용되지 않고있다. Vcc 및 접지 핀은 Arduino 보드에서 5V로 모듈에 전원을 공급하는 데 사용됩니다. SCL 및 SDA는 Arduino Pro mini의 A4 및 A5 I2C 핀에 각각 연결된 I2C 통신 버스 라인입니다. 모듈 자체에는 라인에 풀 하이 저항이 있으므로 외부에서 추가 할 필요가 없습니다.
방향을 나타 내기 위해 우리는 470 Ohms의 전류 제한 저항을 통해 Arduino의 GPIO 핀에 연결된 8 개의 LED를 모두 사용했습니다. Complete 회로는 배럴 잭을 통해 9V 배터리로 전원이 공급됩니다. 이 9V는 Arduino의 온보드 레귤레이터를 사용하여 5V로 조정되는 Arduino의 Vin 핀에 직접 제공됩니다. 이 5V는 센서와 Arduino에도 전원을 공급하는 데 사용됩니다.
Digital Compass 용 PCB 제작
회로의 아이디어는 8 개의 LED를 원형으로 배치하여 각 LED가 각각 북쪽, 북동쪽, 동쪽, 남동쪽, 남쪽, 남서쪽, 서쪽 및 북서쪽을 가리 키도록하는 것입니다. 따라서 브레드 보드 나 퍼프 보드에 깔끔하게 정리하는 것은 쉽지 않습니다. 이 회로를위한 PCB를 개발하면 더 깔끔하고 사용하기 쉬워 보일 것입니다. 그래서 PCB 설계 소프트웨어를 열고 LED와 저항을 깔끔한 원형 패턴으로 배치하고 트랙을 연결하여 연결을 형성했습니다. 내 디자인은 완성되었을 때 아래와 같이 보입니다. 아래 링크에서 Gerber 파일을 다운로드 할 수도 있습니다.
- Digital Compass PCB 용 Gerber 파일 다운로드
Arduino가 PCB의 하단에 있기를 원하기 때문에 PCB 상단의 모양을 망치지 않도록 양면 보드로 설계했습니다. 양면 PCB에 대해 높은 비용을 지불해야 할까 걱정이 되시면 계속해서 좋은 소식을 전해드립니다.
이제 디자인이 준비되었으므로 제작할 때입니다. PCB 작업을 수행하는 것은 매우 쉽습니다. 아래 단계를 따르십시오.
1 단계: www.pcbgogo.com에 접속하여 처음이라면 가입하십시오. 그런 다음 PCB 프로토 타입 탭에서 PCB 치수, 레이어 수 및 필요한 PCB 수를 입력합니다. 내 PCB는 80cm × 80cm이므로 탭은 다음과 같습니다.
2 단계: 지금 견적 버튼 을 클릭하여 진행 합니다. 트랙 간격 등을 사용하는 재료와 같이 필요한 경우 몇 가지 추가 매개 변수를 설정할 수있는 페이지로 이동합니다. 그러나 대부분 기본값은 정상적으로 작동합니다. 여기서 고려해야 할 유일한 것은 가격과 시간입니다. 보시다시피 빌드 시간은 2 ~ 3 일이며 PSB 비용은 5 달러입니다. 그런 다음 요구 사항에 따라 선호하는 배송 방법을 선택할 수 있습니다.
3 단계: 마지막 단계는 Gerber 파일을 업로드하고 결제를 진행하는 것입니다. 프로세스가 원활하게 진행되도록 PCBGOGO는 결제를 진행하기 전에 Gerber 파일이 유효한지 확인합니다. 이렇게하면 PCB가 제작에 친숙하고 약속 된대로 도달 할 수 있음을 확인할 수 있습니다.
PCB 조립
보드를 주문한 후 며칠 후에 깔끔하게 잘 포장 된 상자에 택배를 보내어 항상 PCB의 품질이 훌륭했습니다. 당신이 판단 할 수 있도록 아래 보드 사진을 몇 장 공유하고 있습니다.
납땜 봉을 켜고 보드 조립을 시작했습니다. 풋 프린트, 패드, 비아 및 실크 스크린이 완벽한 모양과 크기이므로 보드를 조립하는 데 문제가 없었습니다. 상자 포장을 풀고 10 분만에 보드가 준비되었습니다.
납땜 후 보드의 몇 가지 사진이 아래에 나와 있습니다.
Arduino 프로그래밍
이제 하드웨어가 준비되었으므로 Arduino 보드에 업로드해야하는 프로그램을 살펴 보겠습니다. 코드의 목적은 QMC5883L 자력계 센서에서 데이터 를 읽고도 (0 ~ 360)로 변환하는 것 입니다. 정도를 알면 특정 방향을 가리키는 LED를 켜야합니다. 이 프로그램에서 사용한 방향은 북쪽입니다. 그래서 당신이 어디에 있든 상관없이 당신의 보드에는 오직 하나의 LED 만 빛날 것이고 LED의 방향은 NORTH 방향을 가리킬 것 입니다. 나중에 계산할 수있는 다른 방향은 한 방향으로 알려져 있습니다.
이 디지털 나침반 프로젝트 의 전체 코드 는이 페이지 끝에서 찾을 수 있습니다. 라이브러리를 포함한 후 보드에 직접 업로드 할 수 있으며 준비가 완료되었습니다. 하지만 알고 싶다면