இரண்டாம் நிலை சந்தையில் ஒரு சுவாரஸ்யமான சாதனத்தை ஆசிரியர் வாங்குவதில் இது தொடங்கியது - Smart Response XE (
இந்த சாதனங்கள் பல ஆண்டுகளுக்கு முன்பு நிறுத்தப்பட்டன, மேலும் பள்ளிகள் ஒவ்வொன்றும் $100- $200 க்கு வாங்கியவை இப்போது eBay இல் $10 அல்லது அதற்கும் குறைவான விலையில் வருகின்றன. அழகற்ற சோதனைகளுக்கு அங்குள்ள வன்பொருள் மிகவும் பொருத்தமானது:
- 60 விசைப்பலகை
- 384×136, பிக்சலுக்கு 2 பிட்கள் தீர்மானம் கொண்ட காட்சி - BC, CGA போன்றது, ஆனால் 4 வண்ணங்கள் அல்ல, ஆனால் பிரகாசத்தின் தரங்கள்
- மைக்ரோகண்ட்ரோலர் ATmega128RFA1 (128 kB ஃபிளாஷ் நினைவகம், 4 kB ROM, 16 kB RAM, 802.15.4 டிரான்ஸ்ஸீவர்)
- வெளிப்புற (மைக்ரோகண்ட்ரோலருடன் தொடர்புடையது, முழு சாதனம் அல்ல) SPI இடைமுகத்துடன் 1 மெகாபிட் (128 கிலோபைட்) ஃபிளாஷ் நினைவகம்
- 4 AAA உறுப்புகளுக்கான பெட்டி.
மைக்ரோகண்ட்ரோலரின் பெயரிலிருந்து இது AVR குடும்பத்தைச் சேர்ந்தது என்பது தெளிவாகிறது, அதாவது சாதனத்தை Arduino-இணக்கமாக்குவது அற்பமான பணியை விட அதிகம்...
செய்தியிலிருந்து
ஆனால் ஆசிரியர் சாதனத்தில் விளையாடாமல், படிக்கும் வாய்ப்பில் அதிக ஆர்வம் காட்டுகிறார்:
- தொடர் SPI இடைமுகத்துடன் கூடிய ஃபிளாஷ் நினைவகம்
- AVR க்கான பூட்லோடர்கள்
- தரநிலை 802.15.4
ஆசிரியர் எழுதத் தொடங்கினார்
Arduino பூட்லோடரைப் பதிவேற்ற இது போதுமானது, ஆனால் ஸ்கெட்ச் அல்ல - சீரியல் போர்ட் அங்கு இணைக்கப்படவில்லை, எனவே வழக்கைத் திறக்காமல் நீங்கள் இன்னும் செய்ய முடியாது. மேலும், முதல் சீரியல் போர்ட்டின் TX0 மற்றும் RX0 கோடுகள் விசைப்பலகை மேட்ரிக்ஸின் வாக்குப்பதிவு வரிகளுடன் இணைக்கப்பட்டுள்ளன, அதாவது காட்சியின் பக்கங்களில் உள்ள செயல்பாட்டு விசைகளை வாக்களிக்கின்றன. ஆனால் நீங்கள் என்ன செய்ய முடியும் - ஆசிரியர் இதை உருவாக்கினார்:
அவர் JTAG வரிகளை அங்கு கொண்டு வந்தார், இப்போது பேட்டரி பெட்டியைத் திறக்க வேண்டிய அவசியமில்லை. ஸ்கெட்ச்களை பதிவேற்றம் செய்ய, நான் இரண்டு சீரியல் போர்ட்களையும் ஒரே இணைப்பில் இணைத்தேன், மேலும் ஒரு சுவிட்சைச் சேர்த்தேன், ஏனெனில் பேட்டரிகள் நிறுவப்பட்டதால், சாதனத்தை வேறு வழியில் அணைக்க இயலாது.
ஒரு சாலிடரிங் இரும்பு, ஒரு பயன்பாட்டு கத்தி மற்றும் ஒரு பசை துப்பாக்கியுடன் வேலை செய்ய சிறிது நேரம் பிடித்தது. பொதுவாக, "காற்றுக்கு மேல்" ஓவியங்களைப் பதிவேற்றுவது மிகவும் வசதியானது; இதற்காக நாம் அவசரமாக ஏதாவது கண்டுபிடிக்க வேண்டும்.
ஓவியங்களைப் பதிவேற்ற Arduino IDE நிரலைப் பயன்படுத்துகிறது
இந்த சிக்கலைச் சமாளிக்க பல்வேறு வழிகளை முயற்சித்த பிறகு, ஆசிரியர் பின்வருவனவற்றைக் கொண்டு வந்தார். சாதனம் ஒரு SPI இடைமுகத்துடன் 128 KB ஃபிளாஷ் நினைவகத்தைக் கொண்டுள்ளது - நாங்கள் கம்பிகள் வழியாக தரவைப் பெறுகிறோம் (ஆசிரியர் ஏற்கனவே ஒரு இணைப்பியுடன் ஒரு சாதனத்தை பக்கத்தில் வைத்திருப்பதை நினைவில் கொள்க), இந்த நினைவகத்தை ஒரு இடையகமாகப் பயன்படுத்தி, வானொலியில் தரவை அனுப்பவும் மற்றொரு சாதனத்திற்கு சேனல். Cybiko இலிருந்து வணக்கம்.
ரேடியோ சேனலுடன் பணிபுரிய குறியீட்டை எழுதிய பிறகு, அதே போல் எழுத்துருவும், ஏற்றி 4 கிலோபைட்டுகளை விட நீளமானது. எனவே, HFUSE மதிப்பை 0xDA இலிருந்து 0xD8க்கு மாற்ற வேண்டும். இப்போது பூட்லோடர் 8 கிலோபைட்கள் வரை நீளமாக இருக்கலாம், மேலும் தொடக்க முகவரி இப்போது 0x1E000 ஆகும். இது Makefile இல் பிரதிபலிக்கிறது, ஆனால் நிரப்பும் போது கணக்கில் எடுத்துக்கொள்ளப்பட வேண்டும்
ATmega802.15.4RFA128 இல் உள்ள 1 டிரான்ஸ்ஸீவர் முதலில் நெறிமுறையைப் பயன்படுத்தி செயல்பட வடிவமைக்கப்பட்டுள்ளது.
15 மற்றும் 26 சேனல்கள் வைஃபை குறுக்கீட்டிற்கு மிகக் குறைவாகவே பாதிக்கப்படுகின்றன. அவற்றில் இரண்டாவதாக ஆசிரியர் தேர்வு செய்துள்ளார். மறுப்பு: ஜிக்பீயை இந்த வழியில் எளிமைப்படுத்த அனுமதிக்கப்படுகிறதா என்பது மொழிபெயர்ப்பாளருக்குத் தெரியாது. ஒருவேளை நாம் இன்னும் கொஞ்சம் நிரலாக்கத்தை செய்து அதை முழுமையாக செயல்படுத்த வேண்டுமா?
முதல் சாதனத்தில், STK500 நெறிமுறை வழியாக தரவை அனுப்பும் வரையறுக்கப்பட்ட நிலை இயந்திரத்தை செயல்படுத்த வேண்டியது அவசியம். பெரும்பாலும், அனுப்பப்பட்ட மற்றும் பெறப்பட்ட செய்திகள் தன்னிறைவு பெற்றவை, ஆனால் சில சேனல்கள் முன்பு அனுப்பப்பட்ட செய்திகளுடன் இணைக்கப்பட்டுள்ளன. உரையாடலின் விளக்கம் கொடுக்கப்பட்டுள்ளது
இந்த உரையாடலின் ஒரு முக்கிய அங்கம், இலக்கு சாதனத்தின் ஃபிளாஷ் நினைவகத்தில் எழுதப்படும் பாக்கெட்டுகளின் பரிமாற்றமாகும். AVR குடும்பத்தின் எளிய மைக்ரோகண்ட்ரோலர்களுக்கு, பக்க அளவு 128 பைட்டுகள், ஆனால் ATmega128RFA1 க்கு இது 256. மற்றும் SPI நெறிமுறை மூலம் இணைக்கப்பட்ட ஃபிளாஷ் நினைவகத்திற்கு, இது ஒன்றுதான். முதல் சாதனத்தில் உள்ள நிரல், ஒரு ஓவியத்தை பதிவேற்றும் போது, உடனடியாக அதை இரண்டாவது இடத்திற்கு மாற்றாது, ஆனால் அதை இந்த நினைவகத்தில் எழுதுகிறது. Arduino IDE உள்ளீட்டின் சரியான தன்மையை சரிபார்க்கும் போது, அங்கு எழுதப்பட்டவை அனுப்பப்படும். இப்போது நாம் பெற்ற தரவை ரேடியோ சேனல் வழியாக இரண்டாவது சாதனத்திற்கு அனுப்ப வேண்டும். அதே நேரத்தில், பெறுதலில் இருந்து பரிமாற்றம் மற்றும் பின்புறம் மாறுவது அடிக்கடி நிகழ்கிறது. STK500 நெறிமுறை தாமதங்களில் அலட்சியமாக உள்ளது, ஆனால் தரவு இழப்பை பொறுத்துக்கொள்ளாது (விசித்திரமானது, ஆனால் தாமதங்கள் தரவு பரிமாற்றத்தையும் பாதிக்கும் என்று மேலே கூறப்பட்டது). வயர்லெஸ் பரிமாற்றத்தின் போது ஏற்படும் இழப்புகள் தவிர்க்க முடியாதவை. ATmega128RFA1 ஆனது, பரிமாற்றத்தின் சரியான தன்மை குறித்து சந்தேகம் இருக்கும்போது மீண்டும் மீண்டும் கோரிக்கைகளை செயல்படுத்துவதற்கான உள்ளமைக்கப்பட்ட வன்பொருள் செயல்படுத்தலைக் கொண்டுள்ளது, ஆனால் ஆசிரியர் அதையே மென்பொருளிலும் செயல்படுத்த முடிவு செய்தார். அவர் ஒரு நெறிமுறையை உருவாக்கினார், அதில் அதிக தரவு மற்றொன்றை விட ஒரு வழியில் பாய்கிறது.
இது சரியானது அல்ல, ஆனால் அது வேலை செய்கிறது. 256-பைட் பக்கம் நான்கு பிரிவுகளாக பிரிக்கப்பட்டுள்ளது, அவை ஒவ்வொன்றும் ஒரு பாக்கெட்டாக காற்றில் அனுப்பப்படுகிறது. ஒரு பாக்கெட்டில் 125 பைட்டுகள் வரை டேட்டாவும், நீளத்திற்கு ஒரு பைட் மற்றும் CRC க்கு இரண்டு பைட்களும் இருக்கலாம். எனவே பக்கம் மற்றும் பிரிவு எண்களுடன் (64 முதல் 0 வரை) 3 பைட்டுகள் நீளமுள்ள துண்டுகள் அங்கு வைக்கப்பட்டுள்ளன. பெறும் சாதனத்தில் ஒரு மாறி உள்ளது, அது எத்தனை பிரிவுகள் பெறப்பட்டன என்பதைக் கண்காணிக்க அனுமதிக்கிறது, மேலும் நான்கும் வந்தவுடன், அனுப்பும் சாதனம் முழுப் பக்கமும் பெறப்பட்டதை உறுதிப்படுத்துகிறது. உறுதிப்படுத்தல் இல்லை (CRC பொருந்தவில்லை) - முழுப் பக்கத்தையும் மீண்டும் அனுப்பவும். கேபிள் வழியாக அனுப்பும்போது வேகம் இன்னும் அதிகமாக உள்ளது. பார்க்க:
ஆனால் பொதுவாக, ஓவியங்களை பதிவேற்றுவதற்கும் அதன் மூலம் சாதனங்களுக்கும் கேபிளை இணைக்க வசதியான வழியை வழங்குவது அவசியம். எடுத்துக்காட்டாக, புகைப்படத்தில் உள்ளதைப் போல CP2102 இல் அத்தகைய இடைமுக மாற்றியின் உள்ளே வைக்கவும், அதை பலகையில் ஒட்டவும், இதனால் மைக்ரோ USB கேபிளை இணைக்கும் மற்றும் துண்டிக்கும்போது அது சக்தியைத் தாங்கும்.
இது 3,3-வோல்ட் ஸ்டேபிலைசரையும் கொண்டுள்ளது (6 வோல்ட் மின்சாரம் உள்ள சாதனத்தில் இதை எவ்வாறு பயன்படுத்துவது - ஒரே நிலைப்படுத்தி இருந்தால் மட்டுமே, மேலும் இரண்டு டையோட்களைச் சேர்த்து, அவற்றில் எது சாதனத்தை இயக்கும் என்பதைத் தானாகவே தேர்ந்தெடுக்கலாம்) . மூன்று எல்.ஈ.டிகளும் இடைமுக மாற்றி பலகையில் இருந்து விற்கப்படாமல் இருக்க வேண்டும், இல்லையெனில் அவை பேட்டரிகளை இயக்கும் போது கூடுதலாக ஏற்றும், மேலும் விசைப்பலகை வாக்கெடுப்பில் தலையிடும் மற்றும் SPI இடைமுகத்துடன் ஃபிளாஷ் நினைவகத்துடன் வேலை செய்யும்.
ஒரு இலக்கைப் பின்தொடர்வது அதை அடைவதை விட சுவாரஸ்யமாக மாறியது (மேலும் பஸ்ஸைப் பற்றிய நகைச்சுவை தேவையில்லை). AVR பூட்லோடர்கள், SPI ஃபிளாஷ் நினைவகம், STK500 நெறிமுறை மற்றும் 802.15.4 தரநிலை பற்றி ஆசிரியர் நிறைய கற்றுக்கொண்டார்.
மேலே விவரிக்கப்பட்ட நூலகத்துடன் சேர்த்து மற்ற எல்லா குறியீடுகளும் -
ஆதாரம்: www.habr.com