제조공정
| × | 1 | ||||
| × | 1 |
|
내가 찾은 것은 Arduino Mega와 NEO-6M GPS 모듈의 인터페이스에 대한 튜토리얼이 없어서 하나 만들기로 결정했다는 것입니다. 네가 좋아하길 바래!
필요한 구성 요소
하드웨어
<울>소프트웨어
<울>프로젝트의 총 비용은 $60입니다.
GPS 정보
GPS란 무엇인가요?
GPS(Global Positioning System)는 최소 24개의 위성으로 구성된 위성 기반 항법 시스템입니다. GPS는 가입비나 설정 비용 없이 하루 24시간 전 세계 어디에서나 어떤 기상 조건에서도 작동합니다.
GPS 작동 방식
GPS 위성은 정확한 궤도에서 하루에 두 번 지구를 선회합니다. 각 위성은 GPS 장치가 위성의 정확한 위치를 디코딩하고 계산할 수 있도록 하는 고유한 신호 및 궤도 매개변수를 전송합니다. GPS 수신기는 이 정보와 삼각 측량을 사용하여 사용자의 정확한 위치를 계산합니다. 기본적으로 GPS 수신기는 전송된 신호를 수신하는 데 걸리는 시간만큼 각 위성까지의 거리를 측정합니다. 몇 개의 위성에서 거리를 더 측정하면 수신기가 사용자의 위치를 파악하고 표시할 수 있습니다.
2차원 위치(위도 및 경도)를 계산하고 움직임을 추적하려면 GPS 수신기가 최소 3개의 위성 신호에 잠겨 있어야 합니다. 4개 이상의 위성이 있는 경우 수신기는 3차원 위치(위도, 경도 및 고도)를 결정할 수 있습니다. 일반적으로 GPS 수신기는 8개 이상의 위성을 추적하지만 시간과 지구상의 위치에 따라 다릅니다. 위치가 결정되면 GPS 장치는 다음과 같은 기타 정보를 계산할 수 있습니다.
<울>신호란 무엇입니까
GPS 위성은 최소 2개의 저전력 무선 신호를 전송합니다. 신호는 가시선을 따라 이동하므로 구름, 유리 및 플라스틱을 통과하지만 건물 및 산과 같은 대부분의 단단한 물체는 통과하지 않습니다. 그러나 최신 수신기는 더 민감하고 일반적으로 집을 통해 추적할 수 있습니다. GPS 신호에는 3가지 유형의 정보가 포함됩니다.
<울>아이디입니다. 정보를 전송하는 위성을 식별하는 코드. 기기의 위성 페이지에서 어떤 위성에서 신호를 받고 있는지 확인할 수 있습니다.
<울>천체력 데이터는 위성의 위치를 결정하는 데 필요하며 위성의 상태, 현재 날짜 및 시간에 대한 중요한 정보를 제공합니다.
<울>연감 데이터는 GPS 수신기에 하루 중 언제든지 각 GPS 위성이 있어야 하는 위치를 알려주고 해당 위성 및 시스템의 다른 모든 위성에 대한 궤도 정보를 보여줍니다.
Neo-6M GPS 모듈
NEO-6M GPS 모듈은 아래 그림과 같습니다. 외부 안테나와 함께 제공되며 헤더 핀은 제공되지 않습니다. 그래서 납땜을 해야 합니다.
NEO-6M GPS 모듈 개요 <울>
모듈의 핵심은 u-blox의 NEO-6M GPS 칩입니다. 50개 채널에서 최대 22개의 위성을 추적할 수 있으며 45mA 공급 전류만 소비하면서 업계 최고 수준의 감도(예:-161dB 추적)를 달성합니다. u-blox 6 포지셔닝 엔진은 또한 1초 미만의 TTFF(Time-To-First-Fix)를 자랑합니다. 칩이 제공하는 최고의 기능 중 하나는 절전 모드(PSM)입니다. 수신기의 일부를 선택적으로 켜고 끌 수 있어 시스템 전력 소비를 줄일 수 있습니다. 이는 모듈의 전력 소비를 단 11mA로 크게 줄여 GPS 손목시계와 같은 전력에 민감한 애플리케이션에 적합합니다. NEO-6M GPS 칩에 필요한 데이터 핀은 "0.1" 피치 헤더로 나뉩니다. 여기에는 UART를 통해 마이크로 컨트롤러와 통신하는 데 필요한 핀이 포함됩니다.
참고 :- 모듈은 4800bps에서 230400bps까지의 전송 속도를 지원하며 기본 전송 속도는 9600입니다.
위치 수정 LED 표시기
NEO-6M GPS 모듈에는 위치 수정 상태를 나타내는 LED가 있습니다. 상태에 따라 다양한 속도로 깜박입니다.
<울>NEO-6M 칩의 작동 전압은 2.7~3.6V입니다. 그러나 이 모듈은 MICREL의 MIC5205 초저드롭아웃 3V3 레귤레이터와 함께 제공됩니다. 로직 핀은 또한 5볼트를 허용하므로 로직 레벨 변환기를 사용하지 않고도 Arduino 또는 모든 5V 로직 마이크로컨트롤러에 쉽게 연결할 수 있습니다.
배터리 및 EEPROM
모듈에는 HK24C32 2선식 직렬 EEPROM이 장착되어 있습니다. 크기는 4KB이며 I2C를 통해 NEO-6M 칩에 연결됩니다. 이 모듈에는 슈퍼 커패시터 역할을 하는 충전식 버튼 배터리도 포함되어 있습니다.
배터리와 함께 EEPROM은 배터리 지원 RAM(BBR)을 유지하는 데 도움이 됩니다. BBR에는 시계 데이터, 최신 위치 데이터(GNSS 또는 비트 데이터) 및 모듈 구성이 포함됩니다. 그러나 영구적인 데이터 저장을 위한 것은 아닙니다.
배터리가 시계와 마지막 위치를 유지하므로 TTFF(최초 수정 시간)가 1초로 크게 줄어듭니다. 이것은 훨씬 더 빠른 위치 잠금을 허용합니다.
배터리가 없으면 GPS가 항상 콜드 스타트하므로 초기 GPS 잠금에 더 많은 시간이 걸립니다. 배터리는 전원이 인가되면 자동으로 충전되며 전원이 없을 때 최대 2주간 데이터를 유지합니다.
핀아웃
<울>
아두이노 메가
Arduino는 사용하기 쉬운 하드웨어 및 소프트웨어를 기반으로 하는 오픈 소스 전자 플랫폼입니다. Arduino 보드는 입력(센서의 빛, 버튼의 손가락 또는 Twitter 메시지)을 읽고 이를 출력으로 바꿀 수 있습니다(모터 활성화, LED 켜기, 온라인 게시). 보드의 마이크로컨트롤러에 일련의 지침을 전송하여 보드에 수행할 작업을 지시할 수 있습니다. 이를 위해 Arduino 프로그래밍 언어(Wiring 기반)와 Arduino 소프트웨어(IDE)를 기반으로 Processing을 사용합니다.
Arduino Mega 2560은 Atmega2560 기반의 마이크로컨트롤러 보드입니다.
<울>사양
핀아웃
핀 설명 <울>
아두이노 IDE
여기서는 이미 Arduino IDE를 설치했다고 가정합니다.
1. 아래에 제공된 필수 라이브러리를 다운로드하십시오.
TinyGPS 라이브러리
2. 다운로드 후. 압축을 풀고 C:\Users\...\Documents\Arduino\libraries 폴더로 이동하여 (-)가 없는지 확인하십시오.
3. Arduino IDE를 열고 프로그램 섹션에서 코드를 복사합니다.
4. 그런 다음 도구 ==> 보드 ==> 여기에서 보드 선택으로 이동하여 보드를 선택합니다. 여기에서 Arduino Mega 2560을 사용합니다.
5. 보드 선택 포트를 선택한 후 도구 ==> 포트
로 이동합니다.
6. 보드 및 포트 선택 후 업로드를 클릭합니다.
연결
Arduino MEGA ==> NEO-6M GPS
<울>Serial1 대신 Serial2 또는 Serial3을 사용할 수도 있습니다.
직렬 2 핀
<울>Serial3 핀
<울>
결과
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">
//핀 18 및 19로 연결#include섹션>//long lat,lon; // 위도와 경도를 위한 변수 생성 objectfloat lat,lon;TinyGPS gps; // GPS 생성 objectvoid setup(){Serial.begin(57600); // 연결 serialSerial.println("GPS 수신 신호:");Serial1.begin(9600); // GPS 센서 연결} void loop(){ while(Serial1.available()){ // GPS 데이터 확인 if(gps.encode(Serial1.read()))// GPS 데이터 인코딩 { gps.f_get_position(&lat ,&론); // 위도와 경도 구하기 Serial.print("Position:"); //위도 Serial.print("위도:"); Serial.print(lat,6); Serial.print(","); //경도 Serial.print("경도:"); Serial.println(lon,6); } }} /*//핀 16 및 17로 연결#include //long lat,lon; // 위도와 경도를 위한 변수 생성 objectfloat lat,lon;TinyGPS gps; // GPS 생성 objectvoid setup(){Serial.begin(57600); // 연결 serialSerial.println("GPS 수신 신호:");Serial2.begin(9600); // GPS 센서 연결} void loop(){ while(Serial2.available()){ // GPS 데이터 확인 if(gps.encode(Serial2.read()))// GPS 데이터 인코딩 { gps.f_get_position(&lat ,&론); // 위도와 경도 구하기 Serial.print("Position:"); //위도 Serial.print("위도:"); Serial.print(lat,6); Serial.print(","); //경도 Serial.print("경도:"); Serial.println(lon,6); } }}*//*//핀 14 및 15로 연결#include //long lat,lon; // 위도와 경도를 위한 변수 생성 objectfloat lat,lon;TinyGPS gps; // GPS 생성 objectvoid setup(){Serial.begin(57600); // 연결 serialSerial.println("GPS 수신 신호:");Serial3.begin(9600); // GPS 센서 연결} void loop(){ while(Serial3.available()){ // GPS 데이터 확인 if(gps.encode(Serial3.read()))// GPS 데이터 인코딩 { gps.f_get_position(&lat ,&론); // 위도와 경도 구하기 Serial.print("Position:"); //위도 Serial.print("위도:"); Serial.print(lat,6); Serial.print(","); //경도 Serial.print("경도:"); Serial.println(lon,6); } }}*/
제조공정
초, 분, 일, 월, 심지어 년을 포함하여 Arduino에서 시간을 추적하는 방법을 찾고 계십니까? 이 경우 RTC 모듈인 DS1307 Arduino가 필요합니다. 실시간 시계(RTC)는 시간을 추적하고 특정 시간에 작업을 수행하는 데 도움이 되는 장치입니다. 그러나 이것이 모든 회로에서 작동하려면 Arduino와 인터페이스해야 합니다. 다행히도 저희가 도와드리겠습니다. 이 기사에서는 DS1307을 RTC 모듈로 사용하고 이에 대한 모든 것을 배우고 Arduino 보드와 함께 사용하는 방법을 배우게 됩니다. DS1307 모
고정밀 온도 측정과 넓은 전압 범위로 정확한 온도 센서를 찾는 것은 쉽지 않습니다. 종종 초보자는 DS18B20을 이상적인 옵션으로 생각합니다. 그러나 그들은 MCP9808 센서의 모범적인 기능을 가진 사용하기 쉬운 센서를 간과하는 경향이 있습니다. https://depositphotos.com/325693808/stock-photo-digital-thermometer-temperature-sensor-ds18b20.html (디지털 온도 센서 DS18B20) 그렇다면 MCP9808 센서가 다른 센서 중에서 눈에 띄는 이유는