Агуулгын хүснэгт:
- Алхам 1: Ийгл ашиглан ПХБ -ийн дизайн
- Алхам 2: ПХБ -ийг гагнах
- Алхам 3: Програм хангамж … Функциональ байдал … үр дүн
- Алхам 4: 3D хэвлэсэн кейс … Эрэмбэлэх
- Алхам 5: Сайжруулах зүйлс …
Видео: OLED дэлгэцийн төслийн тусламжтайгаар GPS хяналт: 5 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Сайн байцгаана уу, энэ хурдан нийтлэлд би өөрийн төслийг хуваалцах болно: SAMD21J18 микроконтроллер ба SSD1306 OLED 128*64 дэлгэц бүхий ATGM332D GPS модуль, би Eagle Autodesk дээр тусгай ПХБ барьсан бөгөөд үүнийг Atmel studio 7.0 ба ASF4 ашиглан програмчилсан болно. Энэ нийтлэлд би энэ аялал, хэрэв та өөрөө үүнийг хийх сонирхолтой байгаа бол ашигласан файлуудаа хуваалцах болно.
Хэрэв та MCU/хөгжлийн самбараа Arduino ашиглан програмчилж байгаа бол энэ төсөл танд харьцангуй хялбар байх болно, гэхдээ энд би C хэл дээр суурилсан Atmel/Microchip -ээс ASF4 (Нарийвчилсан програм хангамжийн хүрээ 4) ашиглах бөгөөд танд санаа өгөх болно. USART асинхрон драйвер (Callback) ашиглан GPS NMEA мессежийг хэрхэн уншиж, ямар ч микро контроллер болон өөр платформтой хамт ашиглах боломжтой энгийн номын сангаар хангахын тулд мессежийг хүлээн авахын тулд ашиглаж буй драйвераа нэмж оруулаарай. GPS (NMEA мессеж).
Би энэ нийтлэлийг дараахь байдлаар хуваах болно.
- ПХБ -ийн дизайн.
- BOM та ПХБ -ийг угсрах хэрэгтэй
- Програм хангамж, кодыг өөрөө хурдан шалгаж, техник хангамж, програм хангамжийг шалгах.
- Эцэст нь хэлэхэд энэ төслийг сайжруулах зарим нэг чухал зүйл.
Та энэ төсөлтэй холбоотой бүх материалыг Github дээрээс олох болно (Энд)
Алхам 1: Ийгл ашиглан ПХБ -ийн дизайн
Энэхүү төсөл нь үндсэндээ ATGM332D GPS модульд суурилсан бөгөөд ашиглахад энгийн GPS ашиглахад идэвхгүй хэд хэдэн бүрэлдэхүүн хэсгүүд хэрэгтэй бөгөөд хэрэв бид модулийн үндсэн тэжээлийн эх үүсвэрийг унтраавал цаг/огноог хэмнэхийн тулд нөөц батерей нэмж болно.
мөн хэлхээнд байгаа бүх дохиог хянахын тулд би ATSAMD21J18B микроконтроллер, TQFP64 багцтай хамт явсан бөгөөд энэ нь 128КБ програмын санах ой, 32КБайт өгөгдлийн санах ойтой (мөн миний ажлын ширээний эргэн тойронд маш олон бий).
Энэ хэлхээ нь USB 5V эх үүсвэрээр тэжээгддэг бөгөөд USB нь виртуал COM порт (CDC USB) үүргийг гүйцэтгэх боломжтой бөгөөд хэрэв та төхөөрөмжтэй USB -ээр холбогдохыг хүсвэл кодыг нэмж болно.
Дэлгэцийн хувьд би SPI автобус бүхий SSD1306 0.96 'OLED дэлгэцийг сонгосон, энэ нь жижиг боловч миний хүссэн ПХБ -ийн хэмжээ, хавтангийн хэмжээ 100x31 мм.
Микроконтроллерыг програмчлах нь SWD програмистаар хийгддэг (би Atmel ICE ашигладаг) бөгөөд 1.27 мм 10p зүү толгойгоор холбоно.
Мөн би Fusion360 -ийг ашиглан самбарыг 3d хэлбэрээр харах боломжтой байсан бөгөөд та үүний зарим дүрсийг харж болно.
Алхам 2: ПХБ -ийг гагнах
Та өөрийн ПХБ -ээр стенил захиалах сонголт байна, стенил ашиглан самбар дээр гагнуурын оо түрхэх нь илүү хялбар болно, би бүрэлдэхүүн хэсгүүдийг хамтад нь гагнахдаа халуун хавтан ашигласан, халуун агаар ашиглах нь бас тохиромжтой боловч LED -ийг гагнахдаа болгоомжтой байгаарай. Тэд халуунд маш мэдрэмтгий байдаг.
Доод талыг гагнах нь арай хялбар байдаг, учир нь зөвхөн SWD зүү толгой ба нөөц батерейтай тул та гагнуурын төмрөөр гагнах боломжтой.
Хэлхээг USB тэжээлийн эх үүсвэрт холбохын өмнө богино холболт байгаа эсэхийг шалгаарай.
GPS антенаа холбож, холбогчийг зөв гагнах эсэхийг шалгаарай, би антенныг самбарын доод талд засав.
Алхам 3: Програм хангамж … Функциональ байдал … үр дүн
Програм хангамжийг 4 хэсэгт хуваах болно.
- USART нь ATGM332 GPS модультай холбогдох болно.
- OLED -тэй харилцах SPI.
- USB CDC.
- LED -ийг хянах GPIO
эхлээд USB холбогчийг хэлхээг асааж, дараа нь тууз кабелийг SWD холбогчоор холбоно уу.
Github -аас кодыг татаж авна уу (энд дарна уу).
Гео байршлыг авахын тулд танд NMEA-ийн 3 өөр мессежийн сонголт байна:
- GPGGA
- GPRMC
- GPGLL
Би GPRMC өгүүлбэрийг ашиглан байршил, цаг, огноог (цаг нь 0.0 GMT) олж авсан тул кодоос та дараахь зүйлийг олох болно.
GPRMC. Enable = 1;/*0, хэрэв энэ зурвас шаардлагагүй бол*/
GPGGA. Enable = 0;/*0, хэрэв энэ зурвас шаардлагагүй бол*/
GPGLL. Enable = 0;/*0, хэрэв энэ зурвас шаардлагагүй бол*/
Та тэдгээрийг бүгдийг нь идэвхжүүлж, уншиж, шаардлагатай өгөгдлийг авах боломжтой.
хүчинтэй GPRMC өгүүлбэр байгаа тохиолдолд theGPRMC. Ready 1 болно, та энэ өгүүлбэрт байгаа бүх өгөгдлийг авах боломжтой бол энэ өгүүлбэрт байгаа өгөгдлийг харахын тулд энэ холбоосыг шалгана уу.
Хэрэв Fix нь "А" бол энэ нь Байршил бэлэн байна гэсэн үг, хэрэв "V" бол байршил байхгүй байна гэсэн үг юм.
ATSAMD21 нь дотоод RTC -тэй болохыг анхаарна уу, гэхдээ энд би үүнийг ашигладаггүй, харин цаг, огноог GPS -ээс шууд ашигладаг тул хэрэв та CR1220 нөөц батерейг ашиглахыг хүсэхгүй байгаа бол USB тэжээлийн эх үүсвэрээ салгасны дараа та үүнийг хийх болно. Цаг/огноог алдах ба дараагийн удаа хэлхээг асаахад GPS -ийн хүчинтэй цаг/огнооны утгыг авах хүртэл дэлгэц дээрх цаг/огнооны талбар хоосон болно.
Дэлгэц нь танд GPS-ийн одоогийн байдлыг харуулах бөгөөд боломжтой болсны дараа Гео байршлыг харуулах боловч самбар дээр 3 LED байна.
- Ногоон LED нь PA06-д холбогдсон бөгөөд хэрэв зөв гео байршлын утга байвал анивчих болно.
- Улбар шар өнгийн LED нь PA07-д холбогдсон бөгөөд хүчин төгөлдөр Гео байршил байхгүй бол секундэд нэг удаа анивчих болно.
- Улаан LED нь GPS модулийн PPS зүүтэй холбогдсон бөгөөд Байршилтай холбоотой зөв дохио өгөхөд л анивчих болно.
Үр дүн
Энэ хэлхээ нь надтай маш сайн ажилласан, гео байршлыг GPS-ээс 20-30 секундын дотор гадаа, тэнгэр рүү, барилга байгууламжийн хооронд, самбарын доод талд антентай байсан ч хамаагүй харж болно.
Алхам 4: 3D хэвлэсэн кейс … Эрэмбэлэх
Би энэ хэлхээнд зориулж энгийн хайрцаг (илүү нарийвчлалтай эзэмшигч) бэлдсэн боловч одоо COVID-19 тахал болон түгжигдсэн байдлаас болж 3d принтер дээрээ хэвлэх боломжгүй байсан тул энэ хэсгийг stl ашиглан шинэчлэх болно. файл болон эзэмшигчийн зургийг бэлэн болмогц.
Алхам 5: Сайжруулах зүйлс …
- SWD холбогчийг програмисттай холбоход илүү хялбар байдаг тул дээд тал руу шилжүүлнэ.
- Лити батерейнаас хэлхээг тэжээхдээ би холбогчийг гагнах замаар хийсэн бөгөөд энэ нь сайн ажилладаг байсан бөгөөд шугаман (LDO) зохицуулагч нь Vdrop хязгаараас бага байвал хэлхээ ажиллахгүй байж магадгүй бол V уналтын хүчдэлтэй гэдгийг санаарай. зөв.
- хэрэглэгчийн товчлуурыг арай том болгосноор дарахад илүү хялбар болно.
- USB CDC кодыг нэмж оруулснаар та MAC/PC/linux -д зориулсан тусгай програмтай харилцах/зохиох боломжтой болно.
- GPS антенны хувьд би энэ төслийн идэвхтэй антеныг ашигласан бөгөөд идэвхгүй антен ашиглах нь AT2659 гэх мэт дуу чимээ багатай AM-ийг нэмж оруулах боломжтой (ATGM332 өгөгдлийн хүснэгт P.14 дээрх схемийг үзнэ үү).
- OLED 0.96 'SSD1306 -ийн хувьд 128*32 дэлгэцтэй микрочипийн албан ёсны номын сангийн кодыг 128*64 -тэй ажиллахын тулд өөрчлөхийн тулд ssd1306.c хаягаар орж кодоо өөрчлөх шаардлагатай (зургийг үзээрэй).
Зөвлөмж болгож буй:
ESP8266 NodeMCU ашиглан Google -ийн тусламжтайгаар хаалганы хяналт: 6 алхам
ESP8266 NodeMCU -ийг ашиглан Google -ийн тусламжтайгаар хаалганы хяналт: Энэ бол зааварчилгааны талаархи миний анхны төсөл бөгөөд хэрэв боломжтой бол сайжруулах зүйл байвал доор тайлбар бичнэ үү. Гол санаа нь хаалганы хяналтын самбар руу дохио илгээх явдал юм. Тиймээс командыг илгээж, хаах буухиа байх болно
Arduino заавар - Потенциометрийн тусламжтайгаар servo моторын хяналт: 5 алхам
Arduino заавар - Потенциометрийн тусламжтайгаар servo моторын хяналт: Энэхүү зааварчилгаа нь миний " Arduino: потенциометрээр серво моторыг хэрхэн удирдах вэ " Саяхан миний байршуулсан YouTube видео. Үүнийг үзэхийг танд зөвлөж байна. YouTube сувгаар зочлоорой
Arduino Yun ба Raspberry Pi -ийн тусламжтайгаар RFID хандалтын хяналт: 11 алхам
Arduino Yun, Raspberry Pi -тэй RFID хандалтын хяналт: Миний зааварчилгаанд тавтай морилно уу! Та програмчлах мастер түлхүүр ашиглахгүйгээр олон хэрэглэгчтэй байж болох RFID хандалтын хяналтын системийг онлайнаар хайсан уу? Хандалтыг хүмүүсийн нэрээр бүртгэх боломжтой систем үү? Та амархан нэмж болох систем
Arduino болон PWM фенүүдийн тусламжтайгаар температурын хяналт: 6 алхам (зурагтай)
Arduino ба PWM фенүүдийн тусламжтайгаар температурын хяналт: DIY сервер/сүлжээний тавиур хөргөх зориулалттай Arduino ба PWM фенүүд дээрх температурын хяналт Хэдхэн долоо хоногийн өмнө би сүлжээний төхөөрөмж, хэдэн сервер бүхий өлгүүр тохируулах шаардлагатай болсон. Тиймээс өвлийн хоорондох температурын хязгаар
Потенциометрийн тусламжтайгаар LED хяналт - FinalExam: 3 алхам
Потенциометрийн тусламжтайгаар LED хяналт - FinalExam: Миний эцсийн шалгалтын төслийн хувьд би потенциометр ашиглан LED хянагч бүтээсэн. Энэхүү төслийн зорилго нь потенциометрийг ашиглан аль LED асаалттай байгааг хянах явдал юм. Потенциометрийг цагийн зүүний дагуу эргүүлэхэд LED нь бүдгэрдэг бөгөөд ингэснээр анхны LED нь