ይህ ሁሉ የተጀመረው ደራሲው በሁለተኛ ገበያ ላይ አንድ አስደሳች መሣሪያ በመግዛት ነው - ስማርት ምላሽ XE (
እነዚህ መሳሪያዎች ከበርካታ አመታት በፊት የተቋረጡ ሲሆን እያንዳንዳቸው ከ100-200 ዶላር የተገዙት ትምህርት ቤቶች አሁን በ10 ዶላር ወይም ከዚያ ባነሰ ዋጋ በ eBay ብቅ አሉ። እዚያ ያለው ሃርድዌር ለጂኪ ሙከራዎች በጣም ተስማሚ ነው-
- 60 ቁልፍ ሰሌዳ
- ማሳያ በ 384 × 136 ጥራት ፣ 2 ቢት በፒክሰል - ከBC ፣ CGA ጋር ተመሳሳይ ፣ ግን 4 ቀለሞች አይደሉም ፣ ግን የብሩህነት ደረጃዎች
- ማይክሮ መቆጣጠሪያ ATmega128RFA1 (128 ኪባ ፍላሽ ማህደረ ትውስታ፣ 4 ኪባ ROM፣ 16 ኪባ ራም፣ 802.15.4 ትራንስሴቨር)
- ውጫዊ (ከማይክሮ መቆጣጠሪያ ጋር በተዛመደ ፣ መላው መሣሪያ አይደለም) 1 ሜጋ ቢት (128 ኪሎባይት) ፍላሽ ማህደረ ትውስታ ከ SPI በይነገጽ ጋር።
- ክፍል ለ 4 AAA አካላት.
ከማይክሮ መቆጣጠሪያው ስም የ AVR ቤተሰብ እንደሆነ ግልጽ ነው፣ ይህ ማለት መሣሪያውን አርዱኢኖ-ተኳሃኝ ማድረግ ከቀላል በላይ ስራ ነው…
ከዜና
ግን ደራሲው በመሳሪያው ላይ ላለመጫወት እድሉን የበለጠ ፍላጎት አለው ፣ ግን ለማጥናት-
- ፍላሽ ማህደረ ትውስታ ከተከታታይ SPI በይነገጽ ጋር
- ቡት ጫኚዎች ለ AVR
- መደበኛ 802.15.4
ደራሲው በመጻፍ ጀመረ
ይህ የ Arduino ቡት ጫኚውን ለመጫን በቂ ነው, ግን ንድፍ አይደለም - ተከታታይ ወደብ እዚያ አልተገናኘም, ስለዚህ አሁንም ጉዳዩን ሳይከፍቱ ማድረግ አይችሉም. እንዲሁም የመጀመሪያው ተከታታይ ወደብ TX0 እና RX0 መስመሮች ከኪቦርዱ ማትሪክስ የድምጽ መስጫ መስመሮች ጋር ይጣመራሉ, ማለትም በማሳያው ጎኖች ላይ ያሉትን የተግባር ቁልፎችን የሚመረምሩ. ግን ምን ማድረግ ይችላሉ - ደራሲው ይህንን ገንብቷል-
የ JTAG መስመሮችን እዚያ አመጣ, እና አሁን የባትሪውን ክፍል መክፈት አያስፈልግም. እና ንድፎች እንዲሰቀሉ፣ ሁለቱንም ተከታታይ ወደቦች ከአንድ ማገናኛ ጋር አገናኘኋቸው፣ እንዲሁም መቀየሪያን ጨምሬያለሁ፣ ምክንያቱም ባትሪዎቹ ሲጫኑ መሣሪያውን በሌላ መንገድ ለማጥፋት በአካል የማይቻል ነው።
ከተሸጠው ብረት፣ የመገልገያ ቢላዋ እና ሙጫ ጠመንጃ ጋር ለመስራት ብዙ ጊዜ ወስዷል። በአጠቃላይ ፣ ንድፎችን “በአየር ላይ” መስቀል የበለጠ ምቹ ነው ፣ ለዚህ የሚሆን ነገር በአስቸኳይ መፍጠር አለብን።
Arduino IDE ንድፎችን ለመስቀል ፕሮግራሙን ይጠቀማል
ይህንን ችግር ለመፍታት የተለያዩ መንገዶችን ከሞከሩ በኋላ, ደራሲው የሚከተለውን አቅርቧል. መሣሪያው 128 ኪባ ፍላሽ ማህደረ ትውስታ ከ SPI በይነገጽ ጋር አለው - በሽቦዎቹ ላይ መረጃን እንቀበላለን (ጸሐፊው ቀድሞውኑ አንድ ማገናኛ ያለው በጎን በኩል እንዳለው አስታውስ) ፣ ይህንን ማህደረ ትውስታ እንደ ቋት ይጠቀሙ እና መረጃውን በሬዲዮ ይላኩ ሰርጥ ወደ ሌላ መሳሪያ. ሰላም ከሳይቢኮ።
ከሬዲዮ ቻናሉ ጋር አብሮ ለመስራት ኮዱን ከፃፈ በኋላ እንዲሁም ቅርጸ-ቁምፊው ጫኚው ከ 4 ኪሎባይት በላይ ሆነ። ስለዚህ የHFUSE እሴት ከ0xDA ወደ 0xD8 መቀየር ነበረበት። አሁን የማስነሻ ጫኚው እስከ 8 ኪሎባይት ሊረዝም ይችላል፣ እና የመነሻ አድራሻው አሁን 0x1E000 ነው። ይህ በ Makefile ውስጥ ይንጸባረቃል, ነገር ግን በሚሞሉበት ጊዜ ግምት ውስጥ መግባት አለበት
በ ATmega802.15.4RFA128 ውስጥ ያለው 1 አስተላላፊ በመጀመሪያ ፕሮቶኮሉን ተጠቅሞ እንዲሰራ ታስቦ የተሰራ ነው።
15 እና 26 ቻናሎች ለዋይፋይ ጣልቃገብነት በጣም የተጋለጡ መሆናቸውን ታወቀ።ጸሃፊው ሁለተኛውን መርጧል። የክህደት ቃል፡ ተርጓሚው ዚግቢን በዚህ መንገድ ለማቃለል ይፈቀድለት እንደሆነ አያውቅም። ምናልባት ትንሽ ተጨማሪ ፕሮግራሚንግ አድርገን ሙሉ በሙሉ ተግባራዊ ማድረግ አለብን?
በመጀመሪያው መሣሪያ ላይ በ STK500 ፕሮቶኮል በኩል መረጃን የሚያስተላልፍ ውሱን ግዛት ማሽንን መተግበር አስፈላጊ ነው. በአብዛኛው, የሚተላለፉ እና የተቀበሉት መልእክቶች እራሳቸውን የቻሉ ናቸው, ነገር ግን አንዳንዶቹ ቀደም ብለው በሰርጡ ውስጥ ካለፉት ጋር የተሳሰሩ ናቸው. የንግግሩ መግለጫ ተሰጥቷል።
የዚህ ምልልስ አስፈላጊ አካል ወደ መድረሻ መሳሪያው ፍላሽ ማህደረ ትውስታ ለመፃፍ የታቀዱ ፓኬቶችን ማስተላለፍ ነው. ለአቪአር ቤተሰብ ቀላል ማይክሮ ተቆጣጣሪዎች የገጹ መጠን 128 ባይት ነው ፣ ለ ATmega128RFA1 ግን 256 ነው ። እና በ SPI ፕሮቶኮል በኩል ለተገናኘው ፍላሽ ማህደረ ትውስታ ተመሳሳይ ነው። በመጀመሪያው መሣሪያ ውስጥ ያለው ፕሮግራም ንድፍ ሲሰቅል ወዲያውኑ ወደ ሁለተኛው አያስተላልፍም, ነገር ግን ወደዚህ ማህደረ ትውስታ ይጽፋል. Arduino IDE የመግቢያውን ትክክለኛነት ሲፈትሽ እዚያ የተጻፈውን ይላካል። አሁን የተቀበለውን መረጃ በሬዲዮ ቻናል ወደ ሁለተኛው መሳሪያ ማስተላለፍ አለብን. በተመሳሳይ ጊዜ ከመቀበል ወደ ማስተላለፍ እና ወደ ኋላ መቀየር ብዙ ጊዜ ይከሰታል. የSTK500 ፕሮቶኮል ለመዘግየቶች ደንታ ቢስ ነው፣ ነገር ግን የውሂብ መጥፋትን አይታገስም (የሚገርም ነገር ግን መዘግየቶች የውሂብ ማስተላለፍ ላይም ተጽዕኖ እንደሚያሳድሩ ከላይ ተነግሯል)። እና በገመድ አልባ ስርጭት ጊዜ ኪሳራዎች የማይቀሩ ናቸው. ATmega128RFA1 ስለ ዝውውሩ ትክክለኛነት ጥርጣሬዎች በሚፈጠሩበት ጊዜ ተደጋጋሚ ጥያቄዎችን የሚያካትት የሃርድዌር አተገባበር አለው ፣ ግን ደራሲው በራሱ በሶፍትዌር ውስጥ ተግባራዊ ለማድረግ ወስኗል። ከሌላኛው መንገድ ብዙ መረጃ የሚፈስበት ፕሮቶኮል አዘጋጅቷል።
ፍፁም አይደለም፣ ግን ይሰራል። ባለ 256 ባይት ገጽ በአራት ክፍሎች የተከፈለ ሲሆን እያንዳንዳቸው በአየር ላይ እንደ ፓኬት ይተላለፋሉ። አንድ ፓኬት እስከ 125 ባይት ዳታ እና አንድ ባይት ርዝመት እና ሁለት ባይት ለ CRC መያዝ ይችላል። ስለዚህ 64 ባይት ረዣዥም ቁርጥራጮች ከገጽ እና ክፍል ቁጥሮች (ከ 0 እስከ 3) እዚያ ተቀምጠዋል። መቀበያ መሳሪያው ምን ያህል ክፍሎች እንደተቀበሉ ለመከታተል የሚያስችል ተለዋዋጭ አለው, እና አራቱም ሲደርሱ, መላኪያ መሳሪያው ሙሉውን ገጽ እንደተቀበለ ማረጋገጫ ይቀበላል. ምንም ማረጋገጫ የለም (CRC አልተዛመደም) - ሙሉውን ገጽ እንደገና ይላኩ። ፍጥነቱ በኬብል ከሚተላለፉበት ጊዜ የበለጠ ነው። ተመልከት፡
ነገር ግን በአጠቃላይ ንድፎችን ለመስቀል እና በእሱ በኩል ገመዱን ከመሳሪያዎቹ ጋር ለማገናኘት ምቹ መንገድ ማቅረብ አስፈላጊ ይሆናል. ለምሳሌ በፎቶው ላይ እንደሚታየው በሲፒ2102 ውስጥ እንደዚህ ያለ በይነገጽ መቀየሪያ ውስጥ ያስቀምጡ እና የማይክሮ ዩኤስቢ ገመድ ሲገናኙ እና ሲያላቅቁ ኃይሉን እንዲቋቋም ከቦርዱ ጋር ይለጥፉ።
እንዲሁም ባለ 3,3 ቮልት ማረጋጊያ አለው (እና ባለ 6 ቮልት ሃይል ባለው መሳሪያ ውስጥ እንዴት እንደሚጠቀሙበት - ተመሳሳይ ማረጋጊያ ካለው ብቻ እና ከመካከላቸው የትኛውን መሳሪያውን እንደሚያንቀሳቅስ በራስ-ሰር ለመምረጥ ሁለት ዳዮዶችን ማከል ይችላሉ) . ሶስቱም ኤልኢዲዎች ከኢንተርኔት መቀየሪያ ሰሌዳ ያልተሸጡ መሆን አለባቸው፣ አለበለዚያ ባትሪዎቹን በላያቸው ላይ ሲሰሩ በተጨማሪ ይጭናሉ፣ እና በቁልፍ ሰሌዳ ምርጫ ላይ ጣልቃ ይገባሉ እና በፍላሽ ማህደረ ትውስታ በ SPI በይነገጽ ይሰራሉ።
ግብን ማሳደድ እሱን ከማሳካት የበለጠ አስደሳች ሆኖ ተገኝቷል (እና ስለ አውቶቡሱ ቀልድ አያስፈልግም)። ደራሲው ስለ AVR ቡት ጫኚዎች፣ ስለ SPI ፍላሽ ማህደረ ትውስታ፣ ስለ STK500 ፕሮቶኮል እና ስለ 802.15.4 መስፈርት ብዙ ተምሯል።
ከላይ ከተገለጸው ቤተ-መጽሐፍት በተጨማሪ ሁሉም ሌሎች ኮድ -
ምንጭ: hab.com