Съдържание:

Текст в реч Щракнете върху ARMbasic Powered UChip и други ARMbasic Powered SBCs: 3 стъпки
Текст в реч Щракнете върху ARMbasic Powered UChip и други ARMbasic Powered SBCs: 3 стъпки

Видео: Текст в реч Щракнете върху ARMbasic Powered UChip и други ARMbasic Powered SBCs: 3 стъпки

Видео: Текст в реч Щракнете върху ARMbasic Powered UChip и други ARMbasic Powered SBCs: 3 стъпки
Видео: Free Text to Speech AI: клонируйте свой голос и заставьте его петь! 2024, Юли
Anonim
Текст в реч Щракнете върху UM чип с ARMbasic Powered и други SBCs с ARMbasic Powered
Текст в реч Щракнете върху UM чип с ARMbasic Powered и други SBCs с ARMbasic Powered
Текст в реч Щракнете върху UM чип с ARMbasic Powered и други SBCs с ARMbasic Powered
Текст в реч Щракнете върху UM чип с ARMbasic Powered и други SBCs с ARMbasic Powered
Текст в реч Щракнете върху ARMbasic Powered UChip и други ARMbasic Powered SBCs
Текст в реч Щракнете върху ARMbasic Powered UChip и други ARMbasic Powered SBCs

Въведение: Добър ден. Казвам се Тод. Аз съм аерокосмически и отбранителен професионалист, който също е малко отрепка по душа.

Вдъхновение: Произхождайки от ерата на комутируеми BBS, 8-битови микроконтролери, персонални компютри Kaypro/Commodore/Tandy/TI-994A, когато магазините на Radio Shack бяха изобилни (добрите дни), един от първите ми проекти за вграждане на хоби беше работейки с комплект за обучение на микропроцесори на Motorola MEK6800D2, който бях закупил, докато работех като кооператив в лабораториите на MSU EE (след като завърших обучението си по електротехника по електротехника в Южна долна MI). Този проект включваше моето създаване на протокол за радиостанция SP0256 NARRATOR ™ SPEECH PROCESSOR върху MEK6800D2, свързването му и програмирането на 6800, за да го накара да излъчва псевдореч (тези, които са работили с базиран на SP0256 HW, знаят точно за какво намеквам). Работи чудесно и напредвах по пътя на рязане на зъбите си в вградени микроконтролери и монтаж. След гимназията животът ми попречи, военните, войната, съпрузите, децата, навлизането в гражданския сектор, започване на кариера и т.н., всичко това добави към моите хобита рафтовете в полза на преследването на начинанията на живота в западната култура (тук, в САЩ).

Прескочете напред 20 години, стигайки до неизбежното време, в което децата узряват до такава степен, че Булката и аз сме разсейващи, сметките за ипотека/превозни средства/колежа бавно се изплащат, печалбите се подобряват с напредъка, а аз имам достатъчно резерви време до момента, в който можех да започна да се фокусирам отново върху някои егоистични начинания, се върнах на концерта на електрониката за хоби. Както и да е, като се има предвид моят род и история, аз потърсих и намерих среда за разработчици, с която бързо се свързах - ARMbasic - BASIC беше първата ми любов и това отговаряше не само на това да се приспособя отново към програмирането, но и да работя с хардуер, който беше много по -голям по -мощен от това, с което бях започнал десетилетия по -рано, и така пътуването започна.

Това беше около 2006-2009 г. След това, по причини, които са извън нашия контрол, животът се промени (както се случи за мнозина през тези години). Хобита се отлагат - съсредоточете се върху нова кариера, възстановявайки се от финансови борби (беше в голяма степен в сферата на недвижимите имоти и ние го взехме в късите панталони, а младите хора едва стигаха до точката, в която финансирането от колежа беше наложително). По принцип проблемите в живота и Първия свят (ние сме наистина благословени, имайки предвид предизвикателствата и усилията, с които хората в други части на света се борят ежедневно) се проявиха и … хобито беше отложено. Взех го отново за кратко през 2011-2012 г., след което ме срещна друга промяна в кариерата-хобито отпадна отново.

Бързо напред още едно десетилетие и … Връщам се и, Господи воля, надявам се за продължителността (докато не си взема тази пословична мръсотия и не започна да бута маргаритки отдолу). И така, тук сме. Уау - Arduino (каква е тази странна дума?) Нахлу на пазара. Производители ?? Какво по дяволите са те ?! …:) Приятелите ми от Coridium Corp (собственици на ARMbasic и базирани на ARM платки за разработка на микроконтролери) бяха постоянни и верни. Сега, вместо серията контролери LPC2xxx, има този нов (за мен) обект на ARM, и Cortex M0/M3/M4, и Arduino, и … WOW! Културата се е променила доста и в много отношения по страхотен начин. Peeps си сътрудничат дистанционно и наистина в световен мащаб. Хардуерът става невероятно бърз и мощен, а ARMbasic, след като е узрял и непрекъснато се втвърди със заетостта в много различни семейства силиций, е нещо красиво за мен и много други.

Така че, правейки кратка история много дълга, наскоро се натъкнах на щракването на TTS от MikroElectronika и усетих как ме облива носталгия. Ако някой беше поръчал за минути и се тревожеше през следващите дни, докато единицата пристигне на разположение. Оттук започва историята …

Консумативи

  • 1 ea MikroElectronika Text To Speech Click, съдържа Epson S1V30120 - TTS ASIC на модула
  • 1 ea ARMbasic Target, изпълняваща ролята на TTS Host
  • 1 ea Uno Breakout Shield (или прототипиране на дъска за хляб или …)
  • 1 високоговорител ea или набор от високоговорители предполагат настолни компютри с компютър с 1/8 "TRS щепсел
  • 1 партида Прототипиране на изделия тел, спойка, флюс, фитил, поялник, хедери, IC контакти и други подобни.
  • 1 лот вградени инструменти за разработчици DMM, логическа сонда, логически анализатор, обхват и т.н. - за нови TTS хост MCU

Стъпка 1: Хардуерни връзки

Хардуерни взаимовръзки
Хардуерни взаимовръзки
Хардуерни взаимовръзки
Хардуерни взаимовръзки
Хардуерни взаимовръзки
Хардуерни взаимовръзки

За да повторите това с помощта на ARMbasic мишена във Uno форм -фактор или с Itaca uChip, най -добре би било да се обслужва чрез използване на щит за прототипиране, както направих на горните снимки (обикновена връзка с Amazon)

Някои ще видят усуканата жица и ще се чудят защо-отхвърлянето на шума в обикновен режим е простият отговор. Да, тук не се занимаваме с балансирани сигнали, но реших, че не може да навреди (?), Затова го направих, когато правех натрупването на дъската.

Това е доста доброкачествен дизайн. Отпечатъците са приложени тук, под формата на графика (AutoCAD 2D е това, с което съм най -свикнал - като съм работил с него в продължение на десетилетия на ежедневната си работа - все още си режа зъбите KiCAD и това беше твърде просто начинание обосновава кривата на обучение като първи проект в KiCAD). Както и да е, избрах да монтирам гнездото uChip директно към щита, за да активирам самостоятелен случай на използване, когато използвам uChip като хост. Добавих JST за захранване чрез батерия, ако искам да го направя и тъй като имам няколко екстри, кастелирах Adafruit SWD Breakout, за да ми позволя да използвам моята Segger J-Link EDU Debug Probe, ако възникне необходимост. Не се получи, но запазвам SWD i'face върху него за използване с бъдещи проекти.

В този контекст кастелиран означава да се подпилят краищата на печатната платка, така че наплаканите отвори да се намалят до полуцилиндри, което позволява запояване върху носеща печатна платка - в този случай щит за прекъсване на щита. Избрах да направя това, тъй като плоските части на разклонението на щита не съвпадат съвсем с разстоянието между редовете между двата реда заглавки на SWD BOB. Разбихте плосък файл и 5 минути подаване и проблемът беше решен.

Стъпка 2: Програмиране и тестване

Програмиране и тестване
Програмиране и тестване
Програмиране и тестване
Програмиране и тестване
Програмиране и тестване
Програмиране и тестване

След като хардуерът бъде изграден, ще трябва да има пълно звънене, за да се потвърди, че окабеляването е добро. След това винаги правя проверка на захранването и терена. Това не само гарантира, че захранването и заземяването са там, където трябва да бъдат, но и че никой от другите терминали, които не трябва да имат захранване/заземяване там, няма. Това не е досадна задача за малък проект като този, но при по-големи системи от системи, макар и наистина досадна стъпка, е абсолютно необходимо, за да се гарантира, че никакви възли или свързани системи не бъдат извадени поради глупава грешка, която можеше и трябваше да бъде хванат. Обикновено получавам минимум стоки, прикрепен така, че да се генерира енергия на платката и след това проверявам всеки щифт/терминал за захранване и заземяване, преди да включа възли, чипове и т.н., като се уверя, че мощността е на правилното ниво (като се имат предвид устройства, които не са толерантни към 5V/IO, изисквания 1v8 и 3v3 и т.н.) и тази земя е там, където трябва да бъде, и само там, където трябва. Станал съм свидетел на каскада от повреди на самолет от хора, които не са направили подходящи проверки за предварително свързване. В един случай бяха взети над 100 000 долара LRU - не е забавно време да отговаряш за проект и да го накараш да мине настрани в един миг, защото някой направи късо съединение на процеса. Друго нещо, за което съм виновен, е да правя досадни „проверки на околностите“- да се уверя, че контактите/терминалите не са съкратени до съседни контакти/терминали. Това става критично, ако човек се занимава с коаксиални възли, многопроводникови/екранирани снопове и т.н. Добре, аз съм извън сапунената кутия …

След като безопасността е гарантирана, свържете нещата, включете я и след това преминете към програмиране на TTS Host (ARMbasic Target MCU), точно както бихте направили с много вградени MCU цели. Записах видеоклип, който изобразява програмирането и простото използване на TTS Click. Можете да го видите тук.

Изходният код на ARMbasic може да бъде изтеглен от тук - публикация във форум, която има допълнителни подробности. Coridium публикува блог за тези усилия, до който можете да стигнете, като щракнете тук.

Стъпка 3: Промяна на източника за други ARMbasic цели и различни разсъждения

Промяна на източника за други основни ARM цели и различни разсъждения
Промяна на източника за други основни ARM цели и различни разсъждения
Промяна на източника за други основни ARM цели и различни разсъждения
Промяна на източника за други основни ARM цели и различни разсъждения
Промяна на източника за други основни ARM цели и различни разсъждения
Промяна на източника за други основни ARM цели и различни разсъждения
Промяна на източника за други основни ARM цели и различни разсъждения
Промяна на източника за други основни ARM цели и различни разсъждения

Няма да ви занимавам със стъпките, необходими за промяна на изходния код, за да работи с други ARMbasic цели, освен да посоча, че продължавам да правя това в изобилие от коментари за изходния код. Моля, отделете време, за да отворите файла tts.bas и прочетете какви промени са необходими, ако решите да пренесете кода към друг контролер, захранван с ARMbasic.

Към тук са прикачени някои изображения, които направих по време на цикъла на разработчици, за да задействам това.

Поуки:

  1. Ако имате Логически анализатор с неизползвани входове и имате допълнителни целеви IO, които не се използват за текущата работа, не се страхувайте да използвате тези IO като инструменти за отстраняване на грешки - разпръскването на IO в различни точки в кода може да бъде огромна помощ за проследяване на това, което работи и какво не работи според очакванията, за идентифициране на глупави проблеми с времето (т.е. прекъсвания, засягащи серийни комуникации с битове) и за постигане на по-добро разбиране на вашите усилия като цяло.
  2. Не всички ARM контролери са еднакви. Това е очевидно. Въпреки това, бях ухапан, като направих първоначалното разработване на LPC1765 Coridium SuperPRO. В крайна сметка това, което направи това лош избор, е, че внедряването на това ядро на ARM позволява достъп до паметта без подравняване на думи. Когато пренасях кода на C към ARMbasic, нещата вървяха доста гладко, докато не се опитах да го използвам с цел SAMD21 - целият ад се разпадна и нещата бяха разбити извън вярванията поради неравнен достъп при попълване на буфери, манипулиране на флагове, работа с версията ARMbasic на структури/съюзи, които измислих и т.н. Това беше болезнен урок. Изводът тук: Ако някой желае да има преносим код, разработете най -рестриктивната цел на кандидата, само за да сте сигурни, че няма да се сблъскате с драма в последния край на проекта, когато вероятно е най -развълнуван да използва плодовете на техните усилия..:)
  3. Пренасянето на C код към ARMbasic НЕ е невъзможно. Това усилие беше до голяма степен една гигантска еволюция на обучението за пренасяне. Ако някой отдели време за сравняване на оригиналните C източници с кода на ARMbasic, който създадох, той би трябвало да може да измисли някои идеи как да приложи неща, които може да не са част от основния дизайн на ARMbasic (т.е. Структури).
  4. Решавайте подобни неща на управляеми парчета. По подразбиране аз съм човек, който обича да вижда удовлетворение редовно. Едно начинание като тези усилия за пренасяне и разработване едва ли ще бъде нещо, което можете да постигнете за една нощ. Поставете си реалистични цели и работете за тях, като се опитвате да не бъдете претоварени от „голямата картина“.
  5. Логическият анализатор имаше решаващо значение в това усилие. Да, имам устройство с по-нисък среден диапазон DS-Logic+, но мога категорично да заявя, че евтина 12,50 щ.д. 24MHz честотна лента LA от Амазония би била повече от достатъчна. Съчетайте това с PulseView (безплатно) на Sigrok (прави декодиране на протокол) и ще имате много здрава система, която трябва да работи в огромно множество сценарии, като например това, което се опитах да предприема с този проект. Уверете се, че сте получили единица, която има тестови клипове, или поръчайте тестови клипове отделно, тъй като те са изключително (колко Тръмпфелдиански) полезни.
  6. Една проста логическа сонда също е много полезен инструмент. На обзорната снимка на работното пространство ще забележите древна логическа сонда на Archer (Radio Shack) в долния десен ъгъл на изображението. Бях истински изненадан да открия колко полезно е такова нещо ежедневно, дори и с добре оборудвана лаборатория.

Може би съм се свързвал с тях по -рано в това, но не помня и съм много мързелив да гледам. Ето публикация в блог, в която има видеоклип на TTS модула в действие (Itaca uChip го хоства по това време) и публикацията във форума на ARMbasic, където можете да изтеглите пренесения изходен код на ARMbasic.

Внимавайте и се забавлявайте с хакването!

-MHz

Препоръчано: