- தேவையான பொருட்கள்:
- சுற்று வரைபடம்:
- உங்கள் அமைப்பை மேம்படுத்துகிறது:
- உங்கள் Arduino ஐ நிரலாக்க:
- செயலாக்கத்தைப் பயன்படுத்தி Android பயன்பாட்டைத் தயாரித்தல்:
- Arduino Inclinometer இன் வேலை:
MPU6050 ஒரு ஐசி உள்ளது 3-அச்சு முடுக்க மற்றும் இணைந்து 3-axis கிரையோஸ்கோப் ஒரே அலகாக. இது ஒரு சிக்கலான பணியைச் செய்ய வெப்பநிலை சென்சார் மற்றும் ஒரு டி.சி.எம். MPU6050 பொதுவாக ட்ரோன் மற்றும் பிற ரிமோட் ரோபோக்களை சுய சமநிலை ரோபோ போன்றவற்றை உருவாக்க பயன்படுகிறது. இந்த திட்டத்தில் , MPU6050 ஐ எவ்வாறு பயன்படுத்துவது என்பதை நாம் கற்றுக்கொள்வோம். ஒரு மேற்பரப்பு சரியாக சமன் செய்யப்பட்டுள்ளதா இல்லையா என்பதைச் சரிபார்க்க ஒரு சாய்வு அளவீடு பயன்படுத்தப்படுகிறது என்பது எங்களுக்குத் தெரியும், அவை ஸ்பிரிட் குமிழிகளாகவோ அல்லது டிஜிட்டல் மீட்டர்களாகவோ கிடைக்கின்றன. இந்த திட்டத்தில், ஆண்ட்ராய்டு பயன்பாட்டைப் பயன்படுத்தி கண்காணிக்கக்கூடிய டிஜிட்டல் இன்க்ளினோமீட்டரை உருவாக்க உள்ளோம். மொபைல் போன் போன்ற ரிமோட் டிஸ்ப்ளேவைப் பயன்படுத்துவதற்கான காரணம் என்னவென்றால், வன்பொருளைப் பார்க்காமல் MPU6050 இலிருந்து மதிப்புகளை நாம் கண்காணிக்க முடியும், MPU6050 ஒரு ட்ரோன் அல்லது வேறு சில அணுக முடியாத இடங்களில் வைக்கப்படும் போது இது மிகவும் எளிது.
தேவையான பொருட்கள்:
- Arduino Pro-mini (5V)
- MPU6050 கைரோ சென்சார்
- HC-05 அல்லது HC-06 புளூடூத் தொகுதி
- FTDI போர்டு
- ப்ரெட்போர்டு
- கம்பிகளை இணைக்கிறது
- திறன்பேசி

சுற்று வரைபடம்:

இந்த Arduino Tilt Sensor திட்டத்திற்கான முழுமையான சுற்று வரைபடம் கீழே காட்டப்பட்டுள்ளது. இது மூன்று கூறுகளை மட்டுமே கொண்டுள்ளது மற்றும் ப்ரெட்போர்டில் எளிதாக உருவாக்க முடியும்.
I2C உதவியுடன் MPU6050 தொடர்பு எனவே செய்யகூடாதிருந்தால் முள் இது செய்யகூடாதிருந்தால் முள் மற்றும் SCL: முள் Arduino என்ற ஏ 5 முள் இணைக்கப்பட்டுள்ளது Arduino என்ற ஏ 4 முள் இணைக்கப்பட்டுள்ளது. உயர்நீதிமன்றத்தில்-06 ப்ளூடூத் தொகுதி சீரியல் தொடர்பு எனவே Bluetooth இன் வேர்ச்சொல் முள் முள் D11 மற்றும் Bluetooth இன் Tx முள் Arduino என்ற முள் D10 இணைக்கப்பட்டுள்ளது இணைக்கப்பட்டுள்ளது உதவியுடன் செயல்படுகிறது. இந்த முள் டி 10 மற்றும் டி 11 ஆகியவை ஆர்டுயினோவை நிரல் செய்வதன் மூலம் சீரியல் முள் என கட்டமைக்கப்படும். HC-05 தொகுதி மற்றும் MSP6050 தொகுதி + 5V இல் இயங்குகிறது, எனவே அவை மேலே காட்டப்பட்டுள்ளபடி Arduino இன் Vcc முள் மூலம் இயக்கப்படுகின்றன.
கம்பிகளை இணைக்கும் சில பிரெட்போர்டைப் பயன்படுத்தினேன், ஒரு சிறிய ப்ரெட்போர்டு மீது செட்-அப் கட்டினேன். இணைப்புகள் முடிந்ததும் எனது போர்டு கீழே தெரிகிறது.

உங்கள் அமைப்பை மேம்படுத்துகிறது:
நான் செய்ததைப் போல எஃப்.டி.டி.ஐ நிரலாக்கக் குழு மூலம் உங்கள் சுற்றுக்கு மின்சாரம் வழங்கலாம் அல்லது 9 வி பேட்டரி அல்லது 12 வி அடாப்டரைப் பயன்படுத்தி அதை அர்டுயினோ புரோ மினியின் ரா முள் உடன் இணைக்கலாம். Arduino Pro-mini இல் உள்ளமைக்கப்பட்ட மின்னழுத்த சீராக்கி உள்ளது, இது இந்த வெளிப்புற மின்னழுத்த ஒழுங்குபடுத்தப்பட்ட + 5V ஐ மாற்றும்.

உங்கள் Arduino ஐ நிரலாக்க:
வன்பொருள் தயாரானதும், எங்கள் Arduino ஐ நிரலாக்கத் தொடங்கலாம். எப்போதும் போல இந்த திட்டத்திற்கான முழுமையான குறியீட்டை இந்த பக்கத்தின் கீழே காணலாம். ஆனால் திட்டத்தை சிறப்பாக புரிந்து கொள்ள நான் குறியீட்டை சிறிய துண்டுகளாக உடைத்து அவற்றை கீழே உள்ள படிகளாக விளக்கினேன்.
முதல் படி MPU6050 ஐ Arduino உடன் இணைக்க வேண்டும். இந்த திட்டத்திற்காக கோர்னெலியஸ் உருவாக்கிய நூலகத்தைப் பயன்படுத்தப் போகிறோம், அதை கீழே உள்ள இணைப்பிலிருந்து பதிவிறக்கம் செய்யலாம்
MPU6050 லிபர்ட்டி - கோர்னெலியஸ் ஜார்ஜெப்ஸ்கி
ZIP கோப்பைப் பதிவிறக்கி உங்கள் Arduino IDE இல் சேர்க்கவும். பின்னர் மீது தலைமை > MPU6050_gyro_pitch_roll_yaw - கோப்பு-> Examples-> Arduino_MPU6050_Master . இது நாம் பதிவிறக்கிய நூலகத்தைப் பயன்படுத்தும் எடுத்துக்காட்டு நிரலைத் திறக்கும். எனவே பதிவேற்றத்தைக் கிளிக் செய்து, நிரல் உங்கள் Arduino Pro மினியில் பதிவேற்றப்படும் வரை காத்திருக்கவும். அது முடிந்ததும் உங்கள் சீரியல் மானிட்டரைத் திறந்து உங்கள் பாட் வீதத்தை 115200 ஆக அமைத்து பின்வருவனவற்றைப் பெறுகிறீர்களா என்று சரிபார்க்கவும்.

ஆரம்பத்தில், மூன்று மதிப்புகளும் பூஜ்ஜியமாக இருக்கும், ஆனால் உங்கள் ப்ரெட்போர்டை நகர்த்தும்போது இந்த மதிப்புகள் மாற்றப்படுவதை நீங்கள் அவதானிக்கலாம். அவை மாறினால், உங்கள் இணைப்பு சரியானது என்று பொருள், இல்லையெனில் உங்கள் இணைப்புகளைச் சரிபார்க்கவும். உங்கள் சென்சாரை சாய்க்கும் விதத்திற்கு ஏற்ப பிட்ச் ரோல் மற்றும் யா ஆகிய மூன்று மதிப்புகள் எவ்வாறு வேறுபடுகின்றன என்பதை இங்கே சிறிது நேரம் கவனிக்கவும். நீங்கள் குழப்பமடைந்தால், Arduino இல் மீட்டமை பொத்தானை அழுத்தவும், மதிப்புகள் மீண்டும் பூஜ்ஜியத்திற்கு துவக்கப்படும், பின்னர் சென்சாரை ஒரு திசையில் சாய்த்து, எந்த மதிப்புகள் மாறுபடுகின்றன என்பதை சரிபார்க்கவும். நன்றாகப் புரிந்துகொள்ள கீழேயுள்ள படம் உங்களுக்கு உதவும்.

இந்த மூன்று அளவுருக்களில் ரோல் மற்றும் பிட்சில் மட்டுமே நாங்கள் ஆர்வமாக உள்ளோம். ரோல் மதிப்பு எக்ஸ்-அச்சில் உள்ள சாய்வைப் பற்றி நமக்குத் தெரிவிக்கும் மற்றும் பிட்ச் மதிப்பு ஒய்-ஆக்சிஸில் உள்ள சாய்வைப் பற்றி சொல்லும். இப்போது நாம் புரிந்துகொண்டுள்ளோம், இந்த மதிப்புகளைப் படிக்க Arduino ஐ நிரலாக்கத் தொடங்க புளூடூத் வழியாக Arduino க்கு அனுப்பலாம். எப்போதும் போல இந்த திட்டத்திற்கு தேவையான அனைத்து நூலகங்களையும் சேர்த்து ஆரம்பிக்கலாம்
#சேர்க்கிறது
புளூடூத் தொகுதிக்கான மென்பொருள் சீரியலைத் தொடங்குவோம். Arduino இல் உள்ள மென்பொருள் சீரியல் நூலகம் காரணமாக இது சாத்தியமாகும், IO ஊசிகளை சீரியல் ஊசிகளாக வேலை செய்ய திட்டமிடலாம். இங்கே நாம் டிஜிட்டல் பின்ஸ் டி 10 மற்றும் டி 11 ஐப் பயன்படுத்துகிறோம், அங்கு டி 10 ஐடி ஆர்எக்ஸ் மற்றும் டி 11 டிஎக்ஸ் ஆகும்.
மென்பொருள்சீரியல் பி.டி (10, 11); // ஆர்.எக்ஸ், டி.எக்ஸ்
நாங்கள் அதைத் தொடர்ந்து நிகழ்ச்சி தேவையான மாறிகள் மற்றும் பொருட்களை துவக்க மீது மற்றும் நடவடிக்கை அமைப்பு () நாங்கள் சீரியல் மானிட்டர் மற்றும் ப்ளூடூத் பாட் விகிதம் குறிப்பிட எங்கே செயல்பாடு. HC-05 மற்றும் HC-06 க்கு பாட் வீதம் 9600 ஆக உள்ளது, எனவே இதைப் பயன்படுத்துவது கட்டாயமாகும். Arduino இன் IIC பஸ் MPU6050 உடன் இணைக்கப்பட்டுள்ளதா என்பதை நாங்கள் சரிபார்க்கிறோம், இல்லையென்றால் நாங்கள் ஒரு எச்சரிக்கை செய்தியை அச்சிட்டு சாதனம் இணைக்கப்பட்டிருக்கும் வரை அங்கேயே இருப்போம். அதன்பிறகு , கைரோவை அளவீடு செய்து, அதன் வாசல் மதிப்புகளை அந்தந்த செயல்பாடுகளைப் பயன்படுத்தி கீழே காட்டப்பட்டுள்ளபடி அமைக்கிறோம்.
void setup () {Serial.begin (115200); பி.டி.பெஜின் (9600); // புளூடூத் தகவல்தொடர்பு 9600 பாட்ரேட்டில் தொடங்கவும் // MPU6050 ஐத் தொடங்கவும் (! தாமதம் (500); } mpu.calibrateGyro (); // தொடக்கத்தின்போது கைரோஸ்கோப்பை அளவீடு செய்யுங்கள் mpu.setThreshold (3); // உணர்திறனைக் கட்டுப்படுத்துகிறது}
வரி “ mpu.calibrateGyro ();” MPU6050 தற்போது வைக்கப்பட்டுள்ள நிலைக்கு அளவீடு செய்யுங்கள். MPU6050 அளவீடு செய்யப்படும்போதும், அனைத்து மதிப்புகளும் பூஜ்ஜியமாக அமைக்கப்படும்போதும் இந்த வரியை நிரலுக்குள் பல முறை அழைக்கலாம். “Mpu.setThreshold (3);” சென்சாரின் இயக்கத்திற்கு மதிப்பு எவ்வளவு மாறுபடுகிறது என்பதை இந்த செயல்பாடு கட்டுப்படுத்துகிறது, மிகக் குறைந்த மதிப்பு சத்தத்தை அதிகரிக்கும், எனவே இதைச் சுற்றிலும் கவனமாக இருங்கள்.
வெற்றிட வளையத்தின் () உள்ளே, கைரோஸ்கோப் மற்றும் வெப்பநிலை சென்சாரின் மதிப்புகளை மீண்டும் மீண்டும் படித்து சுருதி, ரோல் மற்றும் யாவின் மதிப்பைக் கணக்கிட்டு, புளூடூத் தொகுதிக்கு அனுப்புகிறோம். பின்வரும் இரண்டு வரிகள் மூல கைரோ மதிப்புகள் மற்றும் வெப்பநிலை மதிப்பைப் படிக்கும்
திசையன் நெறி = mpu.readNormalizeGyro (); temp = mpu.readTemperature ();
அடுத்து, சுருதி, ரோல் மற்றும் யாவை நேர படி மூலம் பெருக்கி முந்தைய மதிப்புகள் வரை சேர்ப்பதன் மூலம் கணக்கிடுகிறோம். ஒரு timeStep எதுவும் ஆனால் அடுத்தடுத்த அளவீடுகள் இடையே இடைவெளி உள்ளது.
சுருதி = சுருதி + நெறி. YAxis * timeStep; roll = roll + norm.XAxis * timeStep; yaw = yaw + norm.ZAxis * timeStep;
நேர படிநிலையை நன்கு புரிந்துகொள்ள கீழேயுள்ள வரியைப் பார்ப்போம். MPU6050 இலிருந்து மதிப்புகளை சரியாக 10mS அல்லது 0.01 வினாடி இடைவெளியில் படிக்க இந்த வரி வைக்கப்பட்டுள்ளது. எனவே டைம்ஸ்டெப்பின் மதிப்பை 0.01 என அறிவிக்கிறோம். மேலும் நேரம் இருந்தால் நிரலை வைத்திருக்க கீழேயுள்ள வரியைப் பயன்படுத்தவும். (மில்லிஸ் () - டைமர் ()) நிரல் இதுவரை செயல்படுத்த எடுக்கப்பட்ட நேரத்தை அளிக்கிறது. நாங்கள் அதை 0.01 வினாடிகளில் கழிப்போம், மீதமுள்ள நேரத்திற்கு தாமத செயல்பாட்டைப் பயன்படுத்தி எங்கள் நிரலை அங்கேயே வைத்திருக்கிறோம்.
தாமதம் ((டைம்ஸ்டெப் * 1000) - (மில்லிஸ் () - டைமர்));
மதிப்புகளைப் படித்து கணக்கிட்டதும், அவற்றை புளூடூத் வழியாக எங்கள் தொலைபேசியில் அனுப்பலாம். ஆனால் இங்கே ஒரு பிடி உள்ளது. நாங்கள் பயன்படுத்தும் புளூடூத் தொகுதி 1 பைட் (8 பிட்கள்) மட்டுமே அனுப்ப முடியும், இது 0 முதல் 255 வரை மட்டுமே எண்களை அனுப்ப அனுமதிக்கிறது. எனவே, எங்கள் மதிப்புகளைப் பிரித்து இந்த வரம்பிற்குள் வரைபடமாக்க வேண்டும். இது பின்வரும் வரிகளால் செய்யப்படுகிறது
if (ரோல்> -100 && ரோல் <100) x = வரைபடம் (ரோல், -100, 100, 0, 100); if (சுருதி> -100 && சுருதி <100) y = வரைபடம் (சுருதி, -100, 100, 100, 200); if (temp> 0 && temp <50) t = 200 + int (temp);
நீங்கள் அதைக் கண்டுபிடிக்க முடிந்தால், ரோலின் மதிப்பு 0 முதல் 100 வரை மாறி x ஆகவும், சுருதி 100 முதல் 200 வரை மாறி y ஆகவும், தற்காலிகமானது 200 ஆகவும் அதற்கு மேல் மாறி t ஆகவும் மாற்றப்படுகிறது. நாங்கள் அனுப்பியவற்றிலிருந்து தரவை மீட்டெடுக்க அதே தகவலைப் பயன்படுத்தலாம். இறுதியாக இந்த மதிப்புகளை புளூடூத் வழியாக பின்வரும் வரிகளைப் பயன்படுத்தி எழுதுகிறோம்.
பி.டி.ரைட் (எக்ஸ்); பி.டி.ரைட் (ஒய்); பி.டி.ரைட் (டி);
முழுமையான நிரலை நீங்கள் புரிந்துகொண்டிருந்தால், நிரலைப் பார்க்க கீழே உருட்டவும், அதை Arduino போர்டில் பதிவேற்றவும்.
செயலாக்கத்தைப் பயன்படுத்தி Android பயன்பாட்டைத் தயாரித்தல்:
இந்த Arduino Inclinometer க்கான Android பயன்பாடு செயலாக்க IDE ஐப் பயன்படுத்தி உருவாக்கப்பட்டது. இது Arduino உடன் மிகவும் ஒத்திருக்கிறது மற்றும் கணினி பயன்பாடு, Android பயன்பாடு, வலை வடிவமைப்புகள் மற்றும் பலவற்றை உருவாக்க பயன்படுத்தலாம். கீழே பட்டியலிடப்பட்டுள்ள எங்கள் சில குளிர் திட்டங்களை உருவாக்க நாங்கள் ஏற்கனவே செயலாக்கத்தைப் பயன்படுத்தினோம்
- Arduino ஐப் பயன்படுத்தி பிங் பாங் விளையாட்டு
- செயலாக்கத்தைப் பயன்படுத்தி ஸ்மார்ட் போன் கட்டுப்படுத்தப்பட்ட எஃப்எம் ரேடியோ.
- செயலாக்கம் மற்றும் மீயொலி சென்சார் பயன்படுத்தி Arduino ரேடார் அமைப்பு
இருப்பினும், இந்த பயன்பாட்டை எவ்வாறு உருவாக்குவது என்பது குறித்த முழுமையான குறியீட்டை விளக்க முடியாது. எனவே இதற்கு மேல் செல்ல உங்களுக்கு இரண்டு வழிகள் உள்ளன. கீழேயுள்ள இணைப்பிலிருந்து APK கோப்பை பதிவிறக்கம் செய்து உங்கள் தொலைபேசியில் Android பயன்பாட்டை நேரடியாக நிறுவலாம். அல்லது முழுமையான செயலாக்கக் குறியீட்டைக் கண்டுபிடிக்க கீழே உருட்டவும், அது எவ்வாறு செயல்படுகிறது என்பதை நீங்களே அறிந்து கொள்ளுங்கள்
ZIP கோப்பின் உள்ளே, ஆண்ட்ராய்டு பயன்பாட்டில் ஏற்றப்பட வேண்டிய அனைத்து படங்கள் மற்றும் பிற மூலங்களைக் கொண்ட தரவு எனப்படும் கோப்புறையை நீங்கள் காணலாம். புளூடூத் தானாக எந்த பெயருடன் இணைக்கப்பட வேண்டும் என்பதை கீழே உள்ள வரி தீர்மானிக்கிறது
bt.connectToDeviceByName ("HC-06");
டிரா () செயல்பாட்டின் உள்ளே, விஷயங்கள் மீண்டும் மீண்டும் இங்கு இயக்கப்படும், நாங்கள் படங்களை வரைந்து, உரையை காண்பிப்போம் மற்றும் மதிப்புகளின் அடிப்படையில் பட்டிகளை உயிரூட்டுகிறோம் புளூடூத் தொகுதி. நிரலின் மூலம் படிப்பதன் மூலம் ஒவ்வொரு செயல்பாட்டிலும் என்ன நடக்கிறது என்பதை நீங்கள் சரிபார்க்கலாம்.
void draw () // எல்லையற்ற வளைய {பின்னணி (0); imageMode (CENTER); படம் (லோகோ, அகலம் / 2, உயரம் / 1.04, அகலம், உயரம் / 12); சுமை_ படங்கள் (); textfun (); getval (); }
இறுதியாக, விளக்க இன்னும் ஒரு முக்கியமான விஷயம் இருக்கிறது, நாங்கள் சுருதி, ரோல் மற்றும் டெம்பின் மதிப்பை 0 முதல் 255 வரை பிரித்தோம் என்பதை நினைவில் கொள்ளுங்கள். எனவே இங்கே மீண்டும் இயல்பான மதிப்புகளுக்கு மாற்றியமைப்பதன் மூலம் அதை மீண்டும் சாதாரண மதிப்புகளுக்கு கொண்டு வருகிறோம்.
if (தகவல் <100 && தகவல்> 0) x = வரைபடம் (தகவல், 0, 100, - (அகலம் / 1.5) / 3, + (அகலம் / 1.5) / 3); // x = தகவல்; else if (தகவல் <200 && தகவல்> 100) y = வரைபடம் (தகவல், 100, 200, - (அகலம் / 4.5) /0.8, + (அகலம் / 4.5) /0.8); // y = தகவல்; else if (தகவல்> 200) temp = info -200; println (தற்காலிக, x, y);
புளூடூத் தொகுதியிலிருந்து தொலைபேசியில் தரவைப் பெறுவதற்கு மிகச் சிறந்த வழிகள் உள்ளன, ஆனால் இது ஒரு பொழுதுபோக்குத் திட்டம் என்பதால் நாங்கள் அவற்றைப் புறக்கணித்துவிட்டோம், ஆர்வமாக இருந்தால் ஆழமாக தோண்டலாம்.
Arduino Inclinometer இன் வேலை:
வன்பொருள் மற்றும் பயன்பாட்டுடன் நீங்கள் தயாரான பிறகு, நாங்கள் உருவாக்கியதை வேடிக்கை பார்க்க வேண்டிய நேரம் இது. Arduino குறியீட்டை போர்டில் பதிவேற்றவும், நீங்கள் Serial.println வரிகளில் உள்ள கருத்துகளையும் அகற்றலாம் மற்றும் சீரியல் மானிட்டரைப் பயன்படுத்தி எதிர்பார்த்தபடி வன்பொருள் செயல்படுகிறதா என்று சரிபார்க்கவும். எப்படியிருந்தாலும், அது முற்றிலும் விருப்பமானது.
குறியீடு பதிவேற்றப்பட்டதும், உங்கள் மொபைல் தொலைபேசியில் Android பயன்பாட்டைத் தொடங்கவும். பயன்பாடு தானாகவே உங்கள் HC-06 தொகுதிக்கு இணைக்கப்பட வேண்டும், மேலும் இது கீழே காட்டப்பட்டுள்ளபடி பயன்பாட்டின் மேல் “இணைக்க: HC-06” ஐக் காண்பிக்கும்.

ஆரம்பத்தில், வெப்பநிலை மதிப்பைத் தவிர அனைத்து மதிப்புகளும் பூஜ்ஜியமாக இருக்கும். ஏனென்றால், இந்த நிலைக்கு MPU-6050 ஐ Arduino ஒரு அளவீடாக அளவீடு செய்துள்ளது, இப்போது நீங்கள் வன்பொருளை சாய்த்து, மொபைல் பயன்பாட்டின் மதிப்புகள் அனிமேஷனுடன் மாறுகிறதா என்பதை சரிபார்க்கலாம். பயன்பாட்டின் முழுமையான செயல்பாட்டை கீழே கொடுக்கப்பட்டுள்ள வீடியோவில் காணலாம். எனவே இப்போது நீங்கள் ப்ரெட்போர்டை எங்கும் வைக்கலாம் மற்றும் மேற்பரப்பு சரியாக சமன் செய்யப்பட்டுள்ளதா என்று சரிபார்க்கலாம்.
நீங்கள் திட்டத்தை புரிந்து கொண்டீர்கள், அதிலிருந்து பயனுள்ள ஒன்றைக் கற்றுக்கொண்டீர்கள் என்று நம்புகிறேன். உங்களுக்கு ஏதேனும் சந்தேகம் இருந்தால், தயவுசெய்து கீழே உள்ள கருத்துப் பகுதியையோ அல்லது மன்றங்களையோ பயன்படுத்தி அதைத் தீர்க்கவும்.
