Оглавление:
- Запасы
- Шаг 1. Аппаратные соединения
- Шаг 2: Программирование и тестирование
- Шаг 3. Изменение источника для других целей ARMbasic и различных размышлений
Видео: Преобразование текста в речь Нажмите на UChip с процессором ARMbasic и другие SBC с процессором ARMbasic: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Вступление: Добрый день. Меня зовут Тод. Я профессионал в области аэрокосмической и оборонной промышленности, который в душе тоже немного помешан.
Вдохновение: родом из эпохи удаленного доступа к BBS, 8-битных микроконтроллеров, персональных компьютеров Kaypro / Commodore / Tandy / TI-994A, когда магазины Radio Shack были в изобилии (старые добрые дни), одним из моих первых хобби-проектов встраиваемых систем был работа с комплектом для обучения микропроцессору Motorola MEK6800D2, который я приобрел во время совместной работы в лабораториях MSU EE (после прохождения обучения VoTech в средней школе по электронике в Южном Нижнем Мичигане). Этот проект включал мой прототип РЕЧЕВОГО ПРОЦЕССОРА Radio Shack SP0256 NARRATOR ™ на MEK6800D2, подключил его и запрограммировал 6800, чтобы заставить его издавать псевдо-речь (те, кто работал с HW на основе SP0256, точно знают, о чем я говорю). Это сработало замечательно, и я продвинулся по пути нарезания зубов во встроенных микроконтроллерах и сборке. После школы мешала жизнь: военные, война, супруги, дети, переход в гражданский сектор, начало карьеры и т. Д. - все это привело к тому, что я отказался от своего хобби в пользу стремления к жизни в западной культуре (здесь, в США).
Перенесемся на 20 лет вперед, приближаясь к неизбежному времени, когда дети взрослеют до такой степени, что Невеста и я отвлекаем, ипотека / транспортные средства / счета за колледж медленно оплачиваются, доходы улучшаются с продвижением, а у меня достаточно свободных Настало время, когда я смог снова сосредоточиться на каких-то эгоистичных начинаниях, и я вернулся к хобби, посвященному электронике. В любом случае, учитывая мое происхождение и историю, я искал и нашел среду разработки, с которой я быстро связался - ARMbasic - BASIC был моей первой любовью, и это отвечало требованиям не только повторного освоения меня к программированию, но и работы с оборудованием, которое было дико более сложным. мощнее, чем то, с чего я начал десятилетия назад, и таким образом путешествие началось.
Это было примерно в 2006-2009 годах. Затем по причинам, не зависящим от нас, жизнь изменилась (как это было для многих в те годы). Хобби отложили на полку - сосредоточиться на новой карьере, оправиться от финансовых проблем (в значительной степени он был вложен в сферу недвижимости, и мы взяли это на себя, а молодые люди только приближались к тому моменту, когда финансирование колледжа было императивом). По сути, проблемы Жизни и Первого Мира (мы действительно счастливы, учитывая проблемы и тяжелые труды, с которыми люди в других частях мира борются ежедневно) проявили себя, и … хобби было отложено. Я ненадолго вспомнил об этом в 2011-2012 годах, когда меня встретила еще одна смена карьеры - хобби снова отложили на полку.
Перенесемся еще на десять лет вперед и… Я вернулся, и, добрый лорд, надеюсь, на время (пока я не вздремну в этой пресловутой грязной дремоте и не начну поднимать ромашки снизу). Итак, вот и мы. Вау - Arduino (что это за странное слово?) Штурмовал рынок. Производители ?? Что они, черт возьми ?! …:) Мои друзья из Coridium Corp (владельцы плат разработки для микроконтроллеров ARMbasic и ARM) остались непоколебимыми и верными. Теперь вместо контроллеров серии LPC2xxx появился новый (для меня) объект ARM, Cortex M0 / M3 / M4, и Arduino, и… ВАУ! Культура немного изменилась, и во многих отношениях она сильно изменилась. Peeps сотрудничают удаленно и, по сути, глобально. Аппаратное обеспечение становится удивительно быстрым и мощным, и ARMbasic, созревший и упорно укрепившийся за счет использования различных семейств кремния, является прекрасным для меня и многих других.
Итак, делая короткий рассказ очень длинным, я недавно наткнулся на TTS click от MikroElectronika и почувствовал, как меня охватывает волна ностальгии. Был заказан в течение нескольких минут и очень беспокоился в течение следующих дней, пока устройство не прибыло в руки. Отсюда начинается история …
Запасы
- 1 шт. MikroElectronika Text To Speech Click, содержит Epson S1V30120 - TTS ASIC модуля
- 1 шт. ARMbasic Target, выполняющий роль хоста TTS
- 1 шт. Uno Breakout Shield (или макетная плата, или…)
- 1 динамик или набор динамиков, рекомендуется настольные активные динамики для ПК с разъемом TRS 1/8 дюйма на них
- 1 лот прототипирования изделий: проволока, припой, флюс, фитиль, паяльник, разъемы, гнезда для микросхем и т.п.
- 1 лот Embedded Dev Tools DMM, Logic Probe, Logic Analyzer, Scope и т. Д. - для новых микроконтроллеров хоста TTS
Шаг 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: Программирование и тестирование
После того, как оборудование будет установлено, потребуется полный вызов, чтобы убедиться, что проводка исправна. Затем я всегда проверяю мощность и заземление. Это не только гарантирует, что питание и заземление находятся там, где они должны быть, но и что любые другие выводы, на которых не должно быть питания / заземления, отсутствуют. Это не утомительная задача для такого небольшого проекта, как этот, но для более крупных систем-систем она, хотя и является утомительным шагом, абсолютно необходима, чтобы гарантировать, что никакие подсборки или связанные системы не будут вынуты из-за глупой ошибки, которая может произойти. могли и должны были быть пойманы. Я обычно подключаю минимум товаров, чтобы на плате генерировалось питание, а затем проверяю каждый вывод / вывод на наличие питания и заземления перед подключением сборочных узлов, микросхем и т. Д., Чтобы убедиться, что мощность находится на должном уровне. (с учетом требований к устройствам, не устойчивым к 5 В / IO, 1v8 и 3v3 и т. д.), и это заземление находится там, где оно должно быть, и только там, где оно должно быть. Я был свидетелем каскада отказов в самолетах из-за того, что люди не проводили надлежащих проверок перед подключением. В одном случае потребовалось более 100 тысяч долларов LRU - не самое приятное время, чтобы руководить проектом и мгновенно откладывать его в сторону из-за того, что кто-то замкнул процесс. Еще одна вещь, в которой я виноват, - это выполнение утомительных «проверок окружения» - проверка того, что контакты / завершения не замкнуты на соседние контакты / завершения. Это становится критичным, если вы имеете дело с коаксиальными сборками, многожильными / экранированными жгутами и т.д.
Как только безопасность будет обеспечена, подключите устройства, включите его и затем приступайте к программированию хоста TTS (ARMbasic Target MCU), как это было бы со многими встроенными целевыми MCU. Я записал видео, в котором показано программирование и простое использование TTS Click. Вы можете просмотреть это здесь.
Исходный код ARMbasic можно скачать отсюда - сообщение на форуме с дополнительной информацией. Coridium опубликовал в блоге сообщение об этих усилиях, на которое вы можете перейти, нажав здесь.
Шаг 3. Изменение источника для других целей ARMbasic и различных размышлений
Я не буду утруждать вас шагами, необходимыми для изменения исходного кода для работы с другими целями ARMbasic, кроме как указать, что я гудел об этом в большом количестве комментариев к исходному коду. Найдите время, чтобы взломать файл tts.bas и прочитать, какие изменения необходимы, если вы решите перенести код на другой контроллер на базе ARMbasic.
К настоящему письму прилагаются некоторые изображения, которые я сделал во время цикла разработки, чтобы заставить это работать.
Уроки выучены:
- Если у вас есть логический анализатор с неиспользуемыми входами и дополнительные целевые входы-выходы, не используемые для текущей работы, не бойтесь использовать эти входы-выходы в качестве инструментов отладки - разбрызгивание операций ввода-вывода в различных точках кода может быть огромная помощь в отслеживании того, что работает, а что не работает, как ожидалось, для выявления глупых проблем с синхронизацией (то есть прерываний, влияющих на последовательную связь с побитовым вызовом) и для лучшего понимания ваших усилий в целом.
- Не все контроллеры ARM одинаковы. Это очевидно. Тем не менее, я получил немного, сделав начальную разработку на LPC1765 Coridium SuperPRO. Оглядываясь назад, то, что сделало это плохим выбором, так это то, что реализация этого ядра ARM позволяла доступ к памяти без выравнивания слов. При переносе кода C на ARMbasic все шло довольно гладко, пока я не попытался использовать его с целью SAMD21 - все вырвалось наружу, и все пошло невообразимо из-за невыровненного доступа при заполнении буферов, манипулировании флагами, работе с версией ARMbasic структур / союзов, которые я придумал, и т. д. Это был болезненный урок. Вывод из этого: если кто-то хочет иметь переносимый код, разработайте его для наиболее ограниченного кандидата, просто чтобы убедиться, что он не столкнется с драматизмом в конце проекта, когда он, вероятно, наиболее рад использовать плоды свои усилия..:)
- Перенос кода C на ARMbasic НЕ невозможен. Эти усилия были в значительной степени одним из гигантских этапов эволюции обучения портированию. Если вы потратите время на сравнение исходных исходных кодов C с кодом ARMbasic, который я создал, у вас должно получиться несколько идей о том, как реализовать вещи, которые могут не быть частью основного дизайна ARMbasic (например, Структуры).
- Беритесь за подобные вещи небольшими порциями. По умолчанию я тот, кто любит регулярно получать удовольствие. Такие усилия, как эти усилия по портированию и разработке, вряд ли можно будет выполнить за одну ночь. Ставьте перед собой реалистичные цели и работайте над их достижением, стараясь не отвлекаться на «общую картину».
- Логический анализатор сыграл решающую роль в этих усилиях. Да, у меня есть устройство DS-Logic + нижнего и среднего уровня, но я могу категорически заявить, что дешевого LA с полосой пропускания 24 МГц за 12,50 долларов США от Amazonia было бы более чем достаточно. Соедините это с PulseView от Sigrok (бесплатно) (выполняет декодирование протокола), и у вас будет очень надежная система, которая должна работать в огромном множестве сценариев, таких как то, что я пытался предпринять с этим проектом. Убедитесь, что вы получили устройство с тестовыми зажимами, или заказывайте тестовые зажимы отдельно, так как они очень полезны (как Трампфельдиан).
- Простой логический пробник - тоже очень полезный инструмент. На обзорной картинке рабочего пространства вы заметите древний логический зонд Archer (Radio Shack) в правом нижнем углу изображения. Я был искренне удивлен, обнаружив, насколько это полезно в повседневной жизни, даже при наличии хорошо оборудованной лаборатории.
Возможно, я уже связывался с ними ранее, но я не могу вспомнить, и мне лень смотреть. Вот сообщение в блоге, в котором есть видео о модуле TTS в действии (в то время он был размещен на Itaca uChip) и сообщение на форуме ARMbasic, где можно загрузить портированный исходный код ARMbasic.
Будьте осторожны и получайте удовольствие от взлома!
-МГц
Рекомендуемые:
Нажмите Brick Switch для Макея Макея: 4 шага (с изображениями)
Click Brick Switch для Makey Makey: этот переключатель, напечатанный на 3D-принтере, позволит пользователю превратить Makey Makey в «скольжение пальца»; для " щелчка " в играх или стрелки вправо / влево для прокрутки презентаций. Добавление правого и левого клеммных колодок для
Преобразователь текста в речь Arduino с использованием LM386 - Говорящий проект Arduino - Библиотека Talkie Arduino: 5 шагов
Преобразователь текста в речь Arduino с использованием LM386 | Говорящий проект Arduino | Библиотека Talkie Arduino: Привет, ребята, во многих проектах мы требуем, чтобы Arduino говорил что-то вроде говорящих часов или сообщал какие-то данные, поэтому в этих инструкциях мы будем преобразовывать текст в речь с помощью Arduino
Преобразование текста в шрифт Брайля и аудио: 7 шагов
Текст для Брайля и аудио: этот проект был создан мной и моим другом Акивой Бруклер как школьный проект для нашего инженерного класса. Идея заключалась в том, чтобы сделать так, чтобы слепые люди, которые могут читать только шрифтом Брайля, могли читать текст, отправленный на их компьютер. Настоящее время
Arduino TTS (преобразование текста в речь): 3 шага (с изображениями)
Arduino TTS (Text to Speech): Привет, ребята, сегодня в этом уроке я научу вас, как заставить ваш Arduino разговаривать без какого-либо внешнего модуля. Здесь мы можем использовать это во многих проектах, таких как говорящий термометр, роботы и многие другие. Так что, не теряя много времени, приступим к этому проекту
Преобразование текста в речь в мегафон: 4 шага
Синтезатор речи в мегафон: это самый простой способ, который я нашел, чтобы сделать эффективный синтезатор речи в мегафон для глухого друга. Потому что, знаете, это делает их еще более радостными. Это не особенно приятный или образовательный проект сборки, и он требует, чтобы вы купили