תוכן עניינים:
- אספקה
- שלב 1: חיבורי חומרה
- שלב 2: תכנות ובדיקה
- שלב 3: שינוי המקור ליעדים אחרים של ARMbasic והרהורים שונים
וִידֵאוֹ: טקסט לדיבור לחץ על אוניברסיטת ARMbasic Powered ו- SBCs מופעל ARMbasic: 3 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:13
מבוא: יום טוב. שמי טוד. אני איש מקצוע בתחום החלל וההגנה, שהוא גם קצת חנון בלב.
השראה: מקורו בעידן BBS בחיוג, מיקרו-בקרים של 8 סיביות, מחשבים אישיים של Kaypro/Commodore/Tandy/TI-994A, כאשר חנויות Radio Shack היו בשפע (בימים הטובים), אחד הפרויקטים הראשונים שהוטמעו בתחביב שלי היה עבודה עם ערכת הדרכה למיקרו-מעבד מוטורולה MEK6800D2, שרכשתי בזמן שעבדתי כקואופרטיב במעבדות MSU EE (לאחר שסיימתי את לימודי ה- VoTech של אלקטרוניקה בתיכון בדרום MI התחתון). פרויקט זה כלל את אבות הטיפוס שלי של מעבד הדיבור Radio Shack SP0256 NARRATOR ™ אל ה- MEK6800D2, חיווט אותו ותכנת את 6800 בכדי לגרום לו לשדר דיבור פסאודו (מי שעבד עם HW מבוסס SP0256 יודע בדיוק למה אני רומז.). זה עבד נפלא והתקדמתי בדרך של חיתוך שיניים במיקרו -בקרים והרכבה משובצים. לאחר התיכון, החיים הפריעו לצבא, למלחמה, לבני זוג, לילדים, להיכנס למגזר האזרחי, לפתוח קריירה וכו ', כל אלה הוסיפו למדפי את התחביב שלי לטובת המשך מאמצי החיים בתרבות מערבית (כאן בארה ב).
דלגו קדימה 20 שנה, מגיעים לתקופה הבלתי נמנעת שבה הילדים מתבגרים עד כדי כך שאני והכלה מסיחים את הדעת, המשכנתא/רכבים/שטרות משתלמים לאט לאט, הרווחים משתפרים עם התקדמות ויש לי מספיק פנוי זמן עד לנקודה שבה אוכל להתחיל להתמקד מחדש בכמה מאמצים אנוכיים, הרמתי לעצמי את הופעת האלקטרוניקה בתחביב. בכל אופן, בהתחשב בשושלת שלי ובהיסטוריה שלי, חיפשתי ומצאתי סביבה מפותחת שהתחברתי אליה במהירות - ARMbasic - BASIC הייתה האהבה הראשונה שלי וזה התאים להצעת החוק לא רק להתאקלם מחדש בתכנות, אלא לעבוד עם חומרה שהייתה הרבה יותר פרועה. חזק ממה שהתחלתי איתו עשרות שנים קודם לכן, וכך החל המסע.
זה היה בסביבות 2006-2009. ואז, מסיבות הרבה מעבר לשליטתנו, החיים השתנו (כפי שהיו עבור רבים במהלך אותן שנים). תחביבים נגנזו - התמקדו בקריירה חדשה, התאוששו ממאבקים כלכליים (הוקנו בכבדות בתחום הנדל ן ולקחנו את זה במכנסיים הקצרים והצעירים בדיוק הגיעו לנקודה שבה מימון מכללות היה הכרחי). בעיקרון, בעיות החיים והעולם הראשון (אנו מבורכים באמת, בהתחשב באתגרים ובעמלים שאנשים באזורים אחרים בעולם נאבקים בהם על בסיס יומי) התבטאו ו … התחביב נגנז. קלטתי אותו בקצרה בשנים 2011-2012, ואז נתקלתי בשינוי קריירה נוסף-התחביב נגנז שוב.
מהר קדימה עוד עשור ו … אני חוזר, ואלוהים הטוב, בתקווה למשך כל הזמן (עד שאני אשתה את תנומת העפר הפתגמלית הזו ואתחיל לדחוף חינניות מלמטה). אז הנה אנחנו. וואו - ארדואינו (מהי המילה המוזרה הזו?) הסתערה על השוק. יוצרים ?? מה הם לעזאזל ?! …:) החברים שלי ב- Coridium Corp (בעלי לוחות התפתחות מבוססי ARMbasic ו- ARM מבוססי ARM) נותרו יציבים ונכונים. עכשיו, במקום סדרת הבקרים LPC2xxx, יש את הישות החדשה (בעיני) של ARM, ו- Cortex M0/M3/M4, ו- Arduino, ו- … WOW! התרבות השתנתה לא מעט, ובאופן נהדר. מציצים משתפים פעולה מרחוק, ואכן, ברחבי העולם. החומרה נעשית מהירה ועוצמתית להפליא, ו- ARMbasic, לאחר שהתבגרה והתקשה בהתמדה עם תעסוקה במשפחות רבות של סיליקון, היא דבר של יופי עבורי ועבור רבים אחרים.
אז, מה שהופך סיפור קצר לארוך מאוד, נתקלתי לאחרונה בלחיצת TTS של MikroElectronika והרגשתי שטף של נוסטלגיה זורמת מעלי. האם אחד הזמין בצורה של דקות, וחרד בימים הקרובים עד שהיחידה הגיעה ביד. מכאן מתחיל הסיפור…
אספקה
- 1 MikroElectronika Click to Speech Click, מכיל את Epson S1V30120 - TTS ASIC של המודול
- 1 ea ARMbasic Target, שממלא את תפקיד מארח TTS
- 1 אונו מגן פריצה (או לוח אב טיפוס, או …)
- רמקול אחד או סט רמקולים מציעים רמקולים המופעלים על שולחן העבודה עם תקע TRS בגודל 1/8 אינץ '
- 1 מגרש אב טיפוס חוטים, הלחמה, שטף, פתיל, מלחם, כותרות, שקעי IC וכדומה.
- 1 חלקה Embedded Dev DMM, בדיקת לוגיקה, מנתח לוגי, היקף וכו ' - עבור TU מארחים חדשים של TTS Host
שלב 1: חיבורי חומרה
כדי לשכפל זאת באמצעות מטרה ARMbasic בגורם צורת Uno, או עם Itaca uChip, סביר להניח שהשימוש הזה יהיה הטוב ביותר על ידי שימוש במגן אב טיפוס, כפי שעשיתי בתמונות לעיל (קישור פשוט לאמזון)
חלק יראו את החוט המפותל יחד ויתהו מדוע-דחיית רעש במצב נפוץ היא התשובה הפשוטה. כן, אנחנו לא מתעסקים כאן באותות מאוזנים, אבל הבנתי שזה לא יכול להזיק (?) אז עשיתי את זה כשעשיתי את הצטברות הלוח.
זהו עיצוב די שפיר. ההדפסים מצורפים כאן, בצורה של גרפיקה (AutoCAD 2D זה מה שאני הכי רגיל אליו - לאחר שעבדתי עם זה עשרות שנים בעבודת היום -יום שלי - אני עדיין חותך את שיני KiCAD וזה היה מאמץ פשוט מדי להצדיק את עקומת הלמידה כפרויקט ראשון ב- KiCAD). בכל אופן, בחרתי להרכיב את שקע uChip ישירות למגן כדי לאפשר מקרה שימוש עצמאי בעת השימוש ב- uChip כמארח. הוספתי JST להפעלת אותו באמצעות סוללה, אם ארצה לעשות זאת, ומכיוון שיש לי כמה תוספות, קסטלתי פריצת SWD של Adafruit כדי לאפשר לי להשתמש בבדיקת הבאגים של SEGER J-Link EDU, במקרה הצורך. זה לא קרה, אבל אני שומר את ה- ipad של SWD על זה לשימוש עם פרויקטים עתידיים.
Castellated פירושו, בהקשר זה, להגיש את הקצוות של ה- PCB כך שהחורמים המצופים הופחתו לחצי צילינדרים, מה שמאפשר הלחמה על לוח PCB נושא - במקרה זה לוח פריצת המגן. בחרתי לעשות זאת כיוון שחלקים המאושרים של המגן לא תואמים את מרווח השורות בין שתי שורות הכותרת ב- SWD BOB. פרץ קובץ שטוח ו -5 דקות של הגשה ופתרון הבעיה.
שלב 2: תכנות ובדיקה
לאחר בניית החומרה, יהיה צורך בחיוג מלא כדי לאמת שהחיווט תקין. לאחר מכן, אני תמיד מבצע בדיקת חשמל וקרקע. זה לא רק מבטיח שכוח וקרקע נמצאים במקום שבו הם אמורים להיות, אלא שאף אחת מהסיומות האחרות שלא אמורות להיות להן כוח/קרקע שם לא תהיה. זו אינה משימה מייגעת בפרויקט קטן שכזה, אך עם מערכות-מערכות גדולות יותר, היא אמנם מהווה שלב מייגע, אך היא הכרחית בהחלט על מנת להבטיח כי תת-מכלולים או מערכות מחוברות לא יימחקו בטעות מטופשת ש יכול היה וצריך היה להיתפס. בדרך כלל אני מצרף את המינימום של סחורות כך שייווצר חשמל על הלוח ולאחר מכן בודק כל סיכה/סיום לאיתור חשמל וקרקע לפני חיבור תת-מכלולים, שבבים וכו ', וודא שהספק ברמה הנכונה. (בהתחשב במכשירים שאינם סובלני 5V/IO, דרישות 1v8 ו- 3v3 וכו ') וכי הקרקע היא המקום בו הוא צריך להיות ורק היכן שהוא צריך להיות. ראיתי מפל של כשלים במטוס מאנשים שלא הצליחו לבצע בדיקות נאותות לפני חיבור. במקרה אחד, זה לקח יותר מ -100 אלף דולר של LRUs - לא זמן מהנה להיות אחראי על הפרויקט ולגרום לו ללכת הצידה ברגע כי מישהו קצר את התהליך. דבר נוסף שאני אשם בו הוא לבצע 'בדיקות סביבה' מייגעות - לוודא שאנשי קשר/סיום לא יקצרו לאנשי קשר/סיום. זה נהיה קריטי אם מתמודדים עם מכלולים קואקסיאליים, רתמות מרובות מוליכים/מוגנים וכו '. בסדר, אני מחוץ לקופסת הסבון …
ברגע שהבטיחות מובטחת, חבר את הדברים, העבר אותו ואז תרד לתכנת את מארח TTS (ARMbasic Target MCU) בדיוק כפי שהיה עושה עם מטרות MCU משובצות רבות. הקלטתי סרטון המתאר את התכנות והשימוש הפשוט ב- TTS Click. אתה יכול לצפות בו כאן.
ניתן להוריד את קוד המקור ARMbasic מכאן - פוסט בפורום שיש בו פרטים נוספים. Coridium פרסם פוסט בבלוג על מאמצים אלה, שאליהם תוכל להגיע באמצעות לחיצה כאן.
שלב 3: שינוי המקור ליעדים אחרים של ARMbasic והרהורים שונים
אני לא אפרט אותך על הצעדים הדרושים לשינוי קוד המקור לעבודה עם מטרות ARMbasic אחרות, מלבד להצביע על כך שאני משתדל לעשות זאת בשפע הערות קוד המקור בו. אנא הקדש את הזמן לפצח את קובץ tts.bas וקרא על השינויים הנדרשים אם תבחר להעביר את הקוד לבקר אחר המונע על ידי ARMbasic.
מצורפות כאן כמה תמונות שצילמתי במהלך מחזור ההתקדמות של ההפעלה הזו.
לקחים:
- אם יש לך מנתח לוגי עם תשומות שאינן בשימוש ויש לך IOs מטרה נוספים שאינם משמשים לעבודה בהישג יד, אל תפחד להשתמש ב- IOs ככלי ניפוי באגים - פיזור ניווט של IO בנקודות שונות בקוד יכול להיות עזרה ענקית במעקב אחר מה שעובד ומה לא עובד כצפוי, לזהות בעיות תזמון מטופשות (כלומר הפרעות המשפיעות על תקשורת סדרתית חבטות), ולהשיג באופן כללי הבנה טובה יותר של המאמצים שלך בכללותם.
- לא כל בקרי ה- ARM זהים. זה ברור. עם זאת, קצת השתפרתי על ידי ביצוע ההתפתחות הראשונית ב- LPC1765 Coridium SuperPRO. בדיעבד, מה שהפך זאת לבחירה גרועה הוא שהיישום של ליבת ARM זו אפשר גישה לזיכרון שאינו מיושר למילים. כאשר העברתי את קוד C ל- ARMbasic, הדברים התנהלו בצורה חלקה למדי עד שניסיתי להשתמש בו עם מטרה של SAMD21 - כל הגיהינום התפרק והדברים נבלעו ללא אמונה עקב גישה לא מיושרת בעת מילוי מאגרים, מניפולציות של דגלים, עבודה עם הגרסה ARMbasic. של מבנים/איגודים שהגעתי אליהם וכו 'זה היה שיעור כואב. ההרחקה כאן: אם ברצונך לקבל קוד נייד, התכוון ליעד המועמד המגביל ביותר, רק כדי להבטיח שלא תתמודד עם דרמה בסוף הפרויקט, כאשר סביר להניח שהוא נרגש ביותר להשתמש בפירותיו של המאמצים שלהם..:)
- העברת קוד C ל- ARMbasic אינה בלתי אפשרית. מאמץ זה היה במידה רבה אבולוציה אחת של אימוני העברה. אם לוקח את הזמן להשוות בין מקורות C המקוריים לקוד ARMbasic שעיצבתי, צריך להיות מסוגל לבוא עם כמה רעיונות כיצד ליישם דברים שאולי אינם חלק מתכנון הליבה של ARMbasic (כלומר מבנים).
- להתמודד עם דברים כאלה בנתחים הניתנים לניהול. כברירת מחדל, אני אחד שאוהב לראות סיפוקים על בסיס קבוע. מאמץ כגון מאמצי העברה והתפתחות אלה לא צפוי להיות משהו שאפשר לבצע בלילה אחד. קבע מטרות ריאליסטיות ועבוד לקראת אותן, מנסה לא להציף מ'התמונה הגדולה '.
- מנתח לוגי היה קריטי במאמץ זה. כן, יש לי יחידת DS-Logic+ בינונית-נמוכה יותר, אבל אני יכול להדגיש בנחישות שרוחב פס 24MHz בזול של 12 מגה-הרץ של אמזון יהיה מספיק. חבר את זה עם PulseView של Sigrok (בחינם) (מבצע פענוח פרוטוקול) ואחת תהיה עם מערכת מאוד חזקה שאמורה לפעול בהמון תרחישים כמו מה שניסיתי לבצע עם הפרויקט הזה. הקפד להשיג יחידה הכוללת קטעי בדיקה, או הזמנת קליפים לבדיקה בנפרד, מכיוון שהם מועילים מאוד (עד כמה טרומפלדדי).
- בדיקה לוגית פשוטה היא גם כלי שימושי מאוד. בתמונת הסקירה של חלל העבודה תוכלו לציין בדיקה לוגית עתיקה של Archer (Radio Shack) בפינה הימנית התחתונה של התמונה. הופתעתי באמת לגלות עד כמה דבר כזה שימושי על בסיס יומי, אפילו עם מעבדה מאובזרת היטב.
אולי קישרתי לאלה מוקדם יותר בעניין זה, אבל אני לא זוכר ואני עצלן מכדי להביט. להלן פוסט בבלוג הכולל סרטון של מודול TTS בפעולה (Itaca uChip מארח אותו באותו זמן) ופוסט הפורום של ARMbasic שבו ניתן להוריד את קוד המקור ARMbasic המועבר.
שמור על עצמך ותהנה בפריצה!
-MHz
מוּמלָץ:
HX1 -DM - מכונת התופים DIY מופעל Arduino DUE מופעל DIY (עשוי עם מכונה מתה MK2): 4 שלבים
HX1 -DM - מכונת התופים DIY המופעלת על ידי Arduino DUE מופעל (עשוי עם מכונה מתה MK2): המפרט. בקר / מכונת תופים היברידית מידי: Arduino DUE מופעל! 16 רפידות חישה מהירות עם זמן אחסון נמוך מאוד 1 &ms; ידיות 8 ידיות שניתן להקצות לכל פקודה Midi #CC 16ch sequencer מובנה (אין צורך במחשב !!) MIDI in/out/thru functio
ממיר טקסט לדיבור Arduino באמצעות LM386 - פרויקט ארדואינו מדבר - ספריית טוקי ארדואינו: 5 שלבים
ממיר טקסט לדיבור Arduino באמצעות LM386 | פרויקט ארדואינו מדבר | ספריית טוקי ארדואינו: היי חבר'ה, ברבים מהפרויקטים אנו דורשים מארדואינו לדבר משהו כמו שעון דיבור או לספר נתונים כלשהם כך שניתן להמיר טקסט לדיבור באמצעות ארדואינו
תותח פנאומטי אוטומטי. מופעל Arduino מופעל: 13 שלבים
תותח פנאומטי אוטומטי. נייד ו Arduino מופעל: היי לכולם! זו ההנחיה להרכיב תותח פנאומטי נייד. הרעיון היה ליצור תותח שיכול לירות דברים שונים. הצבתי כמה מטרות עיקריות. אז מה התותח שלי צריך להיות: אוטומטי. כדי לא לדחוס אוויר באופן ידני עם
Arduino TTS (טקסט לדיבור): 3 שלבים (עם תמונות)
Arduino TTS (טקסט לדיבור): היי חברים היום במדריך זה אלמד אתכם כיצד לגרום לארדואינו לדבר ללא מודול חיצוני. כאן נוכל להשתמש בזה בפרויקטים רבים כמו מדחום דיבור, רובוטים ועוד רבים אחרים. אז בלי לבזבז הרבה זמן נתחיל בפרויקט הזה
טקסט לדיבור Bullhorn: 4 שלבים
Bullhorn טקסט לדיבור: זוהי הדרך הקלה ביותר שמצאתי ליצור טקסט יעיל לשוורת לחבר חירש. כי אתה יודע, זה גורם להם להיות אפילו יותר מבולבלים. זה לא פרויקט בנייה מספק או חינוכי במיוחד, וזה דורש ממך לקנות כמה