תוכן עניינים:

עוקב אור מיני ATTiny-RAT, ATTINY: 3 שלבים
עוקב אור מיני ATTiny-RAT, ATTINY: 3 שלבים

וִידֵאוֹ: עוקב אור מיני ATTiny-RAT, ATTINY: 3 שלבים

וִידֵאוֹ: עוקב אור מיני ATTiny-RAT, ATTINY: 3 שלבים
וִידֵאוֹ: כשמפתיעים אותך בקניון🕺 2024, יולי
Anonim
עורך אור מיני ATTiny-RAT, ATTINY
עורך אור מיני ATTiny-RAT, ATTINY
עורך אור מיני ATTiny-RAT, ATTINY
עורך אור מיני ATTiny-RAT, ATTINY
עורך אור מיני ATTiny-RAT, ATTINY
עורך אור מיני ATTiny-RAT, ATTINY
עורך אור מיני ATTiny-RAT, ATTINY
עורך אור מיני ATTiny-RAT, ATTINY

אהלן חבר 'ה, עבר זמן מה מאז שפרסמתי את ההדרכה האחרונה שלי. ובכן, הרבה דברים מסתובבים לי בראש כרגע, אבל הצלחתי לתעד את "הצעדים הראשונים" שלי עם שבבי סדרת ATTiny במדריך הקצר הזה עבורך.

הזמנתי כמה דגימות ATTINY85 רק כי רציתי לבדוק אותן:-) (כולם אוהבים לבדוק דברים, נכון?). לאחר מכן התחלתי לצייר כמה רעיונות למחברת שלי. למען האמת הדבר הראשון שעשיתי היה להבהב נורית שהיא כתמיד התחלה טובה לבדוק אם ההתקנה/כלי העבודה שלך פועלים. ניסיתי גם כורת טמפרטורה ולחות עם DHT22 ו- SoftwareSerial. זה היה מסובך מכיוון שספרייות ה- DHT מיועדות בעיקר לשעון 16 מגה -הרץ (אם אתה מתכנן לעשות דבר כזה, בדוק כיצד לבצע שינוי גודל של השעון הפנימי). אבל החלטתי להראות לך משהו שהוא, ובכן, פשוט יותר מצחיק. BTW: העליתי עבורך אחד הציורים שלי, זה לא רמברנדט אבל זה יראה לך איך העליתי את הרעיון המטופש הזה (באמת) על פיסת נייר: -פ.

השתמשתי רק בדברים שהיו לי בשכיבה כדי שהפרויקט הזה יהיה זול ככל האפשר (בשבילי). התוצאה של ההרפתקה הקטנה הזו היא "רובוט עוקב" קטן בסביבות 10-15 $ (3 $ בשבילי:-P)

אז אם אתה מתעניין ב- ATTINY בעצמך פשוט קרא עוד.

BTW: סליחה על האנגלית הגרועה שלי (אני לא דובר שפת אם)

שלב 1: תחילת העבודה עם ATTiny וכלים וחומרים

תחילת העבודה עם ATTiny וכלים וחומרים
תחילת העבודה עם ATTiny וכלים וחומרים
תחילת העבודה עם ATTiny וכלים וחומרים
תחילת העבודה עם ATTiny וכלים וחומרים
תחילת העבודה עם ATTiny וכלים וחומרים
תחילת העבודה עם ATTiny וכלים וחומרים
תחילת העבודה עם ATTiny וכלים וחומרים
תחילת העבודה עם ATTiny וכלים וחומרים

מה תצטרך כדי להתחיל:

- שבב ATTiny85

- UNO Arduino או דומה

-abreadboard עם חוט מגשר או מתכנת ATTINY או הכין בעצמך מגן מתכנת עבור Arduino (בדוק את התמונות המצורפות, יש סכמטי מ- avdweb.nl). גם אני הכנתי את זה ואני ממש שמח עם זה השינוי היחיד שביצעתי הוא שהוספתי שקע לסדרת ATTinyx4 (עיין בתמונה ובדיאגרמות ה- pinout).

- ה- Arduino IDE (קבל את זה כאן)

- קבצי הקשה של ArduinoIDE (הורד והתקן אותם)

קישור מידע לקידום המשחקים קישור לקבצי github בהם השתמשתי

- טען את הארדואינו כסקיצה של ספק האינטרנט ל- UNO (זה יהיה המתכנת שלך)

- עקוב אחר הוראה זו (https://highlowtech.org/) או הוראה זו (מאת ardutronix) ונסה את שרטוט ה"מצמץ "(שנה את מספר ה- PIN. השתמש בתמונת ATTINY כהפניה! תזדקק ל- ATTINY המוכנס מראש מראש LED. ונגד ~ 220 אוהם לזה)

הכינו לוח קטן כדי לבדוק הכל. אם עשיתם הכל נכון הנורית תהבהב ואתם מוכנים לצאת לדרך

כלים

- מגהץ הלחמה- הלחמה כלשהי- חוט תיל קטן- דרמל או כלי סיבוב אחר (רק לחיתוך הלוח!)- כמה דבק חם- פינצטה- חוטים

חומרים

- PCB (~ 4 ס"מ x 6 ס"מ יעשה את זה)- 2x LDR- 5x 10k Resistor (2x ל- LDRs ו- 2x עבור הטרנזיסטורים BE, 1x LED)- 1x 330Ohm Resistor (1x NEOPIXELS)- 2x LDR- 1x LED (צבע שלך בחירה, במקום גלגל הגלגלים)- 3x NEOPIXEL WS2812- 2x טרנזיסטור (BD137 או דומה)- 2x דיודה (1N4001 או דומה)- 2x מיקרומוטור (למשל ממיקרו-quadcopter Hubsan)- 1x ATTINY85 + אופציונלי (מומלץ) 8PIN שקע IC- 1x 1s LIPO (השתמשתי ב- 140Ah ממסוק RC ישן)- כמה כותרות סיכות/שקעים- shrinktube (דיור LDR)

בואו נמשיך בבניית החומרה …

שלב 2: חומרה

חוּמרָה
חוּמרָה
חוּמרָה
חוּמרָה
חוּמרָה
חוּמרָה

אם יש לך מבט על התרשימים שצירפתי, התקנת החומרה היא די פשוטה. אז אם אתה מסוגל לקרוא סכמות ולהשתמש במגהץ, זה חצי הטריק. תסתכל גם על התמונות, הוספתי לך כמה הערות.

אני לא מספק תוכנית לחיתוך ה- PCB, יש לך את החופש ליצור עיצוב משלך (היו יצירתיים והראו לנו את הבוטים הקטנים שלכם). המיקום של כל הרכיבים האלקטרוניים תלוי גם בכם. כמה רמזים מהצד שלי:

נסה ליישר את המנועים במדויק (צפה בזווית!) אנו משתמשים רק בגיר המנוע במקום בגלגלים. (זה יצרוך פחות אנרגיה) אני ממליץ למקם את המנועים מתחת לסוללה (משקל) ולהשתמש ב- LDRs בחזית (45 ° בזווית) בשילוב עם LED (אני מנסה להשתמש בשילוב זה למניעת מכשולים, עוד יש צורך בבדיקות).

בנוסף, אני ממליץ לעשות מגשר/כיבוי קטן כדי שהסוללה לא תאבד כל כך בקלות.

אם יש משהו לא ברור או אם יש לך שאלות, פשוט שאל אותי. זה לא יגרום לזנים רבים להכין תזה מהפרויקט הקטן הזה.

שלב 3: תוכנה

תוֹכנָה
תוֹכנָה
תוֹכנָה
תוֹכנָה

קודם כל הורד והתקן את ספריית ADAFRUIT Neopixel

הנה הקוד שלי עם כמה תיאורים מרכזיים (הוספתי גם את קובץ הסקיצות). לא הגבתי על כל שלב כי אני חושב שזה לא הכרחי.

העלה את הסקיצה אל ה- ATTiny85 שלך ותהנה עם הצעצוע החדש שלך

רעיונות לפונקציית "אישיות" + אולי דוגמאות קוד יתקבלו בברכה:-)

אם יש שאלות אתה מוזמן לשאול.

אני מקווה שנהניתם מההדרכה הקצרה שלי ומהטיול הקטן בעולם של ATTINYs.

/* רובוט עוקב אור ATTINY85-Rata פשוט מונע ATTINY85. גרסה 2.0, מאת אור מרקוס */

#לִכלוֹל

#לִכלוֹל

// מנועים

#define LMOTOR 0 #define RMOTOR 1 // נוריות #הגדר PIXELPIN 2 #הגדר NUMPIXEL 3 // LDRs #הגדר LLDR A2 #הגדר RLDR A3

// אחר אינמו = 0; קליף צף; תחליב בוליאני; Oldmillis ארוך; // הגדר NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

הגדרת חלל ()

{// שעון יוקרתי אחרת תתקלו בכמה בעיות תזמון (lib neopixel נכתב עבור 16MHz) #if מוגדר (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // לאתחל פיקסלים PIXEL.begin (); PIXEL.show (); עיכוב (500); // startsequence עבור (int i = 0; i

לולאת חלל ()

{if (lightfollow () == 1) {שמאל (); } אחרת אם (lightfollow () == 2) {right (); } אחרת אם (lightfollow () == 0) {קדימה (); } רגש (); }

int lightfollow () {

int treshold = 14; תוצאה int = 0; צף שמאלה = 0; צף ימינה = 0; int דוגמאות = 1; // קרא LDRs עבור (int j = 0; j <samples; j ++) {

left = left + analogRead (LLDR); ימין = ימין + (analogRead (RLDR)*calib);

}

// לחשב את התוצאה (מאיזה כיוון האור מגיע?)

אם ((שמאל/דוגמאות)> ((ימין/דוגמאות)+סף)) {result = 2;}

אחרת אם ((שמאל/דוגמאות) <((מימין/דוגמאות) -טרסה)) {result = 1;}

אחרת {result = 0;}

תוצאת החזרה; } void forward () {// Forward analogWrite (LMOTOR, 230); analogWrite (RMOTOR, 230); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }

ריק שמאל () {

// LWT analogWrite (LMOTOR, 150); analogWrite (RMOTOR, 255); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); //PIXEL.setPixelColor(1, PIXEL. Color (75, 0, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 100, 0)); PIXEL.show (); }

בטל זכות () {

// RIGHT analogWrite (LMOTOR, 255); analogWrite (RMOTOR, 150); PIXEL.setPixelColor (0, PIXEL. Color (0, 100, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }

// זה מיועד לניסויים נוספים, מנסה לתת לזו קצת אישיות:-) אני בודק מה יכול לעשות, אבל עדיין אין רעיונות טובים.

רגש חלל () {int emotimer = 2500; משך int = אקראי (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); אמו = אקראי (1, 4); } if (millis () - oldmillis> duration) {emostate =! emostate; } אם (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); לשבור; מקרה 2: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); לשבור; מקרה 3: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); לשבור; ברירת מחדל: PIXEL.setPixelColor (1, PIXEL. Color (אקראי (0, 255), אקראי (0, 255), אקראי (0, 255))); PIXEL.show (); לשבור; }} else {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}

מוּמלָץ: