Tartalomjegyzék:

Szövegfelolvasás Kattintson egy ARMbasic Powered UChip -re és más ARMbasic Powered SBC -re: 3 lépés
Szövegfelolvasás Kattintson egy ARMbasic Powered UChip -re és más ARMbasic Powered SBC -re: 3 lépés

Videó: Szövegfelolvasás Kattintson egy ARMbasic Powered UChip -re és más ARMbasic Powered SBC -re: 3 lépés

Videó: Szövegfelolvasás Kattintson egy ARMbasic Powered UChip -re és más ARMbasic Powered SBC -re: 3 lépés
Videó: Szövegek előállítása és formázása gépelés nélkül 2024, November
Anonim
Szövegfelolvasás Kattintson egy ARMbasic Powered UChip -re és más ARMbasic Powered SBC -re
Szövegfelolvasás Kattintson egy ARMbasic Powered UChip -re és más ARMbasic Powered SBC -re
Szövegfelolvasás Kattintson egy ARMbasic Powered UChip -re és más ARMbasic Powered SBC -re
Szövegfelolvasás Kattintson egy ARMbasic Powered UChip -re és más ARMbasic Powered SBC -re
Szövegfelolvasás Kattintson egy ARMbasic Powered UChip -re és más ARMbasic Powered SBC -re
Szövegfelolvasás Kattintson egy ARMbasic Powered UChip -re és más ARMbasic Powered SBC -re

Intro: Jó napot. A nevem Tod. Űrhajózási és védelmi szakember vagyok, aki szívemben egy kicsit stréber is.

Inspiráció: A betárcsázós BBS, a 8 bites mikrokontrollerek, a Kaypro/Commodore/Tandy/TI-994A személyi számítógépek korszakából származik, amikor a Radio Shack üzletek bőségesek voltak (a jó időkben), az egyik első hobbi beágyazott projektem volt egy MEK6800D2 Motorola mikroprocesszoros oktató készlettel dolgozom, amelyet az MSU EE laboratóriumában szövetkezeti munka közben vásároltam (miután elvégeztem a High School Electronics VoTech képzést Dél-Alsó-MI-n). Ez a projekt magában foglalta a prototípusom elkészítését a Radio Shack SP0256 NARRATOR ™ SPEECH PROCESSOR-ra a MEK6800D2-re, a bekötést és a 6800 programozását, hogy álbeszédet bocsásson ki (azok, akik az SP0256 alapú HW-vel dolgoztak, pontosan tudják, mire utalok)). Csodálatosan működött, és haladtam a fogak vágásának útján a beágyazott mikrovezérlőkben és az Összeszerelésben. A középiskola után az élet akadályba ütközött, a katonaság, a háború, a házastársak, a gyerekek, a civil szektorba való belépés, a karrier megkezdése stb. itt az USA -ban).

Ugorjon előre 20 évet, és elérkezik az elkerülhetetlen időhöz, amikor a gyerekek olyan éretté válnak, hogy a menyasszony és én elvonjuk a figyelmet, a jelzálog-/jármű-/főiskolai számlákat lassan kifizetik, a bevételek pedig javulnak az előrehaladással, és elegendő tartalékom van amikor már elkezdhettem önző törekvésekre összpontosítani, visszavettem a hobbi elektronikai koncertet. Mindenesetre, tekintettel a származásomra és a történelemre, megkerestem és megtaláltam a fejlesztői környezetet, amelyhez gyorsan kötődtem - ARMbasic - A BASIC volt az első szerelmem, és ez megfelelt annak, hogy nem csak a programozáshoz kellett hozzászoknom, hanem vadonatúj hardverrel is dolgoztam erősebb, mint amivel évtizedekkel korábban kezdtem, és így kezdődött az utazás.

Ez 2006-2009 körül volt. Aztán rajtunk kívül álló okok miatt az élet megváltozott (ahogy sokukban az évek során). A hobbik felfüggesztve - új karrierre összpontosítson, felépüljön a pénzügyi küzdelmekből (nagymértékben az ingatlanügyekhez tartozott, mi pedig a rövidnadrágot vettük fel, és a fiatalok éppen arra a pontra jutottak, amikor a főiskolai finanszírozás elengedhetetlen volt). Alapvetően az élet és az első világ problémái (igazán boldogok vagyunk, figyelembe véve azokat a kihívásokat és fáradságokat, amelyekkel a világ más részein élő emberek naponta küzdenek) nyilvánultak meg, és… a hobbi elmaradt. Röviden visszaemlékeztem rá 2011-2012-ben, majd újabb karrierváltással találkoztam-a hobbit ismét leállítottuk.

Gyorsan előre egy évtizeddel, és… visszatértem, és jó Istenem, remélhetőleg az időtartamra (amíg le nem veszem ezt a közmondásos piszkos szundit, és alulról fel nem tolom a százszorszépeket). Szóval, itt vagyunk. Wow - Arduino (mi ez a furcsa szó?) Megrohamozta a piacot. Készítők ?? Mi a fene van ?! …:) Barátaim a Coridium Corp-nál (az ARMbasic és az ARM-alapú mikrovezérlő fejlesztői táblák tulajdonosai) rendíthetetlenek és igazak maradtak. Most az LPC2xxx vezérlősorozat helyett az ARM, és a Cortex M0/M3/M4, valamint az Arduino és… WOW! A kultúra meglehetősen átalakult, és sok szempontból nagyszerű. A Peeps távolról és valóban globálisan is együttműködik. A hardverek elképesztően gyorsak és erőteljesek, és az ARMbasic, miután sokféle szilíciumcsaládban megérett és kitartóan edzett, számomra és még sokan mások számára is szépség.

Így egy nagyon rövid novellát készítve, nemrégiben ráakadtam a MikroElectronika TTS kattintására, és éreztem, hogy a nosztalgia áradata árad szét bennem. Perceken belül rendelt egyet, és a következő napokban aggódott, amíg az egység kézbe nem érkezett. Így kezdődik a történet…

Kellékek

  • 1 ea MikroElectronika Text to Speech Click, tartalmazza az Epson S1V30120 - a modul TTS ASIC
  • 1 ea ARMbasic Target, a TTS Host szerepét betöltve
  • 1 db Uno Breakout Shield (vagy kenyértábla prototípusa, vagy…)
  • 1 ea hangszóró vagy hangszórókészlet PC asztali hangszórókat javasol 1/8 "-os TRS csatlakozóval
  • 1 tétel Prototípus -készítés drót, forrasztás, fluxus, kanóc, forrasztópáka, fejlécek, IC aljzatok és hasonlók.
  • 1 tétel beágyazott fejlesztőeszköz DMM, logikai szonda, logikai elemző, hatókör stb. - új TTS Host MCU -khoz

1. lépés: A hardver összekapcsolása

Hardver összekapcsol
Hardver összekapcsol
Hardver összekapcsol
Hardver összekapcsol
Hardver összekapcsol
Hardver összekapcsol

Ha ezt meg szeretné ismételni egy ARMbasic célponttal Uno űrlapfaktorban, vagy egy Itaca uChip segítségével, akkor valószínűleg az lenne a legjobb, ha prototípuspajzsot használna, ahogy azt a fenti képeken tettem (egyszerű amazon link)

Néhányan látni fogják a csavart drótkötélhuzalt, és csodálkoznak, miért-a közös módú zajszűrés az egyszerű válasz. Igen, itt nem kiegyensúlyozott jelekkel foglalkozunk, de arra gondoltam, hogy nem árthat (?), Így ezt megtettem, amikor a tábla felépítését végeztem.

Elég jóindulatú kialakítás. A nyomatokat ide csatoljuk, grafika formájában (az AutoCAD 2D az, amit a legjobban megszoktam - évtizedekig dolgoztam vele napi munkám során -, még mindig vágom a KiCAD fogaimat, és ez túl egyszerű próbálkozás volt indokolja a tanulási görbét a KiCAD első projektjeként). Mindenesetre úgy döntöttem, hogy az uChip foglalatot közvetlenül a pajzsra szerelem, hogy lehetővé tegyem az önálló használatot, amikor az uChip-t gazdagépként használom. Hozzáadtam egy JST-t az akkumulátorról történő tápláláshoz, ha erre vágyom, és mivel van néhány extra, kasztelláltam egy Adafruit SWD Breakout-ot, hogy szükség esetén használhassam a Segger J-Link EDU hibakereső szondámat. Nem, de megtartom rajta az SWD i'face -t, hogy felhasználhassam a jövőbeli projektekben.

A kasztellált ebben az összefüggésben azt jelenti, hogy a NYÁK széleit le kell reszelni úgy, hogy az átlapolt lyukak félhengerekre csökkenjenek, lehetővé téve a forrasztást egy hordozó NYÁK -ra - ebben az esetben a pajzsleválasztó táblára. Úgy döntöttem, hogy ezt teszem, mivel a pajzs lapos csomagolású fanout részei nem teljesen igazodtak az SWD BOB két fejléce közötti sorközhöz. Feltört egy lapos fájlt és 5 percnyi iratot, és a probléma megoldódott.

2. lépés: Programozás és tesztelés

Programozás és tesztelés
Programozás és tesztelés
Programozás és tesztelés
Programozás és tesztelés
Programozás és tesztelés
Programozás és tesztelés

A hardver felépítése után teljes körű lecsatlakozásra lesz szükség annak ellenőrzéséhez, hogy a vezetékek megfelelőek-e. Ezután mindig ellenőrzöm az áramellátást és a földelést. Ez nemcsak azt biztosítja, hogy a Power és a Ground ott vannak, ahol lennie kellene, hanem azt is, hogy a többi olyan termináció, amely nem rendelkezik árammal/földdel, nem lesz ott. Ez nem fárasztó feladat egy ilyen kis projektnél, de nagyobb rendszerek esetén ez, bár valóban unalmas lépés, feltétlenül szükséges annak biztosításához, hogy egyetlen részegységet vagy csatlakoztatott rendszert ne vegyen ki egy ostoba hiba. lehetett és kellett volna elkapni. Általában a lehető legkevesebb árut csatolom hozzá, hogy áramot termeljen a táblán, majd minden rész vagy csatlakozó áramellátását és földelését ellenőrzöm, mielőtt csatlakoztatom a részegységeket, chipeket stb., És megbizonyosodok arról, hogy a teljesítmény megfelelő (figyelembe véve a nem 5V-toleráns eszközöket/IO, 1v8 és 3v3 követelményeket stb.), és ez a talaj ott van, ahol lennie kell, és csak ott, ahol lennie kell. Szemtanúja lehettem, hogy egy repülőgépen meghibásodások léptek fel olyan emberektől, akik nem végezték el a megfelelő előcsatlakozási ellenőrzéseket. Az egyik esetben több mint 100 ezer dollárnyi LRU -t vett ki - nem volt szórakoztató idő egy projektért felelős lenni, és egy pillanat alatt oldalra állni, mert valaki rövidre zárta a folyamatot. Egy másik dolog, amiben bűnös vagyok, az unalmas „közeli ellenőrzések” elvégzése - ügyelve arra, hogy a kapcsolatok/végződések ne legyenek rövidre zárva a szomszédos kapcsolatokkal/végződésekkel. Ez kritikussá válik, ha koaxiális szerelvényekkel, többvezetékes/árnyékolt hevederekkel stb. Van dolga. Ok, lekerültem a szappandobozról…

Ha a biztonság biztosított, csatlakoztassa a dolgokat, kapcsolja be, majd kezdje el a TTS Host (ARMbasic Target MCU) programozását, mint sok beágyazott MCU -cél esetén. Rögzítettem egy videót, amely a TTS Click programozását és egyszerű használatát mutatja be. Itt megtekintheti.

Az ARMbasic forráskód innen tölthető le - egy fórumbejegyzés, amely további részleteket tartalmaz. A Coridium blogbejegyzést készített ezekről az erőfeszítésekről, amelyet ide kattintva érhet el.

3. lépés: A forrás módosítása más ARMbasic célokhoz és különféle elképzelésekhez

A forrás módosítása más ARMbasic célokhoz és különféle elképzelésekhez
A forrás módosítása más ARMbasic célokhoz és különféle elképzelésekhez
A forrás módosítása más ARMbasic célokhoz és különféle elképzelésekhez
A forrás módosítása más ARMbasic célokhoz és különféle elképzelésekhez
A forrás módosítása más ARMbasic célokhoz és különféle elképzelésekhez
A forrás módosítása más ARMbasic célokhoz és különféle elképzelésekhez
A forrás módosítása más ARMbasic célokhoz és különféle elképzelésekhez
A forrás módosítása más ARMbasic célokhoz és különféle elképzelésekhez

Nem fárasztom Önt a szükséges lépésekkel, hogy módosítsa a forráskódot, hogy más ARMbasic célokkal működjön együtt, kivéve azt, hogy jelezem, hogy a forráskód -megjegyzések sokaságában erre készülök. Kérjük, szánjon időt a tts.bas fájl feltörésére, és olvassa el, milyen változtatásokra van szükség, ha úgy dönt, hogy a kódot egy másik ARMbasic-alapú vezérlőre szeretné átvinni.

Mellékeltem néhány képet, amelyeket a fejlesztési ciklus során készítettem, hogy működésbe léphessek.

Tanulságok:

  1. Ha nem használt bemenetekkel rendelkező logikai elemzője van, és további cél -IO -kat nem használ az adott munkához, ne féljen ezeket az IO -kat hibakeresési eszközként használni - az IO csóválása a kód különböző pontjain hatalmas segítség annak nyomon követésében, hogy mi működik, és mi nem a várt módon, azonosítani a hülye időzítési problémákat (azaz a megszakításokat, amelyek a bittütéses soros kommunikációt érintik), és összességében jobban megérteni az erőfeszítéseit.
  2. Nem minden ARM vezérlő egyforma. Ez nyilvánvaló. Azonban kaptam egy kicsit azzal, hogy megcsináltam az első fejlesztést egy LPC1765 Coridium SuperPRO -n. Utólag az tette rossz választássá, hogy ez az ARM mag megvalósítása lehetővé tette a szavakhoz nem igazított hozzáférést a memóriához. Amikor átvittem a C kódot az ARMbasic -ba, a dolgok egészen simán mentek, amíg meg nem próbáltam használni egy SAMD21 céllal - a pokol elszabadult, és a dolgok hihetetlenül borkódtak az egyenetlen hozzáférés miatt a pufferek feltöltésekor, a zászlók manipulálásakor, az ARMbasic verzióval való együttműködésben az általam felépített struktúrák/szakszervezetek stb. Fájdalmas lecke volt. Az elvitel itt: Ha valaki hordozható kódot szeretne használni, fejlesztő a legszigorúbb jelölt célpontra, csak hogy megbizonyosodjon arról, hogy nem kell drámával szembesülnie a projekt végén, amikor valószínűleg a legjobban izgatja a erőfeszítéseiket..:)
  3. A C kód ARMbasicba történő átvitele NEM lehetetlen. Ez az erőfeszítés nagyrészt egy óriási hordozó képzési evolúció volt. Ha valaki időt szán arra, hogy összehasonlítsa az eredeti C forrásokat az általam készített ARMbasic kóddal, akkor képesnek kell lennie arra, hogy ötletekkel szolgáljon olyan dolgok megvalósításához, amelyek esetleg nem tartoznak az ARMbasic alaptervének (azaz a struktúrák) közé.
  4. Kezelje az ilyen dolgokat kezelhető darabokban. Alapértelmezés szerint én vagyok az, aki szeret rendszeresen látni kielégülést. Egy ilyen törekvés, mint például ezek az áthelyezési és fejlesztési erőfeszítések, valószínűleg nem lesz valami, amit egyetlen éjszaka alatt el lehet érni. Tűzz ki reális célokat, és törekedj ugyanazok felé, próbáld meg nem túlterhelni a „nagy képet”.
  5. A logikai elemző kulcsfontosságú volt ebben az erőfeszítésben. Igen, alacsonyabb középkategóriás DS-Logic+ egységem van, de határozottan kijelenthetem, hogy az Amazóniából származó olcsó, 12,50 dolláros 24 MHz-es sávszélességű LA több mint elegendő lenne. Tegyük hozzá, hogy a Sigrok PulseView -jával (ingyenes) (dekódolja a protokollt), és egy nagyon robusztus rendszerrel fog rendelkezni, amely sokféle forgatókönyvben működhet, például abban, amit ezzel a projekttel igyekeztem elvégezni. Győződjön meg róla, hogy olyan egységet szerez be, amely tesztcsipeszekkel rendelkezik, vagy külön rendeljen tesztklipeket, mivel ezek rendkívül (mennyire Trumpfeldian) előnyösek.
  6. Egy egyszerű logikai szonda is nagyon hasznos eszköz. A munkaterület áttekintő képén egy ősi Archer (Radio Shack) logikai szondát láthat a kép jobb alsó sarkában. Őszintén meglepődtem, amikor rájöttem, mennyire hasznos valami ilyesmi a mindennapokban, még egy jól felszerelt labor mellett is.

Lehet, hogy korábban linkeltem ezeket, de nem emlékszem, és lusta vagyok nézni. Itt van egy blogbejegyzés, amely tartalmazza a TTS modul működéséről készült videót (az Itaca uChip akkoriban üzemelteti), valamint az ARMbasic Forum bejegyzést, ahol letölthető a hordozott ARMbasic forráskód.

Vigyázz magadra és érezd jól magad a hackelésben!

-MHz

Ajánlott: