Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Laitteisto yhdistää
- Vaihe 2: Ohjelmointi ja testaus
- Vaihe 3: Lähteen muuttaminen muita ARMbasic -kohteita ja erilaisia ajatuksia varten
Video: Teksti puheeksi Napsauta ARMbasic Powered UChip ja muut ARMbasic Powered SBC: t: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Intro: Hyvää päivää. Nimeni on Tod. Olen ilmailu- ja puolustusalan ammattilainen, joka on myös hieman nörtti.
Inspiraatio: Kotoisin dial-up BBS: n, 8-bittisten mikro-ohjaimien, Kaypro/Commodore/Tandy/TI-994A -tietokoneiden aikakaudelta, kun Radio Shack -myymälöitä oli runsaasti (hyviä päiviä), yksi ensimmäisistä harrastuksiini upotetuista projekteistani oli työskennellyt MEK6800D2 Motorola Microprocessor Training Kit -paketilla, jonka olin ostanut työskennellessäni yhteistyökumppanina MSU EE -laboratorioissa (High School Electronics VoTech -koulutukseni suorittamisen jälkeen Etelä-Ala-MI: ssä). Tähän projektiin sisältyi prototyyppini Radio Shack SP0256 NARRATOR ™ SPEECH PROCESSOR MEK6800D2 -laitteeseen, johdotin sen ja ohjelmoin 6800 saadakseen sen lähettämään pseudopuheen (ne, jotka ovat työskennelleet SP0256-pohjaisen HW: n kanssa, tietävät tarkalleen, mitä tarkoitan.). Se toimi upeasti ja edistyin hampaiden leikkaamisen polulla sulautetuissa mikrokontrollereissa ja kokoonpanossa. Lukion jälkeen elämä oli tiellä, armeija, sota, puolisot, lapset, siviilisektorin aloittaminen, uran aloittaminen jne. Kaikki lisäsivät hyllyihini harrastustani elämän pyrkimysten edistämiseksi länsimaisessa kulttuurissa (täällä Yhdysvalloissa).
Hyppää eteenpäin 20 vuotta, ja se on väistämätön aika, jolloin lapset kypsyvät siihen pisteeseen, että morsian ja minä olemme häiriötekijöitä, asuntolaina/ajoneuvot/korkeakoululaskut maksetaan hitaasti alas, tulot paranevat edistymisen myötä ja minulla on tarpeeksi varaa Aika siihen pisteeseen, jossa voisin alkaa keskittyä joihinkin itsekkäisiin pyrkimyksiin, jatkoin harrastuselektroniikan keikalla. Joka tapauksessa, ottaen huomioon sukuni ja historiani, etsin ja löysin kehittäjäympäristön, johon liityin nopeasti - ARMbasic - BASIC oli ensimmäinen rakkauteni ja tämä sopi siihen, että en vain sopeutunut ohjelmointiin, vaan työskentelin villisti enemmän laitteistolla voimakkaampi kuin mitä olin aloittanut vuosikymmeniä aiemmin, ja näin matka alkoi.
Tämä oli noin 2006-2009. Sitten elämämme muuttui syistä, joihin emme voi vaikuttaa, (kuten monien vuosien aikana). Harrastukset hyllyssä - keskity uuteen uraan, toipumiseen taloudellisista vaikeuksista (oli vahvasti kiinteistöalalla ja otimme sen shortseihin ja nuoret olivat juuri tulossa siihen pisteeseen, jossa College -rahoitus oli välttämätöntä). Pohjimmiltaan elämän ja ensimmäisen maailman ongelmat (olemme todella siunattuja, kun otetaan huomioon haasteet ja vaivat, joiden kanssa ihmiset muualla maailmassa kamppailevat päivittäin) ilmenivät ja harrastus hylättiin. Otin sen lyhyesti esille vuosina 2011-2012, ja sitten sain uuden uranmuutoksen-harrastus hylättiin jälleen.
Nopeasti eteenpäin vielä vuosikymmen ja… Olen palannut ja, hyvä luoja, toivottavasti koko ajan (kunnes otan sen sananlaskun mukaisen likaunun ja aloitan koiranputkien työntämisen alhaalta). Tässä siis ollaan. Vau - Arduino (mikä on tuo outo sana?) Oli hyökännyt markkinoille. Tekijät ?? Mitä ihmettä he ovat ?! …:) Ystäväni Coridium Corp: ssa (ARMbasicin ja ARM-pohjaisten mikro-ohjainten kehityskorttien omistajat) olivat pysyneet vakaina ja totuudellisina. Nyt LPC2xxx -ohjainsarjan sijasta on tämä uusi (minulle) ARM -kokonaisuus, ja Cortex M0/M3/M4, ja Arduino, ja… WOW! Kulttuuri on muuttunut melkoisesti ja monella tapaa hienosti. Peeps tekee yhteistyötä etänä ja todellakin maailmanlaajuisesti. Laitteisto on hämmästyttävän nopea ja tehokas, ja ARMbasic, joka on kypsynyt ja lujasti kovettunut työskennellessään monissa eri piiperheissä, on kauneus minulle ja monille muille.
Joten, kun tein novellin hyvin pitkäksi, törmäsin äskettäin MikroElectronikan TTS -napsautukseen ja tunsin nostalgian valuvan ylitseni. Oli tilannut yhden minuutin kuluessa ja oli huolissaan seuraavina päivinä, kunnes yksikkö saapui käsiin. Siitä tarina alkaa…
Tarvikkeet
- 1 ea MikroElectronika Text to Speech Click, sisältää Epson S1V30120 - moduulin TTS ASIC
- 1 ea ARMbasic Target, joka täyttää TTS -isännän roolin
- 1 ea Uno Breakout Shield (tai leipälevyn prototyyppi tai…)
- Yksi ea -kaiutin tai kaiutinsarja ehdottaa pöytätietokoneella toimivia kaiuttimia, joissa on 1/8 "TRS -liitin
- 1 erä Prototyyppituotteet lanka, juote, virtaus, sydän, juotin, otsikot, IC -pistorasiat ja vastaavat.
- 1 erä sulautettuja kehitystyökaluja DMM, Logic Probe, Logic Analyzer, Scope jne. - uusille TTS Host MCU -yksiköille
Vaihe 1: Laitteisto yhdistää
Jos haluat toistaa tämän käyttämällä ARMbasic -kohdetta Uno -muotoilussa tai Itaca uChip -laitteella, se olisi todennäköisesti parhaiten hyödyntämällä prototyyppikilpiä, kuten olen tehnyt yllä olevissa kuvissa (tavallinen amazon -linkki)
Jotkut näkevät kierretty lankakierrelanka ja ihmettelevät miksi-yhteisen tilan melunvaimennus on yksinkertainen vastaus. Joo, emme käsittele tasapainoisia signaaleja täällä, mutta ajattelin, että se ei voi vahingoittaa (?), Joten tein sen, kun tein levyn muodostamisen.
Se on melko hyvänlaatuinen muotoilu. Tulokset on liitetty tähän grafiikan muodossa (AutoCAD 2D on se, mihin olen tottunut - olen työskennellyt sen kanssa vuosikymmeniä päivätyössäni - leikkaan edelleen KiCAD -hampaitani, ja tämä oli liian yksinkertainen yritys perustella oppimiskäyrä KiCADin ensimmäisenä projektina). Joka tapauksessa päätin asentaa uChip-pistorasian suoraan suojaan, jotta erillinen käyttötapa voidaan ottaa käyttöön, kun uChipia käytetään isäntänä. Lisäsin JST: n virtalähteeksi sen akun kautta, jos haluan tehdä niin, ja koska minulla on muutamia lisäominaisuuksia, kastelin Adafruit SWD Breakout -laitteen, jotta voin käyttää Segger J-Link EDU Debug Probe -laitetta tarvittaessa. Ei, mutta pidän sen päällä olevan SWD i'face -laitteen tulevia projekteja varten.
Castellated tarkoittaa tässä yhteydessä PCB: n reunojen viilaamista niin, että päällystetyt reiät pienenivät puolisylintereiksi, mikä mahdollistaa juottamisen kannettavan PCB: n päälle - tässä tapauksessa suojalevyn. Päätin tehdä tämän, koska kilven tasaiset fanout-osat eivät olleet täysin linjassa SWD BOB: n kahden otsikkorivin riviväliä kanssa. Murtui litteä tiedosto ja 5 minuuttia arkistointia ja ongelma ratkesi.
Vaihe 2: Ohjelmointi ja testaus
Kun laitteisto on rakennettu, johdotuksen on oltava täydellinen, jotta varmistetaan, että johdotus on hyvä. Sitten teen aina virran ja maadoituksen. Tämä ei ainoastaan takaa, että Power ja Ground ovat siellä, missä niiden oletetaan olevan, mutta että kaikki muut päätteet, joilla ei pitäisi olla virtaa/maata, eivät ole. Se ei ole työläs tehtävä tällaisessa pienessä projektissa, mutta suuremmilla järjestelmillä se on todellakin työläs vaihe, mutta se on ehdottoman välttämätöntä sen varmistamiseksi, ettei alakokoonpanoja tai kytkettyjä järjestelmiä poisteta tyhmästä virheestä. olisi pitänyt ja olisi pitänyt ottaa kiinni. Saan yleensä vähimmäismäärän tavaroita kiinnitettyä niin, että piirilevylle muodostuu virtaa, ja tarkistan sitten jokaisen nastan/liittimen virran ja maadoituksen ennen kuin liitän alikokoonpanoja, siruja jne., Varmistaen, että virta on oikealla tasolla (kun otetaan huomioon ei-5 V: n kestävät laitteet/IO-, 1v8- ja 3v3-vaatimukset jne.) ja että maa on siellä, missä sen on oltava, ja vain siellä, missä sen on oltava. Olen nähnyt, että lentokoneessa on useita epäonnistumisia ihmisiltä, jotka eivät ole tehneet asianmukaisia esiliitäntätarkastuksia. Yhdessä tapauksessa se vei yli 100 000 dollaria LRU -yksiköitä - ei hauskaa aikaa olla vastuussa projektista ja saada se siirtymään sivuttain hetkessä, koska joku oikosulki prosessin. Toinen syyllinen asia on se, että teen tylsiä "läheisyystarkastuksia" - varmistaen, että yhteystiedot/päätteet eivät ole oikosulussa viereisiin yhteyksiin/päättämiseen. Tästä tulee kriittinen, jos on kyse koaksiaalikokoonpanoista, monijohtimista/suojatuista valjaista jne. Ok. Olen pois saippualaatikosta …
Kun turvallisuus on taattu, yhdistä asiat, käynnistä se ja ryhdy sitten ohjelmoimaan TTS -isäntä (ARMbasic Target MCU) aivan kuten monien sulautettujen MCU -kohteiden kanssa. Nauhoitin videon, joka kuvaa TTS Clickin ohjelmointia ja yksinkertaista käyttöä. Voit katsoa sen täältä.
ARMbasicin lähdekoodin voi ladata täältä - keskustelupalsta, jossa on lisätietoja. Coridium kirjoitti blogikirjoituksen näistä pyrkimyksistä, joihin pääset napsauttamalla tätä.
Vaihe 3: Lähteen muuttaminen muita ARMbasic -kohteita ja erilaisia ajatuksia varten
En välitä sinulle tarvittavista vaiheista lähdekoodin muokkaamiseksi toimimaan muiden ARMbasic -kohteiden kanssa, lukuun ottamatta sitä, että ilmoitan tekeväni noin niin useissa lähdekoodikommentteissa. Käytä tt.bas-tiedoston avaamista ja lue tarvittavat muutokset, jos haluat siirtää koodin toiseen ARMbasic-ohjaimeen.
Liitteenä on muutamia kuvia, jotka otin kehittämisjakson aikana saadakseni tämän toimimaan.
Opittua:
- Jos sinulla on käyttämätön tuloinen logiikka -analysaattori ja sinulla ei ole ylimääräisiä tavoite -IO: ita, joita ei käytetä käsillä olevaan työhön, älä pelkää käyttää näitä IO: ita virheenkorjaustyökaluina. valtava apu jäljittämään, mikä toimii ja mikä ei toimi odotetusti, tunnistaa hölmöt ajoitusongelmat (ts. keskeytykset, jotka vaikuttavat bittikappaleisiin sarjakommentteihin) ja yleisesti ottaen ymmärtämään paremmin pyrkimyksiäsi kokonaisuutena.
- Kaikki ARM -ohjaimet eivät ole samoja. Tämä on selvää. Kuitenkin sain vähän tekemällä alustavan kehityksen LPC1765 Coridium SuperPRO: lla. Jälkeenpäin ajatellen, mikä teki tästä huonon valinnan, on se, että tämä ARM-ytimen toteutus mahdollisti sanatonta kohdistusta muistiin. Kun siirrän C -koodin ARMbasiciin, asiat sujuivat melko sujuvasti, kunnes yritin käyttää sitä SAMD21 -kohteen kanssa - kaikki helvetti hajosi ja asiat katkesivat uskomattomasti, koska puskurit täytettiin, liput manipuloitiin, ARMbasic -version kanssa työskenneltiin rakenteista/ammattiliitoista, joita keksin, jne. Se oli tuskallinen oppitunti. Ottaa pois täältä: Jos haluat saada kannettavan koodin, kehittäjä kaikkein rajoittavimpaan ehdokaskohteeseen, vain varmistaaksesi, että projektin loppupäässä ei kohdata draamaa, kun hän on todennäköisesti innokkain käyttämään heidän ponnistelunsa..:)
- C -koodin siirtäminen ARMbasiciin EI ole mahdotonta. Tämä ponnistus oli suurelta osin yksi jättimäinen siirtokoulutuksen kehitys. Jos vie aikaa vertailla alkuperäisiä C -lähteitä tekemääni ARMbasic -koodiin, hänen pitäisi pystyä esittämään ideoita siitä, miten toteuttaa asioita, jotka eivät ehkä kuulu ARMbasicin ydinsuunnitteluun (eli rakenteisiin).
- Käsittele tällaisia asioita hallittavissa paloina. Oletuksena olen sellainen, joka haluaa nähdä tyydytystä säännöllisesti. Tällaiset yritykset, kuten nämä siirtämis- ja kehitystyöt, eivät todennäköisesti onnistu yhdellä yöllä. Aseta realistisia tavoitteita ja työskentele kohti niitä, yrittäen olla hukassa "kokonaiskuvaan".
- Logiikka -analysaattori oli ratkaiseva tässä pyrkimyksessä. Kyllä, minulla on alemman keskitason DS-Logic+ -yksikkö, mutta voin todeta painokkaasti, että halpa 12,50 dollarin 24 MHz: n kaistanleveys LA Amazoniasta olisi riittänyt. Pariskunta, joka käyttää Sigrokin PulseView -ohjelmaa (ilmainen) (tekee protokollan dekoodauksen), ja sinulla on erittäin vankka järjestelmä, jonka pitäisi toimia monissa skenaarioissa, kuten mitä olen yrittänyt toteuttaa tämän projektin kanssa. Varmista, että hankit yksikön, jossa on testileikkeitä, tai tilaa testileikkeet erikseen, koska niistä on valtavasti (kuinka Trumpfeldian) hyötyä.
- Yksinkertainen logiikkaanturi on myös erittäin hyödyllinen työkalu. Työtilan yleiskuvassa näet kuvan oikeassa alakulmassa muinaisen Archer (Radio Shack) -logiikan. Olin todella yllättynyt huomatessani, kuinka hyödyllistä jotain sellaista on päivittäin, jopa hyvin varustetussa laboratoriossa.
Olen saattanut linkittää näihin aiemmin tässä, mutta en muista ja olen liian laiska katsomaan. Tässä on blogipostaus, jossa on video TTS -moduulista toiminnassa (Itaca uChip isännöi sitä tuolloin), ja ARMbasic -foorumin viesti, josta voi ladata siirretyn ARMbasic -lähdekoodin.
Ole varovainen ja pidä hauskaa hakkeroinnissa!
-MHz
Suositeltava:
Ele puheeksi/tekstin muuntaminen käsine: 5 vaihetta
Ele eleksi puheeksi/tekstin muuntaminen käsine: Tämän projektin toteuttamisen idea/työntö oli auttaa ihmisiä, joilla on vaikeuksia kommunikoida puheen avulla ja kommunikoida käden eleillä tai yleisemmin amerikkalaisena viittomakielellä (ASL). Tämä projekti voi olla askel kohti tarjoamista
Arduino -teksti puheeksi -muunnin LM386 -: n avulla Talking Arduino Project - Talkie Arduino -kirjasto: 5 vaihetta
Arduino -teksti puheeksi -muunnin LM386 |: n avulla Talking Arduino Project | Talkie Arduino -kirjasto: Hei kaverit, monissa projekteissa vaadimme arduinoa puhumaan jotain, kuten puhuvaa kelloa tai kertomaan joitain tietoja, joten tämän ohjeen mukaan muutamme tekstin puheeksi Arduinon avulla
Esittelyssä 'Deodorino' - infrapunaohjattu Arduino tyhjässä deodoranttitikussa. Napsauta 1. kuvaa: 7 vaihetta
Esittelyssä 'Deodorino' - infrapunaohjattu Arduino tyhjässä deodoranttitikussa. Napsauta 1. kuvaa: nyt yksityiskohtiin
Arduino TTS (teksti puheeksi): 3 vaihetta (kuvilla)
Arduino TTS (teksti puheeksi): Hei kaverit tänään tässä opetusohjelmassa opetan teille, miten saat Arduino -puheen puhumaan ilman ulkoista moduulia. Täällä voimme käyttää tätä lukuisissa projekteissa, kuten puhuva lämpömittari, robotit ja paljon muuta. Joten aloitamme tämän projektin tuhlaamatta paljon aikaa
Teksti puheeksi Bullhorn: 4 vaihetta
Teksti puheeksi Bullhorn: Tämä on helpoin tapa, jolla olen löytänyt tehokkaan tekstin puhekuplaksi kuurolle ystävälle. Sillä tiedät, se tekee niistä vieläkin rad. Se ei ole erityisen tyydyttävä tai opettavainen rakennusprojekti, ja se edellyttää, että ostat joitain