Mục lục:

Chuyển văn bản thành giọng nói Nhấp vào UChip được hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác: 3 bước
Chuyển văn bản thành giọng nói Nhấp vào UChip được hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác: 3 bước

Video: Chuyển văn bản thành giọng nói Nhấp vào UChip được hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác: 3 bước

Video: Chuyển văn bản thành giọng nói Nhấp vào UChip được hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác: 3 bước
Video: Chip U, M, H, K, HQ là gì??? Giải mã tất tần tật ý nghĩa tên, ký hiệu, hậu tố chip Intel!!! 2024, Tháng mười một
Anonim
Chuyển văn bản thành giọng nói Nhấp vào UChip hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác
Chuyển văn bản thành giọng nói Nhấp vào UChip hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác
Chuyển văn bản thành giọng nói Nhấp vào UChip được hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác
Chuyển văn bản thành giọng nói Nhấp vào UChip được hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác
Chuyển văn bản thành giọng nói Nhấp vào UChip được hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác
Chuyển văn bản thành giọng nói Nhấp vào UChip được hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác

Giới thiệu: Chúc một ngày tốt lành. Tên tôi là Tod. Tôi là một chuyên gia hàng không vũ trụ và quốc phòng, tôi cũng là một chuyên gia về lĩnh vực quốc phòng.

Nguồn cảm hứng: Xuất hiện từ thời đại của BBS quay số, Bộ vi điều khiển 8-bit, máy tính cá nhân Kaypro / Commodore / Tandy / TI-994A, khi các cửa hàng Radio Shack rất dồi dào (những ngày đẹp trời), một trong những dự án nhúng sở thích đầu tiên của tôi là làm việc với Bộ công cụ đào tạo bộ vi xử lý Motorola MEK6800D2, mà tôi đã mua khi làm việc với tư cách là đồng tác giả tại phòng thí nghiệm MSU EE (sau khi hoàn thành khóa đào tạo VoTech Điện tử Trung học của tôi ở Southern Lower MI). Dự án đó liên quan đến việc tôi tạo nguyên mẫu BỘ XỬ LÝ PHÁT ÂM Radio Shack SP0256 NARRATOR ™ trên MEK6800D2, kết nối nó và lập trình 6800 để làm cho nó phát ra giọng giả (những người đã làm việc với HW dựa trên SP0256 biết chính xác những gì tôi đang ám chỉ). Nó hoạt động một cách tuyệt vời và tôi đã tiến dần đến con đường cắt răng của mình trong các bộ vi điều khiển và Assembly được nhúng. Sau khi tốt nghiệp trung học, cuộc sống trở nên khó khăn, Quân đội, Chiến tranh, Vợ chồng, Con cái, vào ngành dân sự, lập nghiệp, v.v., tất cả đã cộng dồn vào sở thích của tôi là theo đuổi những nỗ lực của cuộc sống trong một nền văn hóa phương Tây (ở Mỹ).

Sau 20 năm trôi qua, sắp đến thời điểm không thể tránh khỏi khi những đứa trẻ đang trưởng thành đến mức tôi và cô dâu mất tập trung, các hóa đơn thế chấp / xe cộ / đại học đang dần được thanh toán, thu nhập ngày càng tốt hơn với các khoản tạm ứng và tôi có đủ dư dả đến thời điểm mà tôi có thể bắt đầu tập trung vào một số nỗ lực ích kỷ, tôi lại bắt đầu tham gia hợp đồng biểu diễn điện tử theo sở thích. Dù sao, với dòng dõi và lịch sử của mình, tôi đã tìm kiếm và tìm thấy một môi trường phát triển mà tôi nhanh chóng gắn bó - ARMbasic - BASIC là mối tình đầu của tôi và điều này phù hợp với dự luật không chỉ làm cho bản thân thích nghi lại với lập trình mà còn làm việc với phần cứng còn nhiều hơn thế nữa mạnh mẽ hơn những gì tôi đã bắt đầu với nhiều thập kỷ trước đó, và do đó cuộc hành trình bắt đầu.

Đó là khoảng năm 2006-2009. Sau đó, vì những lý do nằm ngoài tầm kiểm soát của chúng tôi, cuộc sống đã thay đổi (như đã có trong nhiều năm đó). Sở thích bị gác lại - tập trung vào một sự nghiệp mới, phục hồi sau các cuộc đấu tranh tài chính (được giao rất nhiều trong lĩnh vực bất động sản và chúng tôi đã thực hiện nó trong thời gian ngắn và các bạn trẻ chỉ đang tiến đến mức tài trợ cho trường đại học là bắt buộc). Về cơ bản, các vấn đề về Cuộc sống và Thế giới thứ nhất (chúng tôi thực sự may mắn, khi xem xét những thách thức và khó khăn mà mọi người ở các nơi khác trên thế giới phải vật lộn hàng ngày) đã tự biểu hiện và… sở thích đã bị xếp lại. Tôi đã tìm hiểu lại một thời gian ngắn về nó vào năm 2011-2012-ish sau đó đã gặp phải một sự thay đổi nghề nghiệp khác - sở thích bị xếp lại một lần nữa.

Tua nhanh một thập kỷ nữa và… tôi đã trở lại và, Lạy Chúa Sẵn sàng, hy vọng là trong thời gian này (cho đến khi tôi chợp mắt và bắt đầu đẩy hoa cúc lên từ bên dưới). Vì thế chúng ta ở đây. Wow - Arduino (từ kỳ lạ đó là gì?) Đã làm mưa làm gió trên thị trường. Các nhà sản xuất ?? Họ là cái quái gì vậy ?! …:) Những người bạn của tôi tại Coridium Corp (chủ sở hữu của các bảng phát triển vi điều khiển dựa trên ARMbasic và ARM) vẫn kiên định và đúng như vậy. Bây giờ, thay vì loạt bộ điều khiển LPC2xxx, có thực thể mới (đối với tôi) này của ARM, và Cortex M0 / M3 / M4, và Arduino, và… WOW! Nền văn hóa đã thay đổi khá nhiều, và theo nhiều cách tuyệt vời. Peeps đang cộng tác từ xa và trên toàn cầu. Phần cứng đang trở nên nhanh chóng và mạnh mẽ một cách đáng kinh ngạc, và ARMbasic, đã trưởng thành và kiên định với công việc trên nhiều dòng silicon khác nhau, là một điều tuyệt vời đối với tôi và nhiều người khác.

Vì vậy, làm một câu chuyện ngắn rất dài, gần đây tôi tình cờ nhìn thấy cú nhấp chuột của TTS của MikroElectronika và cảm thấy một nỗi nhớ trào dâng trong tôi. Có một người ra lệnh theo cách thức trong vài phút, và đã lo lắng trong những ngày tiếp theo cho đến khi đơn vị đến tay. Do đó bắt đầu câu chuyện…

Quân nhu

  • 1 ea MikroElectronika Text To Speech Click, chứa Epson S1V30120 - TTS ASIC của mô-đun
  • 1 ea Mục tiêu cơ bản của ARM, hoàn thành vai trò của Máy chủ TTS
  • 1 ea Uno Breakout Shield (hoặc bảng mạch bánh mì tạo mẫu, hoặc…)
  • 1 loa ea hoặc một bộ loa đề xuất loa hỗ trợ máy tính để bàn có phích cắm TRS 1/8"
  • 1 lô Nguyên mẫu đồ gốm sứ dây, thuốc hàn, chất trợ dung, bấc, mỏ hàn, tiêu đề, ổ cắm IC và các loại tương tự..
  • 1 lô Công cụ nhà phát triển được nhúng DMM, Đầu dò logic, Trình phân tích logic, Phạm vi, v.v. - dành cho MCU máy chủ TTS mới

Bước 1: Kết nối phần cứng

Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng

Để tái tạo điều này bằng cách sử dụng mục tiêu cơ bản ARM trong hệ số dạng Uno hoặc với Itaca uChip, người ta có thể được phục vụ tốt nhất bằng cách sử dụng lá chắn tạo mẫu, như tôi đã làm trong các hình ảnh trên (liên kết amazon đơn giản)

Một số người sẽ nhìn thấy dây quấn xoắn vào nhau và tự hỏi tại sao - loại bỏ tiếng ồn ở chế độ thông thường là câu trả lời đơn giản. Vâng, chúng tôi không xử lý các tín hiệu cân bằng ở đây, nhưng tôi nghĩ rằng nó không thể gây hại (?) Vì vậy tôi đã làm điều đó khi tôi đang xây dựng bảng.

Đó là một thiết kế khá lành tính. Các bản in được đính kèm ở đây, dưới dạng đồ họa (AutoCAD 2D là thứ mà tôi quen dùng nhất - đã làm việc với nó trong nhiều thập kỷ trong công việc hàng ngày của tôi - tôi vẫn đang cắt răng KiCAD của mình và điều này quá đơn giản để cố gắng biện minh cho đường cong học tập như một dự án đầu tiên trong KiCAD). Dù sao, tôi đã chọn gắn trực tiếp ổ cắm uChip vào tấm chắn để kích hoạt trường hợp sử dụng độc lập khi sử dụng uChip làm máy chủ. Tôi đã thêm JST để cấp nguồn cho nó qua pin, nếu tôi muốn làm như vậy và vì tôi có một số tính năng bổ sung, tôi đã tạo ra một Adafruit SWD Breakout để cho phép tôi sử dụng Segger J-Link EDU Debug Probe, nếu có nhu cầu. Nó đã không, nhưng tôi đang giữ SWD mà tôi có mặt ở đó để sử dụng cho các dự án trong tương lai.

Castellated có nghĩa là, trong bối cảnh này, dũa các cạnh của PCB để các lỗ mạ được giảm xuống còn nửa hình trụ, cho phép hàn vào PCB mang theo - trong trường hợp này là tấm chắn phá vỡ. Tôi đã chọn làm điều này vì các phần fanout gói phẳng của tấm chắn không hoàn toàn phù hợp với khoảng cách hàng giữa hai hàng tiêu đề trên SWD BOB. Chia nhỏ một tệp phẳng và 5 phút nộp hồ sơ và vấn đề đã được giải quyết.

Bước 2: Lập trình và Kiểm tra

Lập trình và Kiểm tra
Lập trình và Kiểm tra
Lập trình và Kiểm tra
Lập trình và Kiểm tra
Lập trình và Kiểm tra
Lập trình và Kiểm tra

Sau khi phần cứng được xây dựng, sẽ cần phải có một chuông báo đầy đủ để xác nhận rằng hệ thống dây điện có tốt hay không. Sau đó, tôi luôn thực hiện kiểm tra Nguồn và Căn cứ. Điều này không chỉ đảm bảo rằng Nguồn và Tiếp đất ở đúng nơi mà chúng được cho là ở đó, mà bất kỳ đầu cuối nào khác không nên có nguồn / nối đất ở đó cũng không. Nó không phải là một nhiệm vụ tẻ nhạt đối với một dự án nhỏ như thế này, nhưng với các hệ thống lớn hơn, nó thực sự là một bước tẻ nhạt, hoàn toàn cần thiết để đảm bảo không có cụm phụ hoặc hệ thống được kết nối nào bị loại bỏ bởi một sai lầm ngớ ngẩn. có thể và lẽ ra đã bị bắt. Tôi thường nhận được tối thiểu hàng hóa được gắn vào để nguồn điện được tạo ra trên bo mạch và sau đó kiểm tra mọi chân / đầu cuối cho nguồn và đất trước khi cắm vào các cụm phụ, chip, v.v., đảm bảo rằng nguồn điện ở mức thích hợp (xem xét các thiết bị không chịu được 5V / IO, các yêu cầu 1v8 và 3v3, v.v.) và mặt đất đó là nơi cần đến và chỉ nơi cần có. Tôi đã chứng kiến hàng loạt sự cố trên một chiếc máy bay do những người không thực hiện kiểm tra trước khi kết nối đúng cách. Trong một trường hợp, nó đã tiêu tốn hơn 100 nghìn đô la LRU - không phải là một thời gian thú vị để phụ trách một dự án và khiến nó đi ngang ngay lập tức vì ai đó đã làm ngắn mạch quy trình. Một điều khác mà tôi có lỗi là thực hiện 'kiểm tra vùng lân cận' tẻ nhạt - đảm bảo rằng các liên hệ / đầu cuối không bị thiếu các liên hệ / đầu cuối liền kề. Điều này trở nên quan trọng nếu một người đang xử lý các cụm đồng trục, dây đa dây dẫn / dây bảo vệ, v.v. Được rồi, tôi đã rời khỏi hộp xà phòng…

Khi đã đảm bảo an toàn, hãy kết nối mọi thứ, khởi động nó và sau đó bắt đầu lập trình Máy chủ TTS (MCU mục tiêu ARMbasic) giống như cách lập trình với nhiều mục tiêu MCU được nhúng. Tôi đã quay một video mô tả cách lập trình và cách sử dụng đơn giản của TTS Click. Bạn có thể xem nó ở đây.

Mã nguồn ARMbasic có thể được tải xuống từ đây - một bài đăng trên diễn đàn có thêm chi tiết. Coridium đã thực hiện một bài đăng trên blog về những nỗ lực này, bạn có thể truy cập bằng cách nhấp vào đây.

Bước 3: Sửa đổi nguồn cho các mục tiêu cơ bản khác và các mục tiêu khác nhau

Sửa đổi nguồn cho các mục tiêu cơ bản khác và các mục tiêu khác nhau
Sửa đổi nguồn cho các mục tiêu cơ bản khác và các mục tiêu khác nhau
Sửa đổi nguồn cho các mục tiêu cơ bản khác và các mục tiêu khác nhau
Sửa đổi nguồn cho các mục tiêu cơ bản khác và các mục tiêu khác nhau
Sửa đổi nguồn cho các mục tiêu cơ bản khác và các mục tiêu khác nhau
Sửa đổi nguồn cho các mục tiêu cơ bản khác và các mục tiêu khác nhau
Sửa đổi nguồn cho các mục tiêu cơ bản khác và các mục tiêu khác nhau
Sửa đổi nguồn cho các mục tiêu cơ bản khác và các mục tiêu khác nhau

Tôi sẽ không thông báo cho bạn các bước cần thiết để sửa đổi mã nguồn để hoạt động với các mục tiêu ARMbasic khác, ngoài việc chỉ ra rằng tôi đã cố gắng làm như vậy trong vô số nhận xét về mã nguồn ở đó. Vui lòng dành thời gian để crack mở tệp tts.bas và đọc về những thay đổi nào cần thiết nếu bạn chọn chuyển mã sang một bộ điều khiển hỗ trợ ARMbasic khác.

Đính kèm theo đây là một số hình ảnh mà tôi đã chụp trong chu kỳ phát triển để làm cho nó hoạt động.

Bài học kinh nghiệm:

  1. Nếu bạn có một Trình phân tích logic với các đầu vào không sử dụng và có thêm IO mục tiêu không được sử dụng cho công việc hiện tại, đừng ngại sử dụng các IO đó làm công cụ gỡ lỗi - rắc rối IO ở các điểm khác nhau trong mã có thể một trợ giúp rất lớn trong việc theo dõi những gì đang và không hoạt động như mong đợi, để xác định các vấn đề thời gian ngốc nghếch (tức là các sự cố gián đoạn ảnh hưởng đến các giao dịch nối tiếp bit-banged) và để hiểu rõ hơn về tổng thể những nỗ lực của bạn.
  2. Không phải tất cả các bộ điều khiển ARM đều giống nhau. Điều này là hiển nhiên. Tuy nhiên, tôi đã nhận được một chút khi thực hiện dev ban đầu trên LPC1765 Coridium SuperPRO. Nhìn lại, điều khiến điều này trở thành một lựa chọn tồi là việc triển khai lõi ARM này cho phép truy cập không theo từ ngữ vào bộ nhớ. Khi chuyển mã C sang ARMbasic, mọi thứ diễn ra khá suôn sẻ cho đến khi tôi cố gắng sử dụng nó với mục tiêu SAMD21 - mọi thứ đã trở nên tồi tệ và mọi thứ trở nên khó tin do quyền truy cập không được đánh dấu khi lấp đầy bộ đệm, thao tác cờ, làm việc với phiên bản ARMbasic của các cấu trúc / công đoàn mà tôi đã nghĩ ra, v.v … Đó là một bài học đau đớn. Giải pháp ở đây: Nếu một người muốn có mã di động, hãy phát triển trên mục tiêu ứng viên hạn chế nhất, chỉ để đảm bảo rằng một người không phải đối mặt với kịch tính ở cuối dự án, khi một người có khả năng hào hứng nhất sử dụng thành quả của những nỗ lực của họ..:)
  3. Việc chuyển mã C sang ARMbasic KHÔNG phải là không thể. Nỗ lực này phần lớn là một quá trình phát triển đào tạo cổng khổng lồ. Nếu người ta dành thời gian để so sánh các nguồn C ban đầu với mã ARMbasic mà tôi đã tạo, người ta sẽ có thể tìm ra một số ý tưởng về cách triển khai những thứ có thể không nằm trong thiết kế cốt lõi của ARMbasic (tức là Cấu trúc).
  4. Giải quyết những việc như thế này theo từng phần có thể quản lý được. Theo mặc định, tôi là người thích nhìn thấy sự hài lòng một cách thường xuyên. Một nỗ lực chẳng hạn như những nỗ lực chuyển và phát triển này không có khả năng trở thành điều gì đó có thể hoàn thành trong một đêm. Đặt mục tiêu thực tế và cùng hướng tới, cố gắng không bị 'bức tranh lớn' lấn át.
  5. Một máy phân tích logic đóng vai trò quan trọng trong nỗ lực này. Có, tôi có một đơn vị DS-Logic + tầm trung thấp hơn, nhưng tôi có thể khẳng định chắc chắn rằng một LA Băng thông 24MHz giá rẻ $ 12,50 từ Amazonia sẽ có nhiều hơn đủ. Kết hợp điều đó với PulseView của Sigrok (miễn phí) (giải mã giao thức) và một hệ thống sẽ có một hệ thống rất mạnh mẽ có thể hoạt động trong vô số tình huống như những gì tôi đã cố gắng thực hiện với dự án này. Đảm bảo mua một đơn vị có các clip thử nghiệm hoặc đặt hàng các clip thử nghiệm riêng biệt, vì chúng rất có lợi (cách Trumpfeldian).
  6. Một đầu dò logic đơn giản cũng là một công cụ rất hữu ích. Trên ảnh tổng quan của không gian làm việc, bạn sẽ thấy một đầu dò logic Archer (Radio Shack) cổ đại ở góc dưới bên phải của hình ảnh. Tôi thực sự ngạc nhiên khi thấy những thứ như vậy hữu ích đến mức nào hàng ngày, ngay cả với một phòng thí nghiệm được trang bị tốt.

Tôi có thể đã liên kết với những thứ này sớm hơn trong này nhưng tôi không thể nhớ và quá lười biếng để xem xét. Đây là một bài đăng trên blog có video về mô-đun TTS đang hoạt động (Itaca uChip đang lưu trữ nó vào thời điểm đó) và bài đăng trên Diễn đàn ARMbasic nơi người ta có thể tải xuống mã nguồn ARMbasic đã được chuyển.

Hãy chăm sóc và vui chơi hacking đi!

-MHz

Đề xuất: