Përmbajtje:

Magnetometër Arduino: 5 hapa (me fotografi)
Magnetometër Arduino: 5 hapa (me fotografi)

Video: Magnetometër Arduino: 5 hapa (me fotografi)

Video: Magnetometër Arduino: 5 hapa (me fotografi)
Video: Как использовать гироскоп, акселерометр, магнитометр MPU-9250 для Arduino 2024, Nëntor
Anonim
Magnetometër Arduino
Magnetometër Arduino

Çfarë po ndërtojmë?

Njerëzit nuk mund të zbulojnë fushat magnetike, por ne përdorim pajisje që mbështeten në magnet gjatë gjithë kohës. Motorët, busullat, sensorët e rrotullimit dhe turbinat e erës, për shembull, të gjithë kërkojnë magnete për operim. Ky tutorial përshkruan se si të ndërtoni një magnetometër të bazuar në Arduino që ndjen fushën magnetike duke përdorur tre sensorë të efektit Hall. Vektori i fushës magnetike në një vend shfaqet në një ekran të vogël duke përdorur projeksionin izometrik.

Çfarë është një Arduino?

Një Arduino është një mikrokontrollues i vogël me burim të hapur, miqësor për përdoruesit. Ka kunja dixhitale të hyrjes dhe daljes. Ai gjithashtu ka kunja hyrëse analoge, të cilat janë të dobishme për leximin e hyrjeve nga sensorët. Modele të ndryshme Arduino janë në dispozicion. Ky tutorial përshkruan se si të përdorni ose Arduino Uno ose Arduino MKR1010. Sidoqoftë, modele të tjera mund të përdoren gjithashtu.

Para se të filloni këtë tutorial, shkarkoni mjedisin e zhvillimit Arduino si dhe çdo bibliotekë të nevojshme për modelin tuaj të veçantë. Mjedisi i zhvillimit është në dispozicion në https://www.arduino.cc/en/main/software, dhe udhëzimet e instalimit janë në dispozicion në

Çfarë është një fushë magnetike?

Magnetët e përhershëm ushtrojnë forca mbi magnetët e tjerë të përhershëm. Telat mbajtës të rrymës ushtrojnë forca në telat e tjerë bartës të rrymës. Magnetët e përhershëm dhe telat bartës të rrymës ushtrojnë forca edhe mbi njëri -tjetrin. Kjo forcë për njësi e rrymës së provës është një fushë magnetike.

Nëse matim vëllimin e një objekti, marrim një numër të vetëm skalar. Sidoqoftë, magnetizmi përshkruhet nga një fushë vektoriale, një sasi më e ndërlikuar. Së pari, ndryshon me pozicionin në të gjithë hapësirën. Për shembull, fusha magnetike një centimetër nga një magnet i përhershëm ka të ngjarë të jetë më e madhe se fusha magnetike dhjetë centimetra larg.

Tjetra, fusha magnetike në secilën pikë të hapësirës përfaqësohet nga një vektor. Madhësia e vektorit përfaqëson forcën e fushës magnetike. Drejtimi është pingul me drejtimin e forcës dhe drejtimin e rrymës së provës.

Ne mund ta imagjinojmë fushën magnetike në një vend të vetëm si një shigjetë. Ne mund të përfytyrojmë fushën magnetike në të gjithë hapësirën me një grup shigjetash në vende të ndryshme, ndoshta të madhësive të ndryshme dhe të drejtuara në drejtime të ndryshme. Një vizualizim i bukur është në dispozicion në https://www.falstad.com/vector3dm/. Magnetometri që po ndërtojmë shfaq fushën magnetike në vendndodhjen e sensorëve si një shigjetë në ekran.

Çfarë është një sensor efekti Hall dhe si funksionon?

Një sensor efekti Hall është një pajisje e vogël, e lirë që mat fuqinë e fushës magnetike përgjatë një drejtimi të veçantë. Shtë bërë nga një copë gjysmëpërçuesi e mbushur me ngarkesa të tepërta. Dalja e disa sensorëve të efektit Hall është një tension analog. Sensorë të tjerë të efektit Hall kanë një krahasues të integruar dhe prodhojnë një dalje dixhitale. Sensorë të tjerë të efektit Hall janë të integruar në instrumente më të mëdhenj të cilët matin shpejtësinë e rrjedhës, shpejtësinë e rrotullimit ose sasi të tjera.

Fizika pas efektit Hall përmblidhet nga ekuacioni i forcës Lorentz. Ky ekuacion përshkruan forcën në një ngarkesë lëvizëse për shkak të një fushe të jashtme elektrike dhe magnetike.

Imazhi
Imazhi

Figura më poshtë ilustron efektin Hall. Supozoni se duam të masim forcën e fushës magnetike në drejtim të shigjetës blu. Siç tregohet në pjesën e majtë të figurës, ne aplikojmë një rrymë përmes një pjese të gjysmëpërçuesit pingul në drejtimin e fushës që do të matet. Rryma është rrjedha e ngarkesave, kështu që një ngarkesë në gjysmëpërçues lëviz me njëfarë shpejtësie. Kjo ngarkesë do të ndiejë një forcë për shkak të fushës së jashtme, siç tregohet në pjesën e mesme të figurës. Ngarkesat do të lëvizin për shkak të forcës dhe do të grumbullohen në skajet e gjysmëpërçuesit. Ngarkesat grumbullohen derisa forca për shkak të ngarkesave të grumbulluara të balancojë forcën për shkak të fushës magnetike të jashtme. Ne mund të matim tensionin në gjysmëpërçues, siç tregohet në pjesën e djathtë të figurës. Tensioni i matur është proporcional me forcën e fushës magnetike, dhe është në drejtim pingul me rrymën dhe drejtimin e fushës magnetike.

Imazhi
Imazhi

Çfarë është projeksioni izometrik?

Në secilën pikë të hapësirës, fusha magnetike përshkruhet nga një vektor tre dimensionale. Sidoqoftë, ekrani ynë i ekranit është dy dimensional. Ne mund ta projektojmë vektorin tre dimensional në një plan dy -dimensional në mënyrë që ta vizatojmë në ekran. Ka mënyra të shumta për ta arritur këtë siç janë projeksioni izometrik, projeksioni ortografik ose projeksioni i zhdrejtë.

Në projeksionin izometrik, boshtet x, y dhe z janë 120 gradë larg njëri -tjetrit, dhe ato duken njësoj të para -shkurtuara. Informacion shtesë në lidhje me projeksionin izometrik, si dhe formulat e nevojshme, mund të gjenden në faqen e Wikipedia -s mbi këtë temë.

Hapi 1: Mblidhni Furnizimet

Arduino dhe Cable

Arduino është truri i magnetometrit. Këto udhëzime përshkruajnë se si të përdorni ose një Arduino Uno ose një Arduino MKR1010. Në secilin rast, nevojitet një kabllo për ta lidhur atë me kompjuterin.

Opsioni 1: Arduino Uno dhe kabllo USB AB

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

Opsioni 2: Arduino MKR1010 dhe kabllo microUSB

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

Ekran TFT

TFT qëndron për Thin Film Transistor. Ky ekran 1.44 përmban 128 me 128 piksele. Shtë i vogël, i ndritshëm dhe shumëngjyrësh. I bashkangjitur një pllake shpërthimi. Megjithatë, kunjat e kokës ndahen, kështu që ju duhet t'i lidhni ato. (Saldimi dhe një hekur bashkues janë e nevojshme.)

www.digikey.com/product-detail/en/adafruit-industries-llc/2088/1528-1345-ND/5356830

    Imazhi
    Imazhi
  • Sensorë analoge të efektit të sallës

Kërkohen tre sensorë të efektit Hall. Lidhja më poshtë është për numrin e pjesës Allegro A1324LUA-T. Për këtë sensor, pin 1 është tensioni i furnizimit, pin 2 është i tokëzuar, dhe pin 3 është dalja. Sensorët e tjerë të Hall duhet të funksionojnë gjithashtu, por sigurohuni që ata të jenë analogë, jo dixhitalë. Nëse përdorni një sensor tjetër, kontrolloni pinoutin dhe rregulloni instalimet elektrike nëse është e nevojshme. (Unë në fakt kam përdorur një sensor të ndryshëm nga e njëjta kompani për qëllime testimi. Megjithatë, ai që kam përdorur është i vjetëruar, dhe ky sensor është zëvendësimi i tij.)

www.digikey.com/product-detail/en/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144

Breadboard i vogël dhe tela

www.digikey.com/product-detail/en/adafruit-industries-llc/239/1528-2143-ND/7244929

Magnetë të përhershëm për testim

Magnetët e frigoriferit do të funksionojnë mirë.

Hapi 2: Instalimet elektrike

Instalime elektrike
Instalime elektrike

Ngjitni titujt në ekran.

Imazhi
Imazhi

Vendosni sensorët në një skaj të bordit të bukës dhe vendosni ekranin dhe Arduino në skajin e kundërt. Rryma në telat në Arduino dhe në ekran gjeneron fusha magnetike, të cilat ne nuk duam që sensorët t'i lexojnë. Për më tepër, ne mund të dëshirojmë t'i vendosim sensorët pranë magnetëve të përhershëm, të cilët mund të ndikojnë negativisht në rrymën në telat e ekranit dhe sensorit. Për këto arsye, ne duam sensorët larg ekranit dhe Arduino. Gjithashtu për këto arsye, ky magnetometër duhet të mbahet larg fushave magnetike shumë të forta.

Vendosni sensorët pingul me njëri -tjetrin, por sa më afër njëri -tjetrit. Përkulni butësisht sensorët për t'i bërë ato pingul. Çdo kunj i secilit sensor duhet të jetë në një rresht të veçantë të bordit të bukës në mënyrë që të mund të lidhet veçmas.

Imazhi
Imazhi

Instalimet elektrike janë paksa të ndryshme midis MKR1010 dhe Uno për dy arsye. Së pari, Arduino dhe ekrani komunikojnë nga SPI. Modele të ndryshme Arduino kanë kunja të ndryshme të dedikuara për linja të caktuara SPI. Së dyti, hyrjet analoge të Uno mund të pranojnë deri në 5 V ndërsa hyrjet analoge të MKR1010 mund të pranojnë vetëm deri në 3.3 V. Tensioni i rekomanduar i furnizimit për sensorët e efektit Hall është 5 V. Daljet e sensorit janë të lidhura me hyrjet analoge Arduino, dhe këto mund të jenë aq të mëdha sa tensionet e furnizimit. Për Uno, përdorni furnizimin e rekomanduar 5 V për sensorët. Për MKR1010, përdorni 3.3 V në mënyrë që hyrja analoge e Arduino të mos shohë kurrë një tension më të madh se ai mund të përballojë.

Ndiqni diagramet dhe udhëzimet më poshtë për Arduino që po përdorni.

Instalime me Arduino Uno

Imazhi
Imazhi

Ekrani ka 11 kunja. Lidhini ato me Arduino Uno si më poshtë. (NC do të thotë jo i lidhur.)

  • Vin 5V
  • 3.3 → NC
  • Gnd → GND
  • SCK → 13
  • SO → NC
  • SI → 11
  • TCS → 10
  • RST → 9
  • D/C → 8
  • CCS → NC
  • Lite → NC

Lidhni Vin e sensorëve me 5V të Arduino. Lidhni tokën e sensorit me tokën e Arduino. Lidhni daljen e sensorëve me hyrjet analoge A1, A2 dhe A3 të Arduino.

Imazhi
Imazhi

Instalime me Arduino MKR1010

Imazhi
Imazhi

Ekrani ka 11 kunja. Lidhini ato me Arduino si më poshtë. (NC do të thotë jo i lidhur.)

  • 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

Lidhni Vin e sensorëve me Vcc të Arduino. Ky kunj është në 3.3V, jo 5V. Lidhni tokën e sensorit me tokën e Arduino. Lidhni daljen e sensorëve me hyrjet analoge A1, A2 dhe A3 të Arduino.

Imazhi
Imazhi

Hapi 3: Provoni ekranin

Le të punojmë ekranin TFT. Për fat të mirë, Adafruit ka disa biblioteka miqësore për përdoruesit dhe një udhëzues të shkëlqyeshëm për të shkuar së bashku me to. Këto udhëzime ndjekin nga afër tutorialin, Hapni mjedisin e zhvillimit Arduino. Shkoni te Mjetet → Menaxhoni bibliotekat. Instaloni bibliotekat Adafruit_GFX, Adafruit_ZeroDMA dhe Adafruit_ST7735. Rinisni mjedisin e zhvillimit të Android.

Shembulli më grafik është përfshirë me bibliotekat. Hapur. Skedari → Shembuj Library Biblioteka Adafruit ST7735 dhe ST7789 → graphicstest. Për të zgjedhur komentin 1.44 shfaqni rreshtin 95 dhe rreshtin 98 pa koment.

Versioni origjinal:

94 // Përdorni këtë inicializues nëse përdorni një ekran TFT 1.8 :

95 tft.initR (INITR_BLACKTAB); // Çipi init ST7735S, skeda e zezë 96 97 // OSE përdorni këtë inicues (mos komentoni) nëse përdorni një TFT 1.44 : 98 //tft.initR(INITR_144GREENTAB); // Çipi init ST7735R, skeda jeshile

Versioni i saktë për ekranin 1.44 :

94 // Përdorni këtë inicializues nëse përdorni një ekran TFT 1.8 :

95 //tft.initR(INIT_BLACKTAB); // Çipi init ST7735S, skeda e zezë 96 97 // OSE përdorni këtë inicializues (mos komentoni) nëse përdorni një TFT 1.44 : 98 tft.initR (INITR_144GREENTAB); // Çipi Init SST35R, skeda jeshile

Ekrani komunikon duke përdorur SPI, dhe modele të ndryshme Arduinos përdorin kunja të ndryshme të dedikuara për disa linja komunikimi. Shembulli më grafik është krijuar për të punuar me kunjat Uno. Nëse jeni duke përdorur MKR1010, shtoni rreshtat e mëposhtëm midis rreshtave 80 dhe 81.

Korrigjimet për MKR1010:

80

#përcakto TFT_CS 5 #përcakto TFT_RST 4 #përcakto TFT_DC 3 #përcakto TFT_MOSI 8 #përcakto TFT_SCLK 9 Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_MTS, TFT_MTOS, 81 noton p = 3.1415926;

Ruaj shembullin e modifikuar grafikstest. Lidheni Arduino me kompjuterin nëse nuk e keni bërë ende. Shkoni te Tools → Board and Tools → Port për të verifikuar që kompjuteri mund të gjejë Arduino. Shkoni te Skica → Ngarko. Nëse shembulli funksionon, ekrani do të shfaqë linja, drejtkëndësha, tekst dhe demonstrim të plotë. Udhëzuesi Adafruit ofron më shumë detaje nëse nevojitet zgjidhja e problemeve.

Hapi 4: Kodi i magnetometrit

Shkarkoni kodin e bashkangjitur dhe hapeni atë në mjedisin e zhvillimit Arduino.

Ky program përdor gjashtë funksione:

Setup () inicializon ekranin

Loop () përmban lakin kryesor të programit. Ai e fshin ekranin, tërheq boshtet, lexon hyrjet dhe tërheq shigjetën që përfaqëson vektorin e fushës magnetike. Ka një shpejtësi freskimi prej një sekonde e cila mund të ndryshohet duke ndryshuar rreshtin 127

DrawAxes3d () vizaton dhe etiketon akset x, y dhe z

DrawArrow3d () merr një hyrje x, y dhe z që varion nga 0 në 1023. Nga këto vlera, llogarit pikat përfundimtare të shigjetës në hapësirë. Tjetra, ai përdor funksionet isometricxx () dhe isometricyy () për të llogaritur pikat përfundimtare në ekran. Së fundi, ai tërheq shigjetën dhe printon tensionet në pjesën e poshtme të ekranit

Isometricxx () gjen koordinatën x të projeksionit izometrik. Ai merr koordinatat x, y dhe z të një pike dhe kthen vendndodhjen përkatëse x pixel në ekran

Isometricyy () gjen koordinatën y të projeksionit izometrik. Ai merr koordinatat x, y dhe z të një pike dhe kthen vendndodhjen përkatëse të pikselës y në ekran

Para se të ekzekutojmë kodin, duhet të specifikojmë se cilat kunja të përdoren për komunikimin SPI me ekranin, dhe duhet të specifikojmë tensionin e burimit për sensorët. Nëse jeni duke përdorur MKR1010, komentoni rreshtat 92-96 si dhe rreshtin 110. Pastaj, mos komentoni rreshtat 85-89 si dhe rreshtin 108. Nëse jeni duke përdorur Uno, komentoni rreshtat 85-89 si dhe rreshtin 108 Pastaj, mos komentoni linjat 92-96 si dhe rreshtin 110.

Ngarko kodin, Skico → Ngarko.

Ju duhet të shihni akset x, y dhe z me të kuqe. Një shigjetë jeshile me një rreth blu për majën përfaqëson vektorin e fushës magnetike te sensorët. Leximet e tensionit shfaqen në pjesën e poshtme të majtë. Ndërsa afroni një magnet me sensorët, leximet e tensionit duhet të ndryshojnë dhe madhësia e shigjetës duhet të rritet.

Imazhi
Imazhi

Hapi 5: Puna në të ardhmen

Puna e ardhshme
Puna e ardhshme

Hapi tjetër do të ishte kalibrimi i pajisjes. Fleta e të dhënave të sensorit jep informacion se si të konvertohen vlerat e tensionit të papërpunuar të sensorit në fuqinë e fushës magnetike. Kalibrimi mund të verifikohet duke u krahasuar me një magnetometër më të saktë.

Magnetët e përhershëm ndërveprojnë me telat mbajtës të rrymës. Telat pranë ekranit dhe në Arduino gjenerojnë fusha magnetike të cilat mund të ndikojnë në leximet e sensorëve. Për më tepër, nëse kjo pajisje përdoret për të matur pranë një magneti të fortë të përhershëm, fusha magnetike nga pajisja nën provë do të ndërveprojë me, do të fusë zhurmë dhe ndoshta do të dëmtojë Arduino dhe ekranin. Mbrojtja mund ta bëjë këtë magnetometër më të fortë. Arduino mund të përballojë fusha më të mëdha magnetike nëse mbrohet në një kuti metalike dhe më pak zhurmë do të futet nëse kabllot e mbrojtur lidhin sensorët në vend të telave të zhveshur.

Fusha magnetike është një funksion i pozicionit, kështu që është i ndryshëm në çdo pikë të hapësirës. Kjo pajisje përdor tre sensorë, një për të matur përbërësin x, y dhe z të fushës magnetike në një pikë. Sensorët janë afër njëri -tjetrit, por jo në një pikë të vetme, dhe kjo kufizon zgjidhjen e magnetometrit. Do të ishte mirë të ruani leximet e fushës magnetike në pika të ndryshme, pastaj t'i shfaqni ato si një sërë shigjetash në vendet përkatëse. Sidoqoftë, ky është një projekt për një ditë tjetër.

Referencat

Informacion mbi bibliotekat e Adafruit Arduino Graphics

https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview

Vizualizimi i fushës magnetike

https://www.falstad.com/vector3dm/

Informacion mbi sensorët e efektit Hall dhe efektit Hall

  • https://sensing.honeywell.com/index.php?ci_id=47847
  • https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx

Informacion mbi projeksionin izometrik

  • https://en.wikipedia.org/wiki/3D_projection
  • https://en.wikipedia.org/wiki/Isometric_projection

Recommended: