मैं Arduino के साथ AtTiny85 (या अन्य AtTiny) का उपयोग कैसे करूं?

कृपया ध्यान दें कि यह एक "उदाहरण" प्रश्न है।

"छोटे arduino" कैसे बनाएं?

मैंने एटीटीनी 85 के ऑफ ई-बे का एक गुच्छा आदेश दिया है, वे छोटे Arduino की तरह हैं।

मैंने नवीनतम Arduino IDE सेट अप किया है और उदाहरण झपकी

मेरी प्रक्रिया अब तक:

तारों

enter image description here

संहिता

(झपकी उदाहरण)

// the setup function runs once when you press reset or power the board
void setup() {
 //initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);  //turn the LED on (HIGH is the voltage level)
  delay(1000);             //wait for a second
  digitalWrite(13, LOW);   //turn the LED off by making the voltage LOW
  delay(1000);             //wait for a second
}
1

1 उत्तर

1। छोटा

एटटीनी Arduino से थोड़ा अलग है, यह "पूरी तरह से संगत" होने की उम्मीद नहीं है। यह एक माइक्रोकंट्रोलर है जो सिर्फ एक Arduino का हिस्सा है और एक पूर्ण Arduino खुद नहीं है।

यह "उन्नत उपयोगकर्ताओं" के लिए एक डिवाइस है और कुछ और लचीलापन (उपयोगिता की लागत पर) देता है। आप आसानी से इस माइक्रोक्रोनरोलर को एक ब्रेडबोर्ड पर जोड़ सकते हैं, क्योंकि एक ब्रेडबोर्ड पर एक पूर्ण Arduino डालने से थोड़ा समझ आता है।

1.1 यूएसबी?

चूंकि एटीटीनी एक माइक्रोकंट्रोलर है (जैसे अरुडेनो पर एटमेगा) और विकास बोर्ड नहीं (एक आर्डिनो के रूप में), इसमें यूएसबी कनेक्टर नहीं है। एटीटीनी श्रृंखला में हार्डवेयरयूएआरटी (आरएक्स/टीएक्स) भी नहीं है।

आपको अपने माइक्रोकंट्रोलर को स्थिर बिजली-आपूर्ति की देखभाल करनी होगी और प्रोग्रामिंग थोड़ा और मुश्किल होगी (नीचे विवरण)। हालांकि SoftwareSerial और एक अनुकूलित बूटलोडर का उपयोग करना संभव है। मेरा ATtiny85 115200 जुर्माना के साथ सॉफ़्टवेयर धारावाहिक चलाता है, हालांकि मुझे एक पोस्ट मिली है जिसमें कहा गया है कि आंतरिक ऑसीलेटर चाहिए विश्वसनीय कनेक्शन के लिए ट्यून किया जाए ।

1.2 रैम/प्रोग्राम मेमोरी

एटीटीनी में कम रैम और प्रोग्राम मेमोरी है। इसका अनिवार्य रूप से मतलब है कि आपका कार्यक्रम सामान्य Arduino के रूप में 'बड़ा' नहीं हो सकता है। इसका मतलब यह भी है कि आप ज्यादा चर का उपयोग नहीं कर सकते हैं। छोटे के लिए एक कार्यक्रम "छोटा" या बहुत ही कुशल होना चाहिए।

1.3 "गति"

मेरा एटीटीनी 1 मेगाहर्ट्ज आंतरिक घड़ी सेट के साथ आया था, लेकिन यदि आप फ्यूज बिट्स बदलते हैं तो आप इसे 8 मेगाहट्र्ज पर चला सकते हैं। एक मानक Arduino बोर्ड पर 16 मेगाहट्र्ज घड़ी है। तो आपका कोड डिफ़ॉल्ट रूप से 16x धीमा और "अधिकतम" पर 2x धीमी गति से चलाएगा। आप एटीटीनी के लिए बाहरी घड़ी का उपयोग कर सकते हैं, लेकिन यह 2 पिन खाता है। अच्छी चीज यह है कि, जब आप इसे 1 मेगाहर्ट्ज पर सेट करते हैं तो यह लगभग 2.7 वी (पहले डेटाशीट जांचें) चला सकता है।

Arduino                   16Mhz
ATtiny (standard)         1Mhz
ATtiny (set fuses)        8Mhz
ATtiny (external crystal) up to 20Mhz

उच्च एमएचजेड तेज है। ध्यान रखें कि 1 मेगाहर्ट्ज प्रति सेकेंड लगभग 1000000 निर्देश हैं, जो कि अभी भी बहुत तेज है और ज्यादातर अवसरों के लिए काफी अच्छा है, खासकर इस तरह के एक छोटे से डिवाइस पर।

2। छोटे प्रोग्रामिंग

अधिकांश एटीटीनी एक अनुकूलित (सॉफ्टवेयर धारावाहिक) Arduino बूटलोडर के साथ नहीं आते हैं। इसका अनिवार्य रूप से मतलब है कि आपको अपने द्वारा कस्टम बूटलोडर जला देना है या किसी अन्य प्रकार के प्रोग्रामर का उपयोग करना है। आपको वास्तव में बेन हेक से वीडियो देखना चाहिए। वह बताते हैं कि Arduino बोर्डों के पास बोर्ड पर एक यूएसबी कनवर्टर है और कस्टम कोड है जो आपके Arduino "बूटलोड" करने में सक्षम है। लेकिन आईसीएसपी/आईएसपी प्रोग्रामर का उपयोग बूटलोडर/यूआर्ट कनेक्शन के बिना प्रोग्राम अपलोड करने के लिए किया जाता है।

2.1 प्रोग्रामर

आपके पास बहुत सारे विकल्प हैं, अपने Arduino IDE में "टूल" टैब में "प्रोग्रामर" आइटम देखें। मैं एक यूएसबीएसपी का उपयोग कर रहा हूं जिसे eBay के रूप में कम से कम 3 € । आपको एक ऐसा चयन करना चाहिए जिसमें एक चयन योग्य वोल्टेज (3.3V और 5V) हो।

(यदि आपके ATTiny85 में पहले से ही बूटलोडर है, जो असंभव है, तो आप अपलोड करने के लिए सॉफ़्टवेयर आरएक्स/टीएक्स पिन का उपयोग कर सकते हैं)

2.2 तैयारी

अपने माइक्रोकंट्रोलर को जांचें यदि यह वास्तव में एक ATtiny85 है, तो मेरे ई-बे पुनर्विक्रेता में वास्तव में एक ATtiny45 शामिल था, जो अपलोड करने का प्रयास करते समय "त्रुटि" का कारण बनता है।

Arduino आईडीई "ATtiny बोर्ड" नहीं जानता है, तो आप इसे आसानी से नहीं चुन सकते हैं। आपको आईडीई को यह बताना होगा कि एटीटीनी भी प्रोग्राम किया जा सकता है।

मुझे एक बहुत ही अच्छा ट्यूटोरियल मिला जो वर्णन करता है कि यह कैसे करें।

  1. Open the preferences dialog in the Arduino software. Find the “Additional Boards Manager URLs” field near the bottom of the dialog.
  2. Paste the following URL into the field (use a comma to separate it from any URLs you’ve already added): https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
  3. Click the OK button to save your updated preferences.
  4. Open the boards manager in the “Tools > Board” menu.
  5. Scroll to the bottom of the list; you should see an entry for “ATtiny”.
  6. Click on the ATtiny entry. An install button should appear.
  7. Click the install button. The word “installed” should now appear next to the title of the ATtiny entry.
  8. Close the boards manager. You should now see an entry for ATtiny in the “Tools > Board” menu.

2.3 आंतरिक घड़ी बदलना

कुछ मुझे मिली दिलचस्प पोस्ट ने मुझे बताया कि आप आंतरिक घड़ी/ऑसीलेटर बदल सकते हैं 8 एमएचजेड (आंतरिक) को घड़ी के रूप में चुनकर और "बर्नलोडर बर्न" बटन दबाकर 8 मेगाहट्र्ज तक। यह बूटलोडर फ्लैश नहीं करेगा (क्योंकि इससे Tiny85 पर थोड़ा सा अर्थ नहीं होता है) लेकिन फ्यूज-बिट्स बदलता है।

2.4 कोड

आप मानक ब्लिंक ट्यूटोरियल से दूर नहीं होंगे। यह डिजिटल पिन 13 का उपयोग करता है (छोटे केवल 8 पिन होते हैं)।

Mind that you might have to upload using Ctrl+Shift+U (or sketch->Upload with programmer).

I used the diagram below to check the pins (from highlowtech.org) enter image description here enter image description here

3। हार्डवेयर

आपका "योजनाबद्ध" पूरा नहीं हुआ है, मुझे प्रोग्राम करने या माइक्रोकंट्रोलर को शक्ति देने का कोई तरीका नहीं दिख रहा है। और आप कुछ सावधानी बरतना चाहेंगे।

मैं व्यक्तिगत रूप से सोचता हूं कि "ब्रेडबोर्ड व्यू" के रूप में एक अच्छी तरह से तैयार योजनाबद्ध दिखता है।

enter image description here

रीसेट पिन पर 10 कोहम पुल-अप प्रतिरोधी डेटाशीट के अनुसार 100% उत्तराधिकारी नहीं है । लेकिन यूनो के संदर्भ में एक है (जिसे मैं संदर्भ के रूप में उपयोग करता हूं)।

दो कैपेसिटर हैं, एक जलाशय के रूप में एक "बड़ा" संधारित्र। यदि एक डिवाइस अचानक बहुत सारे खींचता है, तो यह संधारित्र इसे संभाल लेगा। छोटे decoupling संधारित्र अन्य आईसी के शोर या स्विचिंग आपूर्ति के शोर को डंप करेगा। यह इनके साथ काम कर सकता है, लेकिन आपका सर्किट उनके साथ अधिक विश्वसनीय होगा। ध्यान दें कि decoupling संधारित्र आईसी के करीब (शारीरिक रूप से) होना चाहिए।

आप प्रोग्रामिंग हेडर के माध्यम से बोर्ड को पावर कर सकते हैं, लेकिन ध्यान रखें कि आपको 3.3V और 5V (सबसे अधिक संभावना) के बीच एक चिकनी वोल्टेज की आवश्यकता होगी। यदि आप इसे एक बड़ी वोल्टेज (9वी बैटरी) के साथ शक्ति देना चाहते हैं तो आपको वोल्टेज नियामक की आवश्यकता होगी।

0
जोड़ा
सीरियल और यूएसबी के संबंध में आपके कई "आप नहीं कर सकते" दावा गलत हैं - कोई हार्डवेयर समर्थन नहीं है, लेकिन दोनों नियमित रूप से बूटलोडर उपयोग सहित सॉफ़्टवेयर कार्यान्वयन के साथ किए जाते हैं। यह स्पष्ट नहीं है कि यहां एक उत्तर के आवश्यक रूप से सीमित रूप में एक अपूर्ण प्रस्तुति लोगों को एक पक्ष बना रही है जब कहीं और अधिक विकसित प्रस्तुतियां हैं जिन्हें इसके बजाय इंगित किया जा सकता है। वेब पर डुप्लिकेट करने के लिए Stackexchange मौजूद नहीं है ...
जोड़ा लेखक rossp, स्रोत
@ChrisStratton मैंने बयानों को अपडेट किया है, मुझे सहमत होना चाहिए कि वे कम से कम आधा सच थे, क्योंकि "कस्टम बूटलोडर" अपलोड करने से एक अन्य प्रकार का प्रोग्रामर भी लगता है। मैंने कई स्रोतों को जोड़ दिया है (और संदर्भित) जो बहुत आसानी से हो सकते हैं। एक और मुद्दा यह है कि जो कोई अपेक्षाकृत नया है, वह आसानी से एक पृष्ठ पर सभी महत्वपूर्ण जानकारी पा सकता है, और अगर वे थोड़ा और देखें तो अधिक जानकारी प्राप्त कर सकते हैं।
जोड़ा लेखक dotnetengineer, स्रोत
@ChrisStratton मैंने पोस्ट "समुदाय विकी" बनाया है ताकि हर कोई योगदान दे सके (मुझे अपवॉट के लिए अंक नहीं मिलेगा)। मेरा मानना ​​है कि यह बेहतर होगा अगर हर कोई (जो एटीटीनी की खोज करना चाहता है) एक खुले "संदर्भ" या "स्टार्टर गाइड" में योगदान दे सकता है। जो हर कोई अपना ब्लॉग बनाते हुए बेहतर काम करेगा;)
जोड़ा लेखक dotnetengineer, स्रोत