Mundarija:
- 1 -qadam: materiallarni yig'ish
- 2 -qadam: simlarni ulash
- 3 -qadam: displeyni sinab ko'ring
- 4 -qadam: Magnetometr kodi
- 5 -qadam: Kelgusi ish
Video: Arduino magnitometri: 5 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Biz nima qurayapmiz?
Odamlar magnit maydonlarni aniqlay olmaydilar, lekin biz doimo magnitlarga tayanadigan asboblardan foydalanamiz. Dvigatellar, kompaslar, aylanish sensorlar va shamol turbinalari, masalan, ishlash uchun magnit kerak. Ushbu qo'llanmada uchta Hall effekti sensori yordamida magnit maydonini sezadigan Arduino asosidagi magnitometrni qanday yasash kerakligi tasvirlangan. Joylashuvdagi magnit maydon vektori kichik ekranda izometrik proektsiya yordamida ko'rsatiladi.
Arduino nima?
Arduino-bu ochiq manbali kichik foydalanuvchilar uchun qulay mikrokontroller. U raqamli kirish va chiqish pinlariga ega. Sensorlardan kirishni o'qish uchun foydali bo'lgan analog kirish pinlari ham mavjud. Arduino -ning turli xil modellari mavjud. Ushbu qo'llanma Arduino Uno yoki Arduino MKR1010 -dan qanday foydalanishni tasvirlaydi. Ammo boshqa modellardan ham foydalanish mumkin.
Qo'llanmani boshlashdan oldin, Arduino ishlab chiqish muhitini va sizning modelingiz uchun zarur bo'lgan kutubxonalarni yuklab oling. Ishlab chiqish muhiti https://www.arduino.cc/en/main/software -da, o'rnatish ko'rsatmalari esa https://www.arduino.cc/en/main/software -da mavjud.
Magnit maydon nima?
Doimiy magnitlar boshqa doimiy magnitlarga ta'sir qiladi. Oqim o'tkazuvchi simlar boshqa oqim o'tkazuvchi simlarga kuch ta'sir qiladi. Doimiy magnitlar va tok o'tkazuvchi simlar ham bir -biriga ta'sir qiladi. Sinov oqimining birligiga to'g'ri keladigan bu kuch magnit maydondir.
Agar biz ob'ektning hajmini o'lchasak, bitta skalyar sonni olamiz. Biroq, magnitlanish vektor maydoni bilan tavsiflanadi, bu murakkabroq miqdor. Birinchidan, u butun makon bo'ylab joylashuviga qarab o'zgaradi. Masalan, doimiy magnitdan bir santimetr masofadagi magnit maydoni, ehtimol, o'n santimetr naridagi magnit maydonidan kattaroqdir.
Keyinchalik, kosmosning har bir nuqtasidagi magnit maydoni vektor bilan ifodalanadi. Vektorning kattaligi magnit maydonining kuchini ifodalaydi. Yo'nalish kuch yo'nalishiga ham, sinov oqimi yo'nalishiga ham perpendikulyar.
Biz magnit maydonini bitta joyda o'q sifatida tasavvur qilishimiz mumkin. Biz magnit maydonini kosmosdagi har xil o'lchamdagi va har xil yo'nalishdagi o'qlar yordamida tasavvur qila olamiz. Chiroyli vizualizatsiya https://www.falstad.com/vector3dm/ saytida mavjud. Biz qurayotgan magnitometr displeyda o'q sifatida sensorlar joylashgan joydagi magnit maydonni ko'rsatadi.
Hall effekti sensori nima va u qanday ishlaydi?
Hall effekti sensori - bu ma'lum bir yo'nalish bo'yicha magnit maydonining kuchini o'lchaydigan kichik, arzon qurilma. U ortiqcha zaryadlangan dopingli yarimo'tkazgichdan yasalgan. Ba'zi Hall effektli sensorlarning chiqishi analog kuchlanishdir. Boshqa Hall effektli sensorlar o'rnatilgan taqqoslagichga ega va raqamli chiqishni ishlab chiqaradi. Boshqa Hall effektli sensorlar oqim tezligini, aylanish tezligini yoki boshqa miqdorlarni o'lchaydigan katta asboblarga birlashtirilgan.
Hall effekti ortidagi fizika Lorents kuch tenglamasi bilan umumlashtirilgan. Bu tenglama tashqi elektr va magnit maydon tufayli harakatlanuvchi zaryadning kuchini tavsiflaydi.
Quyidagi rasm Hall effektini ko'rsatadi. Aytaylik, biz ko'k o'q yo'nalishi bo'yicha magnit maydonining kuchini o'lchashni xohlaymiz. Rasmning chap qismida ko'rsatilgandek, biz o'lchanadigan maydon yo'nalishiga perpendikulyar bo'lgan yarimo'tkazgich bo'lagi orqali tok o'tkazamiz. Oqim - bu zaryadlar oqimi, shuning uchun yarimo'tkazgichdagi zaryad ma'lum tezlik bilan harakat qiladi. Rasmning o'rta qismida ko'rsatilganidek, bu zaryad tashqi maydon tufayli kuch sezadi. Zaryadlar kuch tufayli harakatlanadi va yarimo'tkazgichning chetida to'planadi. To'plangan zaryadlar kuchi tashqi magnit maydoni ta'siridagi kuchni muvozanatlashtirmaguncha zaryadlar to'planib boradi. Rasmning o'ng qismida ko'rsatilgandek, yarimo'tkazgichdagi kuchlanishni o'lchashimiz mumkin. O'lchangan kuchlanish magnit maydonining kuchiga mutanosibdir va u oqimga va magnit maydonining yo'nalishiga perpendikulyar yo'nalishda bo'ladi.
Izometrik proektsiya nima?
Kosmosning har bir nuqtasida magnit maydon uch o'lchovli vektor bilan tavsiflanadi. Biroq, bizning ekranimiz ikki o'lchovli. Biz uch o'lchovli vektorni ikki o'lchovli tekislikka loyihalashimiz mumkin, shunda biz uni ekranda chizamiz. Buni amalga oshirishning izometrik proyeksiyasi, ortografik proektsiyasi yoki qiyshiq proektsiyasi kabi bir qancha usullar mavjud.
Izometrik proyeksiyada x, y va z o'qlari bir -biridan 120 daraja masofada joylashgan bo'lib, ular bir xil darajada oldindan tasvirlangan ko'rinadi. Izometrik proektsiya haqida qo'shimcha ma'lumotlarni, shuningdek kerakli formulalarni Vikipediyaning mavzu bo'yicha sahifasida topish mumkin.
1 -qadam: materiallarni yig'ish
Arduino va kabel
Arduino - magnitometrning miyasi. Ushbu ko'rsatmalar Arduino Uno yoki Arduino MKR1010 -dan qanday foydalanishni tasvirlaydi. Har qanday holatda ham, uni kompyuterga ulash uchun kabel kerak.
1 -variant: Arduino Uno va USB AB kabeli
www.digikey.com/product-detail/en/arduino/A000066/1050-1024-ND/2784006
www.digikey.com/product-detail/en/stewart-connector/SC-2ABE003F/380-1424-ND/8544570
2 -variant: Arduino MKR1010 va microUSB kabeli
www.digikey.com/product-detail/en/arduino/ABX00023/1050-1162-ND/9486713
www.digikey.com/product-detail/en/stewart-connector/SC-2AMK003F/380-1431-ND/8544577
TFT displeyi
TFT ingichka plyonkali tranzistor degan ma'noni anglatadi. Bu 1,44 dyuymli displeyda 128 x 128 pikselli displey mavjud. U kichik, yorqin va rang -barang. U taxtaga biriktirilgan. Biroq, bosh pimlari alohida bo'ladi, shuning uchun siz ularni lehimlashingiz kerak. kerak.)
www.digikey.com/product-detail/en/adafruit-industries-llc/2088/1528-1345-ND/5356830
- Analog zal effektli sensorlar
Uchta Hall effekti sensori kerak. Quyidagi havola Allegro qism raqami A1324LUA-T uchun. Ushbu sensor uchun 1 -pin - bu besleme zo'riqishi, 2 -pin - er, 3 -pin - chiqish. Boshqa Hall sensorlar ham ishlashi kerak, lekin ularning analog emas, raqamli ekanligiga ishonch hosil qiling. Agar siz boshqa sensordan foydalansangiz, pinoutni tekshiring va agar kerak bo'lsa, simlarni to'g'rilang. (Aslida men sinov uchun bir kompaniyaning boshqa sensoridan foydalandim. Ammo men ishlatganim eskirgan va bu sensor uning o'rnini bosgan.)
www.digikey.com/product-detail/en/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144
Kichik non paneli va sim
www.digikey.com/product-detail/en/adafruit-industries-llc/239/1528-2143-ND/7244929
Sinov uchun doimiy magnitlar
Sovutgich magnitlari yaxshi ishlaydi.
2 -qadam: simlarni ulash
Sarlavhalarni ekranda lehimlang.
Sensorlarni taxtaning bir chetiga, displey va Arduino -ni qarama -qarshi uchiga joylashtiring. Arduino va displeydagi simlar oqimi magnit maydonlarni hosil qiladi, biz sensorlar o'qishini xohlamaymiz. Bundan tashqari, biz sensorlarni doimiy magnitlar yoniga qo'yishni xohlashimiz mumkin, bu displey va sensor simlaridagi oqimga salbiy ta'sir ko'rsatishi mumkin. Shu sabablarga ko'ra, biz sensorlar displeydan va Arduino -dan uzoqda bo'lishini xohlaymiz. Shu sabablarga ko'ra, bu magnitometrni juda kuchli magnit maydonlaridan uzoqroq tutish kerak.
Datchiklarni bir -biriga perpendikulyar, lekin bir -biriga iloji boricha yaqinroq joylashtiring. Datchiklarni perpendikulyar qilish uchun ularni sekin eging. Har bir sensorning har bir pinasi alohida taxtaning alohida qatorida bo'lishi kerak, shuning uchun uni alohida ulash mumkin.
Ikkita sababga ko'ra, simlar MKR1010 va Uno o'rtasida biroz farq qiladi. Birinchidan, Arduino va displey SPI orqali muloqot qiladi. Arduino -ning turli xil modellarida SPI -ning ma'lum liniyalari uchun ajratilgan pinlar mavjud. Ikkinchidan, Uno -ning analog kirishlari 5 V gacha, MKR1010 -ning analogli kirishlari esa faqat 3,3 V gacha qabul qilishi mumkin. Hall effektli sensorlar uchun tavsiya etilgan besleme zo'riqishi 5 V. Sensorning chiqishlari Arduino analogli kirishiga ulangan, va ular besleme zo'riqishida katta bo'lishi mumkin. Uno uchun datchiklar uchun tavsiya etilgan 5 V kuchlanishdan foydalaning. MKR1010 uchun Arduino analog kirishi hech qachon qo'lidan keladigan kuchlanishni ko'rmasligi uchun 3,3 V dan foydalaning.
Siz foydalanadigan Arduino uchun quyidagi diagramma va ko'rsatmalarga amal qiling.
Arduino Uno -ga ulanish
Displeyda 11 ta pin bor. Ularni Arduino Uno -ga quyidagicha ulang. (NC ulanmagan degan ma'noni anglatadi.)
- Vin → 5V
- 3.3 → NC
- Gnd → GND
- SCK → 13
- SO → NC
- SI → 11
- TCS → 10
- RST → 9
- D/C → 8
- CCS → NC
- Lite → NC
Sensorlarning Vinini Arduino 5V ga ulang. Sensor erini Arduino -ga ulang. Sensorlarning chiqishini Arduino A1, A2 va A3 analogli kirishiga ulang.
Arduino MKR1010 bilan simlarni ulash
Displeyda 11 ta pin bor. Ularni Arduino -ga quyidagicha ulang. (NC ulanmagan degan ma'noni anglatadi.)
- Vin → 5V
- 3.3 → NC
- Gnd → GND
- SCK → SCK 9
- SO → NC
- SI → MOSI 8
- TCS → 5
- RST → 4
- D/C → 3
- CCS → NC
- Lite → NC
Sensor Vinni Arduino Vcc -ga ulang. Bu pin 5V emas, balki 3.3V. Sensor erini Arduino -ga ulang. Sensorlarning chiqishini Arduino A1, A2 va A3 analogli kirishiga ulang.
3 -qadam: displeyni sinab ko'ring
Keling, TFT displeyining ishlashini ta'minlaylik. Yaxshiyamki, Adafruit -da foydalanuvchilar uchun qulay kutubxonalar va ular bilan ishlash uchun ajoyib qo'llanma mavjud. Ushbu ko'rsatmalar https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview qo'llanmasini diqqat bilan kuzatib boradi.
Arduino rivojlanish muhitini oching. Asboblar → Kutubxonalarni boshqarish -ga o'ting. Adafruit_GFX, Adafruit_ZeroDMA va Adafruit_ST7735 kutubxonalarini o'rnating. Android ishlab chiqish muhitini qayta ishga tushiring.
Eng grafik grafik misol kutubxonalarga kiritilgan. Uni oching. Fayl → Misollar → Adafruit ST7735 va ST7789 kutubxonasi → graphicstest. 1.44 dyuymli izohni tanlash uchun 95 -qatorni va 98 -qatorni izohlamang.
Asl versiya:
94 // 1,8 dyuymli TFT ekranidan foydalansangiz, bu boshlang'ichdan foydalaning:
95 tft.initR (INITR_BLACKTAB); // Init ST7735S chipi, qora yorliq 96 97 // Yoki 1.44 dyuymli TFT: 98 //tft.initR(INITR_144GREENTAB) ishlatilsa, bu boshlovchidan foydalaning (izoh bermang); // Init ST7735R chipi, yashil yorliq
1,44 dyuymli displey uchun to'g'ri versiya:
94 // 1,8 dyuymli TFT ekranidan foydalansangiz, bu boshlang'ichdan foydalaning:
95 //tft.initR(INIT_BLACKTAB); // Init ST7735S chipi, 96 97 qora varag'i // Yoki 1.44 dyuymli TFT: 98 tft.initR (INITR_144GREENTAB) ishlatilsa, bu boshlovchidan foydalaning (izoh bermang); // Init SST35R chipi, yashil yorliq
Displey SPI yordamida muloqot qiladi va Arduinosning turli xil modellari ba'zi aloqa liniyalari uchun har xil ajratilgan pinlardan foydalanadi. Eng grafik grafik misol Uno pinlari bilan ishlash uchun o'rnatiladi. Agar siz MKR1010 dan foydalanayotgan bo'lsangiz, 80 va 81 qatorlar orasiga quyidagi qatorlarni qo'shing.
MKR1010 uchun tuzatishlar:
80
#define TFT_CS 5 #define TFT_RST 4 #define TFT_DC 3 #define TFT_MOSI 8 #define TFT_SCLK 9 Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_MOSI, TFT_MRSI, TFT_MOSI) 81 float p = 3.1415926;
O'zgartirilgan grafik namunasini saqlang. Agar siz hali buni qilmagan bo'lsangiz, Arduino -ni kompyuterga ulang. Kompyuter Arduino -ni topa olishini tekshirish uchun Asboblar → Kengash va Asboblar → Port -ga o'ting. Sketch → Yuklash -ga o'ting. Agar misol ishlasa, displeyda chiziqlar, to'rtburchaklar, matn va to'liq demo ko'rsatiladi. Adafruit qo'llanmasi, agar muammolarni bartaraf etish zarur bo'lsa, batafsilroq ma'lumot beradi.
4 -qadam: Magnetometr kodi
Qo'shilgan kodni yuklab oling va uni Arduino ishlab chiqish muhitida oching.
Bu dastur oltita funktsiyadan foydalanadi:
Setup () displeyni ishga tushiradi
Loop () dasturning asosiy tsiklini o'z ichiga oladi. U ekranni qoraytiradi, o'qlarni tortadi, kirishni o'qiydi va magnit maydon vektorini ifodalovchi o'qni chizadi. Uning yangilanish tezligi bir soniya, uni 127 -qatorni o'zgartirish orqali o'zgartirish mumkin
DrawAxes3d () x, y va z o'qlarini chizadi va belgilaydi
DrawArrow3d () 0 dan 1023 gacha bo'lgan x, y va z kirishni oladi. Bu qiymatlardan o'qning fazodagi oxirgi nuqtalarini hisoblab chiqadi. Keyinchalik, ekrandagi oxirgi nuqtalarni hisoblash uchun isometricxx () va isometricyy () funktsiyalaridan foydalaniladi. Nihoyat, u o'qni tortadi va ekranning pastki qismidagi kuchlanishlarni bosib chiqaradi
Izometricxx () izometrik proyeksiyaning x koordinatasini topadi. U nuqtaning x, y va z koordinatalarini oladi va ekrandagi tegishli x piksel o'rnini qaytaradi
Izometricyy () izometrik proektsiyaning y koordinatasini topadi. U nuqtaning x, y va z koordinatalarini oladi va ekrandagi y pikselning mos joyini qaytaradi
Kodni ishga tushirishdan oldin, displey bilan SPI aloqasi uchun qaysi pimlardan foydalanish kerakligini va sensorlar uchun manba kuchlanishini ko'rsatishimiz kerak. Agar siz MKR1010-dan foydalanayotgan bo'lsangiz, 92-96-qatorlarni ham, 110-qatorni ham izohlang. Keyin 85-89-qatorlarni va 108-qatorni sharhlamang. Agar siz Uno-dan foydalanayotgan bo'lsangiz, 85-89-qatorlarni ham, 108-qatorni ham izohlang. Keyin, 92-96-qatorlarni va 110-qatorni izohlamang.
Kodni yuklang, eskiz → yuklash.
Siz qizil, x, y va z o'qlarini ko'rishingiz kerak. Ko'k aylanasi bo'lgan yashil o'q datchiklardagi magnit maydon vektorini ifodalaydi. Pastki chapda kuchlanish ko'rsatkichlari ko'rsatiladi. Sensorlarga magnitni yaqinlashtirganda, kuchlanish ko'rsatkichlari o'zgarishi kerak, o'qning kattaligi ham oshishi kerak.
5 -qadam: Kelgusi ish
Keyingi qadam qurilmani kalibrlash bo'ladi. Sensor ma'lumotlar varag'i xom sensor kuchlanish qiymatlarini magnit maydon kuchiga aylantirish haqida ma'lumot beradi. Kalibrlashni aniqroq magnitometr bilan solishtirish mumkin.
Doimiy magnitlar oqim o'tkazuvchi simlar bilan o'zaro ta'sir qiladi. Displey yaqinidagi va Arduino simlari magnit maydonlarni hosil qiladi, bu sensor o'qishiga ta'sir qilishi mumkin. Bundan tashqari, agar bu qurilma kuchli doimiy magnit yaqinida o'lchash uchun ishlatilsa, sinovdan o'tkaziladigan qurilmaning magnit maydoni o'zaro ta'sir qiladi, shovqinni chiqaradi va Arduino va displeyga zarar etkazishi mumkin. Himoya qilish magnitometrni yanada mustahkam qilishi mumkin. Arduino, agar u metall qutiga o'ralgan bo'lsa, katta magnit maydonlarga bardosh bera oladi va agar himoyalanmagan kabellar datchiklarni yalang'och simlar o'rniga ulasa, shovqin kamroq bo'ladi.
Magnit maydon - bu pozitsiyaning funktsiyasi, shuning uchun u kosmosning har bir nuqtasida farq qiladi. Bu qurilma magnit maydonining bir nuqtasida x, y va z komponentlarini o'lchash uchun uchta sensordan foydalanadi. Sensorlar bir -biriga yaqin, lekin bir nuqtada emas va bu magnitometrning ruxsatini cheklaydi. Magnit maydon o'qilishini har xil nuqtalarda saqlash yaxshi bo'lardi, keyin ularni tegishli o'qlar qatori sifatida ko'rsatish. Biroq, bu boshqa kun uchun loyiha.
Manbalar
Adafruit Arduino Graphics kutubxonalari haqida ma'lumot
https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview
Magnit maydon vizualizatsiyasi
https://www.falstad.com/vector3dm/
Hall effekti va Hall effekti sensori haqida ma'lumot
- https://sensing.honeywell.com/index.php?ci_id=47847
- https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx
Izometrik proektsiya haqida ma'lumot
- https://uz.wikipedia.org/wiki/3D_projection
- https://uz.wikipedia.org/wiki/Isometric_projection
Tavsiya:
Batareya bilan ishlaydigan ofis. Quyosh panellari va shamol turbinasi: Sharq/G'arbni avtomatik almashtirish bilan quyosh tizimi: 11 qadam (rasmlar bilan)
Batareya bilan ishlaydigan ofis. Quyosh tizimi Sharq/G'arbning avtomatik panellari va shamol turbinasi bilan almashinuvi bilan: Loyiha: 200 kvadrat metrli ofis batareyali bo'lishi kerak. Ofis, shuningdek, ushbu tizim uchun zarur bo'lgan barcha tekshirgichlar, batareyalar va komponentlarni o'z ichiga olishi kerak. Quyosh va shamol energiyasi batareyalarni zaryad qiladi. Faqat kichik muammo bor
NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'l bilan amalga oshirildi: 8 qadam (rasmlar bilan)
NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'lga qo'yildi: 1 yil davomida 2 xil joyda muvaffaqiyatli ishlaganimdan so'ng, men quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasining loyiha rejalari bilan bo'lishaman va uning qanday qilib uzoq vaqt yashay oladigan tizimga aylanganini tushuntiraman. quyosh energiyasidan o'tgan davrlar. Agar ergashsangiz
Twinky bilan eng zo'r Arduino robot bilan tanishing: 7 qadam (rasmlar bilan)
Twinky bilan eng zo'r Arduino roboti bilan tanishing: Salom, men sizga "Jibo" ni o'zim qanday yaratganimni o'rgataman. lekin "Twinky" deb nomlangan, men buni ochib bermoqchiman … Bu nusxa emas! Men ikkiyuzlamachilik bilan qurardim va shundan keyingina shunga o'xshash narsaning mavjudligini tushundim: bu erda
Budilnik bilan DIY aqlli o'lchov (Wi-Fi, ESP8266, Arduino IDE va Adafruit.io bilan): 10 qadam (rasmlar bilan)
Budilnik bilan DIY aqlli o'lchov (Wi-Fi, ESP8266, Arduino IDE va Adafruit.io bilan): Oldingi loyihamda men Wi-Fi bilan aqlli hammom o'lchovini ishlab chiqdim. U foydalanuvchi vaznini o'lchashi, uni mahalliy ko'rsatishi va bulutga yuborishi mumkin. Bu haqda batafsil ma'lumotni quyidagi havola orqali olishingiz mumkin: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Vaqt o'tishi bilan rasmlar uchun kamera osonlashtirildi: 22 qadam (rasmlar bilan)
Vaqt o'tishi bilan suratga olish uchun kamera osonlashtirildi. Men boshqa ko'rsatmalarni vaqtni tez suratga olish filmlarini suratga olishni tekshirib ko'rdim. U kino qismini juda yaxshi yoritgan. U filmlar yaratish uchun yuklab olishingiz mumkin bo'lgan bepul dasturiy ta'minot haqida gapirib berdi. Men o'z -o'zimga aytdim, men o'ylaymanki, agar men qila olsam