Мазмұны:
- 1 -қадам: Жабдықтарды жинаңыз
- 2 -қадам: Сымдарды жалғау
- 3 -қадам: дисплейді тексеру
- 4 -қадам: магнитометр коды
- 5 -қадам: Болашақ жұмыс
Бейне: Arduino магнитометрі: 5 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Біз не салып жатырмыз?
Адамдар магнит өрісін анықтай алмайды, бірақ біз үнемі магнитке сүйенетін құрылғыларды қолданамыз. Қозғалтқыштар, циркульдер, айналу датчиктері мен жел турбиналары, мысалы, жұмыс істеу үшін магнитті қажет етеді. Бұл оқу құралы магнит өрісін сезетін Arduino негізіндегі магнитометрді қалай жасау керектігін сипаттайды. Магнит өрісінің векторы изометриялық проекция көмегімен шағын экранда көрсетіледі.
Arduino дегеніміз не?
Arduino-бұл ашық бастапқы коды бар шағын микроконтроллер. Оның сандық кіріс және шығыс түйреуіштері бар. Сондай -ақ, аналогты кіріс түйреуіштері бар, олар сенсорлардан кірісті оқу үшін пайдалы. Әр түрлі Arduino модельдері бар. Бұл оқулықта Arduino Uno немесе Arduino MKR1010 қалай қолдануға болатыны сипатталған. Бірақ басқа модельдерді қолдануға болады.
Бұл оқулықты бастамас бұрын, Arduino даму ортасын, сондай -ақ сіздің нақты үлгіге қажет кез келген кітапхананы жүктеп алыңыз. Әзірлеу ортасы https://www.arduino.cc/kz/main/software сайтында, ал орнату нұсқаулары https://www.arduino.cc/en/main/software сайтында қол жетімді.
Магнит өрісі дегеніміз не?
Тұрақты магниттер басқа тұрақты магниттерге әсер етеді. Ток өткізгіш сымдар басқа ток өткізгіш сымдарға күш түсіреді. Тұрақты магниттер мен ток өткізгіш сымдар бір -біріне әсер етеді. Сынау тогының бірлігіне келетін бұл күш магнит өрісі болып табылады.
Егер біз объектінің көлемін өлшесек, онда бір скалярлық сан шығады. Алайда, магнетизм векторлық өріспен сипатталады, бұл күрделі шама. Біріншіден, ол барлық кеңістіктегі позицияға байланысты өзгереді. Мысалы, тұрақты магниттен бір сантиметрлік магнит өрісі он сантиметр қашықтықтағы магнит өрісінен үлкен болуы мүмкін.
Әрі қарай, кеңістіктің әр нүктесіндегі магнит өрісі вектормен бейнеленеді. Вектордың шамасы магнит өрісінің күшін көрсетеді. Бағыт күштің бағытына да, сынақ тогының бағытына да перпендикуляр.
Біз магнит өрісін бір жерде жебе түрінде бейнелей аламыз. Біз магнит өрісін кеңістіктегі әр түрлі өлшемдегі және әр түрлі бағыттағы жебе арқылы суреттей аламыз. Керемет визуализацияны https://www.falstad.com/vector3dm/ сайтынан алуға болады. Біз құрастырып жатқан магнитометр сенсорлардың орналасқан жеріндегі магнит өрісін дисплейде көрсеткі ретінде көрсетеді.
Hall әсерінің сенсоры дегеніміз не және ол қалай жұмыс істейді?
Холл әсерінің сенсоры - бұл белгілі бір бағытта магнит өрісінің кернеулігін өлшейтін шағын, арзан құрылғы. Ол артық зарядталған қоспа жартылай өткізгіштен жасалған. Кейбір Hall эффектілі датчиктердің шығысы аналогты кернеу болып табылады. Басқа Холл эффектілі датчиктерде интегралды компаратор бар және цифрлық шығыс шығарады. Басқа Hall эффектілі датчиктер ағынды, айналу жылдамдығын немесе басқа шамаларды өлшейтін үлкен құралдарға біріктірілген.
Холл эффектісінің физикасы Лоренц күшінің теңдеуімен жинақталған. Бұл теңдеу сыртқы электрлік және магнит өрісінің әсерінен қозғалатын зарядтың күшін сипаттайды.
Төмендегі суретте Холл эффектісі көрсетілген. Магнит өрісінің кернеулігін көк көрсеткі бағытында өлшегіміз келеді делік. Фигураның сол бөлігінде көрсетілгендей, біз өлшенетін өрістің бағытына перпендикуляр жартылай өткізгіш арқылы ток жүргіземіз. Ток - зарядтар ағыны, сондықтан жартылай өткізгіштегі заряд белгілі бір жылдамдықпен қозғалады. Бұл заряд суреттің орта бөлігінде көрсетілгендей сыртқы өрістің әсерінен күшті сезінеді. Заряд күш әсерінен қозғалады және жартылай өткізгіштің жиектерінде жиналады. Зарядтар жинақталған зарядтар әсер ететін күш сыртқы магнит өрісінің әсерінен күштерді теңестірмейінше жинақталады. Біз суреттің оң жағында көрсетілгендей жартылай өткізгіштегі кернеуді өлшей аламыз. Өлшенген кернеу магнит өрісінің кернеулігіне пропорционалды және ол ток пен магнит өрісінің бағытына перпендикуляр бағытта.
Изометриялық проекция дегеніміз не?
Кеңістіктің әр нүктесінде магнит өрісі үш өлшемді вектормен сипатталады. Дегенмен, біздің дисплей экраны екі өлшемді. Біз үш өлшемді векторды екі өлшемді жазықтықта проекциялай аламыз, сонда біз оны экранға шығара аламыз. Бұл үшін изометриялық проекция, орфографиялық проекция немесе қиғаш проекция сияқты көптеген әдістер бар.
Изометриялық проекцияда x, y және z осьтері бір -бірінен 120 градус қашықтықта орналасқан және олар бірдей алдын ала көрсетілгендей көрінеді. Изометриялық проекция туралы, сондай -ақ қажетті формулалар туралы қосымша ақпаратты Уикипедия бетіндегі тақырып бойынша табуға болады.
1 -қадам: Жабдықтарды жинаңыз
Arduino және кабель
Ардуино - бұл магнитометрдің миы. Бұл нұсқаулар Arduino Uno немесе Arduino MKR1010 қалай қолдануға болатынын сипаттайды. Кез келген жағдайда, оны компьютерге қосу үшін кабель қажет.
1 -нұсқа: Arduino Uno және USB AB кабелі
www.digikey.com/product-detail/kz/arduino/A000066/1050-1024-ND/2784006
www.digikey.com/product-detail/kz/stewart-connector/SC-2ABE003F/380-1424-ND/8544570
2 -нұсқа: Arduino MKR1010 және microUSB кабелі
www.digikey.com/product-detail/kz/arduino/ABX00023/1050-1162-ND/9486713
www.digikey.com/product-detail/kz/stewart-connector/SC-2AMK003F/380-1431-ND/8544577
TFT дисплейі
TFT - жұқа пленка транзисторы. Бұл 1,44 дюймдік дисплейде 128 -ден 128 пиксельге дейін болады. Ол кішкентай, жарқын және түрлі -түсті. Ол сынғыш тақтаға бекітілген. Дегенмен, түйреуіш түйреуіштері бөлек орналасқан, сондықтан оларды дәнекерлеу керек. қажет.)
www.digikey.com/product-detail/kz/adafruit-industries-llc/2088/1528-1345-ND/5356830
- Аналогты холл әсерінің сенсорлары
Үш Холл әсерінің сенсоры қажет. Төмендегі сілтеме Allegro бөлшек нөмірі A1324LUA-T үшін. Бұл сенсор үшін түйреуіш 1 - кернеу, түйреуіш - 2, түйреуіш - шығыс. Басқа Холл сенсорлары да жұмыс істеуі керек, бірақ олардың сандық емес, аналогты екеніне көз жеткізіңіз. Егер сіз басқа сенсорды қолдансаңыз, түйреуішті тексеріңіз және қажет болса сымдарды реттеңіз. (Мен шын мәнінде тестілеу үшін бір компанияның басқа сенсорын қолдандым. Алайда мен қолданған ескірген және бұл сенсор оны ауыстырады.)
www.digikey.com/product-detail/kz/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144
Кішкене нан тақтасы мен сым
www.digikey.com/product-detail/kz/adafruit-industries-llc/239/1528-2143-ND/7244929
Тестілеуге арналған тұрақты магниттер
Тоңазытқыш магниттері жақсы жұмыс істейді.
2 -қадам: Сымдарды жалғау
Дисплейдегі тақырыптарды дәнекерлеңіз.
Датчиктерді тақтаның бір шетіне, ал дисплей мен Arduino -ны қарама -қарсы жаққа қойыңыз. Arduino мен дисплейдегі сымдардағы ток магнит өрісін тудырады, біз сенсорлардың оқуын қаламаймыз. Сонымен қатар, сенсорларды дисплей мен сенсор сымдарындағы токқа теріс әсер етуі мүмкін тұрақты магниттердің қасына қойғымыз келуі мүмкін. Осы себептерге байланысты сенсорлар дисплейден және Arduino -дан алыс болғанын қалаймыз. Сондай -ақ, осы себептермен бұл магнитометрді өте күшті магнит өрістерінен алыс ұстау керек.
Сенсорларды бір -біріне перпендикуляр, бірақ бір -біріне мүмкіндігінше жақын орналастырыңыз. Сенсорларды перпендикуляр болу үшін ақырын бүгіңіз. Әр сенсордың түйреуіші бөлек тақтаның бөлек қатарында болуы керек, сондықтан оны бөлек қосуға болады.
Сымдар екі себеп бойынша MKR1010 мен Uno арасында сәл өзгеше. Біріншіден, Arduino мен дисплей SPI арқылы байланысады. Әр түрлі Arduino модельдерінде SPI -дің белгілі бір желілеріне арналған арнайы түйреуіштер бар. Екіншіден, Uno аналогты кірістері 5 В дейін қабылдай алады, ал MKR1010 аналогты кірістері тек 3,3 В дейін қабылдай алады, Hall эффектінің сенсорлары үшін ұсынылатын кернеудің кернеуі 5 В. Сенсордың шығысы Arduino аналогты кірістеріне қосылған және олар жеткізу кернеулері сияқты үлкен болуы мүмкін. Uno үшін сенсорларға ұсынылған 5 В кернеуін қолданыңыз. MKR1010 үшін Arduino аналогтық кірісі ешқашан өңдей алмайтын кернеуді көрмейтін етіп 3,3 В пайдаланыңыз.
Қолданылатын Arduino үшін төмендегі схемалар мен нұсқауларды орындаңыз.
Arduino Uno -мен байланыс
Дисплейде 11 түйреуіш бар. Оларды Arduino Uno -ға келесідей қосыңыз. (NC қосылмаған дегенді білдіреді.)
- Vin → 5V
- 3.3 → NC
- Gnd → GND
- SCK → 13
- SO → NC
- SI → 11
- TCS → 10
- RST → 9
- D/C → 8
- CCS → NC
- Lite → NC
Сенсорлардың Винін Arduino 5В -ге қосыңыз. Сенсордың жерін Arduino жеріне қосыңыз. Сенсорлардың шығуын Arduino A1, A2 және A3 аналогтық кірістеріне қосыңыз.
Arduino MKR1010 сымдары
Дисплейде 11 түйреуіш бар. Оларды Arduino -ға келесідей қосыңыз. (NC қосылмаған дегенді білдіреді.)
- 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
Сенсорлардың Винін Arduino Vcc -ке қосыңыз. Бұл түйін 5 В емес, 3,3 В кернеуде. Сенсордың жерін Arduino жеріне қосыңыз. Сенсорлардың шығуын Arduino A1, A2 және A3 аналогтық кірістеріне қосыңыз.
3 -қадам: дисплейді тексеру
TFT дисплейінің жұмыс істеуін қамтамасыз етейік. Бақытымызға орай, Adafruit -те пайдаланушыларға ыңғайлы кітапханалар мен олармен бірге жүруге арналған тамаша оқулық бар. Бұл нұсқаулық оқулықты мұқият қадағалайды, Arduino даму ортасын ашыңыз. Құралдар → Кітапханаларды басқару тармағына өтіңіз. Adafruit_GFX, Adafruit_ZeroDMA және Adafruit_ST7735 кітапханаларын орнатыңыз. Android әзірлеу ортасын қайта іске қосыңыз.
Ең графикалық мысал кітапханаларға енгізілген. Оны ашыңыз. Файл → Мысалдар → Adafruit ST7735 және ST7789 кітапханасы → graphicstest. 1,44 дюймдік дисплейдің 95 -жолын және 98 -жолды өшіруді таңдау үшін.
Түпнұсқа:
94 // 1,8 дюймдік TFT экраны пайдаланылса, осы инициализаторды қолданыңыз:
95 tft.initR (INITR_BLACKTAB); // Init ST7735S чипі, қара қойынды 96 97 // НЕМЕСЕ инициализаторды қолданыңыз (түсініктеме бермеңіз), егер 1.44 «TFT: 98 //tft.initR(INITR_144GREENTAB); // Init ST7735R чипі, жасыл қойынды
1,44 дюймдік дисплей үшін дұрыс нұсқа:
94 // 1,8 дюймдік TFT экраны пайдаланылса, осы инициализаторды қолданыңыз:
95 //tft.initR(INIT_BLACKTAB); // Init ST7735S чипі, қара қойынды 96 97 // НЕМЕСЕ инициализаторды қолданыңыз (түсініктеме бермеңіз), егер 1,44 дюймдік TFT: 98 tft.initR (INITR_144GREENTAB); // Init SST35R чипі, жасыл қойынды
Дисплей SPI арқылы байланысады, ал Arduinos -тың әртүрлі моделі кейбір байланыс желілері үшін әр түрлі түйреуіштерді қолданады. Ең графикалық мысал Uno түйреуіштерімен жұмыс істеуге арналған. Егер сіз MKR1010 қолдансаңыз, 80 мен 81 жолдарының арасына келесі жолдарды қосыңыз.
MKR1010 түзетулері:
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_MOSI; 81 өзгермелі р = 3.1415926;
Өзгертілген графикалық тесттің мысалын сақтаңыз. Егер сіз әлі жасамаған болсаңыз, Arduino -ны компьютерге қосыңыз. Компьютердің Arduino таба алатынын тексеру үшін Құралдар → Тақта мен Құралдар → Портқа өтіңіз. Эскиз → Жүктеу тармағына өтіңіз. Егер мысал жұмыс істесе, дисплейде сызықтар, тіктөртбұрыштар, мәтін және толық демо көрсетіледі. Adafruit оқулығында ақаулықтарды жою қажет болса, толығырақ ақпарат берілген.
4 -қадам: магнитометр коды
Қосылған кодты жүктеп алып, оны Arduino даму ортасында ашыңыз.
Бұл бағдарлама алты функцияны қолданады:
Setup () дисплейді инициализациялайды
Loop () бағдарламаның негізгі циклін қамтиды. Ол экранды қараңғылатады, осьтерді, кірістерді оқиды және магнит өрісінің векторын көрсететін көрсеткіні тартады. Оның жаңарту жылдамдығы бір секундты құрайды, оны 127 жолды өзгерту арқылы өзгертуге болады
DrawAxes3d () x, y және z осьтерін салады және белгілейді
DrawArrow3d () x, y және z кірістерін 0 -ден 1023 -ке дейін қабылдайды. Осы мәндер бойынша ол кеңістіктегі көрсеткінің соңғы нүктелерін есептейді. Содан кейін экрандағы соңғы нүктелерді есептеу үшін isometricxx () және isometricyy () функцияларын қолданады. Соңында, ол көрсеткіні тартады және кернеуді экранның төменгі жағына басып шығарады
Isometricxx () изометриялық проекцияның х координатасын табады. Ол нүктенің x, y және z координаттарын қабылдап, экрандағы х пиксельдің сәйкес орнын қайтарады
Isometricyy () изометриялық проекцияның y координатасын табады. Ол нүктенің x, y және z координаттарын қабылдайды және экрандағы у пиксельдің сәйкес орнын қайтарады
Кодты іске қоспас бұрын, дисплеймен SPI байланысы үшін қандай түйреуіштерді қолдану керектігін және сенсорлар үшін кернеудің бастапқы кернеуін көрсету керек. Егер сіз MKR1010-ды қолдансаңыз, 92-96-шы жолдарды, сондай-ақ 110-жолды түсіндіріңіз. Содан кейін 85-89-шы жолдарды, сондай-ақ 108-жолды жазыңыз. Егер сіз Uno қолдансаңыз, 85-89-шы жолдарды және 108-ші жолды түсіндіріңіз. Содан кейін 92-96-жолдарды, сондай-ақ 110-жолды жазыңыз.
Кодты жүктеңіз, эскиз → Жүктеу.
Сіз x, y және z осьтерін қызыл түспен көруіңіз керек. Ұшы үшін көк шеңбері бар жасыл көрсеткі датчиктердегі магнит өрісінің векторын білдіреді. Төменгі сол жақта кернеудің көрсеткіштері көрсетіледі. Магнит датчиктерге жақындаған кезде кернеудің көрсеткіштері өзгеруі керек, ал көрсеткі өлшемі өсуі керек.
5 -қадам: Болашақ жұмыс
Келесі қадам - құрылғыны калибрлеу. Сенсорлық деректер парағы датчиктің кернеу мәндерін магнит өрісінің кернеулігіне қалай түрлендіру туралы ақпаратты береді. Калибрлеуді дәлірек магнитометрмен салыстыру арқылы тексеруге болады.
Тұрақты магниттер ток өткізетін сымдармен әрекеттеседі. Дисплей жанында және Arduino сымдары магнит өрісін тудырады, бұл сенсордың көрсеткіштеріне әсер етуі мүмкін. Сонымен қатар, егер бұл құрылғы күшті тұрақты магнит жанында өлшеу үшін қолданылса, тексерілетін құрылғының магнит өрісі өзара әрекеттеседі, шу шығарады және Arduino мен дисплейге зақым келтіруі мүмкін. Қорғаныс бұл магнитометрді неғұрлым берік ете алады. Егер Arduino металл қорапта қоршалған болса, үлкен магниттік өрістерге төтеп бере алады, ал егер сенсорларды жалаң сымдардың орнына экрандалған кабельдер қосса, шу аз болады.
Магнит өрісі - бұл позицияның функциясы, сондықтан ол кеңістіктің әр нүктесінде әр түрлі болады. Бұл құрылғы нүктеде магнит өрісінің x, y және z компоненттерін өлшеу үшін үш сенсорды қолданады. Сенсорлар бір -біріне жақын, бірақ бір нүктеде емес, бұл магнитометрдің ажыратымдылығын шектейді. Әр түрлі нүктелерде магнит өрісінің көрсеткіштерін сақтау жақсы болар еді, содан кейін оларды сәйкес жерлерде көрсеткілер жиыны ретінде көрсету. Дегенмен, бұл басқа күнге арналған жоба.
Әдебиеттер
Adafruit Arduino Graphics кітапханалары туралы ақпарат
https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview
Магнит өрісінің визуализациясы
https://www.falstad.com/vector3dm/
Холл эффектісі мен Холл әсерінің сенсорлары туралы ақпарат
- https://sensing.honeywell.com/index.php?ci_id=47847
- https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx
Изометриялық проекция туралы ақпарат
- https://kk.wikipedia.org/wiki/3D_projection
- https://kk.wikipedia.org/wiki/Isometric_projection
Ұсынылған:
Arduino Nano Arduino Uno адаптерінен: 6 қадам (суреттермен)
Arduino Nano Arduino Uno адаптерінен: Arduino Nano - Arduino отбасының жақсы, кішкентай және арзан мүшесі. Ол Atmega328 чипіне негізделген, бұл оның үлкен ағасы Ардуино Уно сияқты күшті етеді, бірақ оны аз ақшаға алуға болады. Ebay -де қытайлық нұсқалар енді
Arduino басқарылатын робот - екі қадам: 13 қадам (суреттермен)
Arduino басқарылатын роботты екіжақты: Мен әрқашан роботтарға қызығатынмын, әсіресе адамның іс -әрекетіне еліктеуге тырысатын. Бұл қызығушылық мені жаяу жүруге және жүгіруге еліктей алатын екіжақты робот құрастыруға және дамытуға талпындырды. Бұл нұсқаулықта мен сізге көрсетемін
Arduino Uno көмегімен акустикалық левитация Қадамдық қадам (8 қадам): 8 қадам
Акустикалық левитация Arduino Uno Қадамдық қадаммен (8-қадам): ультрадыбыстық дыбыс түрлендіргіштері L298N Dc әйелдер адаптерінің ток көзі еркек тоқ сымымен Arduino UNOBreadboard Бұл қалай жұмыс істейді: Біріншіден, сіз кодты Arduino Uno-ға жүктейсіз (бұл сандық жүйемен жабдықталған микроконтроллер) және кодты түрлендіру үшін аналогтық порттар (C ++)
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): 6 қадам (суреттермен)
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): Индуктивті зарядтау (сымсыз зарядтау немесе сымсыз зарядтау деп те аталады) - сымсыз қуат беру түрі. Ол портативті құрылғыларды электрмен қамтамасыз ету үшін электромагниттік индукцияны қолданады. Ең көп таралған қолданба - Qi сымсыз зарядтау
Ең арзан Arduino -- Ең кішкентай Ардуино -- Arduino Pro Mini -- Бағдарламалау -- Arduino Neno: 6 қадам (суреттермен)
Ең арзан Arduino || Ең кішкентай Ардуино || Arduino Pro Mini || Бағдарламалау || Ардуино Нено: …………………………. Басқа бейнелер үшін менің YouTube каналыма ТІРКЕЛІҢІЗ ……. .Бұл жоба ең кіші және ең арзан ардуиноның интерфейсі туралы. Ең кішкентай және ең арзан ардуино - arduino pro mini. Бұл ардуиноға ұқсас