Daftar Isi:

Text to Speech Klik pada UChip Bertenaga ARMbasic, dan SBC Bertenaga ARMbasic Lainnya: 3 Langkah
Text to Speech Klik pada UChip Bertenaga ARMbasic, dan SBC Bertenaga ARMbasic Lainnya: 3 Langkah

Video: Text to Speech Klik pada UChip Bertenaga ARMbasic, dan SBC Bertenaga ARMbasic Lainnya: 3 Langkah

Video: Text to Speech Klik pada UChip Bertenaga ARMbasic, dan SBC Bertenaga ARMbasic Lainnya: 3 Langkah
Video: Free Text to Speech AI: клонируйте свой голос и заставьте его петь! 2024, Juli
Anonim
Text to Speech Klik pada UChip Bertenaga ARMbasic, dan SBC Bertenaga ARMbasic Lainnya
Text to Speech Klik pada UChip Bertenaga ARMbasic, dan SBC Bertenaga ARMbasic Lainnya
Text to Speech Klik pada UChip Bertenaga ARMbasic, dan SBC Bertenaga ARMbasic Lainnya
Text to Speech Klik pada UChip Bertenaga ARMbasic, dan SBC Bertenaga ARMbasic Lainnya
Text to Speech Klik pada UChip Bertenaga ARMbasic, dan SBC Bertenaga ARMbasic Lainnya
Text to Speech Klik pada UChip Bertenaga ARMbasic, dan SBC Bertenaga ARMbasic Lainnya

Pendahuluan: Selamat siang. Nama saya Tod. Saya seorang profesional kedirgantaraan dan pertahanan yang juga sedikit geek di hati.

Inspirasi: Berasal dari era BBS dial-up, Mikrokontroler 8-bit, komputer pribadi Kaypro/Commodore/Tandy/TI-994A, ketika toko Radio Shack berlimpah (hari-hari baik), salah satu proyek tertanam hobi pertama saya adalah bekerja dengan Kit Pelatihan Mikroprosesor Motorola MEK6800D2, yang telah saya beli saat bekerja sebagai co-op di lab MSU EE (setelah menyelesaikan pelatihan VoTech Elektronik Sekolah Menengah saya di Southern Lower MI). Proyek itu melibatkan pembuatan prototipe saya Radio Shack SP0256 NARRATOR™ SPEECH PROCESSOR ke MEK6800D2, memasangnya dan memprogram 6800 untuk membuatnya memancarkan pseudo-speech (mereka yang pernah bekerja dengan HW berbasis SP0256 tahu persis apa yang saya singgung). Ini bekerja dengan sangat baik dan saya berkembang di jalur pemotongan gigi saya di mikrokontroler dan Majelis yang tertanam. Setelah SMA, kehidupan menghalangi, Militer, Perang, Pasangan, Anak-anak, memasuki sektor sipil, memulai karir, dll. Semua ditambahkan ke rak hobi saya demi mengejar upaya hidup dalam budaya Barat (di sini di AS).

Lewati 20 tahun, datanglah ke waktu yang tak terhindarkan di mana anak-anak menjadi dewasa sampai-sampai Mempelai Wanita dan saya menjadi gangguan, tagihan hipotek/kendaraan/perguruan tinggi perlahan-lahan dilunasi, penghasilan menjadi lebih baik dengan kemajuan, dan saya memiliki cukup cadangan waktu ke titik di mana saya bisa mulai kembali fokus pada beberapa usaha egois, saya mengambil kembali pada pertunjukan elektronik hobi. Bagaimanapun, mengingat garis keturunan dan sejarah saya, saya mencari dan menemukan lingkungan pengembang yang dengan cepat saya terikat - ARMbasic - BASIC adalah cinta pertama saya dan ini sesuai dengan tagihan tidak hanya menyesuaikan diri dengan pemrograman, tetapi bekerja dengan perangkat keras yang lebih liar. kuat dari apa yang telah saya mulai dengan dekade sebelumnya, dan dengan demikian perjalanan dimulai.

Itu sekitar tahun 2006-2009. Kemudian, untuk alasan yang jauh di luar kendali kita, hidup berubah (seperti yang terjadi pada banyak orang selama tahun-tahun itu). Hobi disimpan - fokus pada karir baru, pulih dari perjuangan keuangan (sangat diberikan dalam domain real-estate dan kami mengambilnya di celana pendek dan anak muda baru saja sampai ke titik di mana pendanaan perguruan tinggi adalah keharusan). Pada dasarnya, masalah Kehidupan dan Dunia Pertama (kami benar-benar diberkati, mengingat tantangan dan kerja keras yang dihadapi orang-orang di belahan dunia lain setiap hari) memanifestasikan diri mereka dan … hobi itu ditangguhkan. Saya mengambil kembali sebentar di 2011-2012-ish kemudian bertemu dengan perubahan karir lain - hobi disimpan lagi.

Maju cepat satu dekade lagi dan … Saya kembali dan, Tuhan Bersedia, semoga untuk durasi (sampai saya tidur siang yang kotor dan mulai mendorong bunga aster dari bawah). Jadi, inilah kami. Wow - Arduino (apa kata aneh itu?) telah menyerbu pasar. Pembuat?? Apa sih mereka?! …:) Teman-teman saya di Coridium Corp (pemilik papan pengembang mikrokontroler berbasis ARMbasic dan ARM) tetap teguh dan benar. Sekarang, alih-alih rangkaian pengontrol LPC2xxx, ada entitas ARM baru (bagi saya), dan Cortex M0/M3/M4, dan Arduino, dan … WOW! Budaya telah berubah sedikit, dan dalam banyak cara yang hebat. Peeps berkolaborasi dari jarak jauh dan, memang, secara global. Perangkat keras menjadi luar biasa cepat dan kuat, dan ARMbasic, yang telah matang dan kokoh dengan pekerjaan di banyak keluarga silikon yang berbeda, adalah hal yang indah bagi saya dan banyak orang lainnya.

Jadi, membuat cerita pendek menjadi sangat panjang, saya baru-baru ini menemukan klik TTS oleh MikroElectronika dan merasakan aliran nostalgia mengalir di atas saya. Sudah memesan dalam hitungan menit, dan cemas pada hari-hari berikutnya sampai unit tiba di tangan. Maka dimulailah cerita…

Perlengkapan

  • 1 ea MikroElectronika Text To Speech Click, berisi Epson S1V30120 - modul TTS ASIC
  • 1 ea ARMbasic Target, memenuhi peran TTS Host
  • 1 ea Uno Breakout Shield (atau membuat prototipe papan roti, atau …)
  • 1 speaker ea, atau satu set speaker menyarankan speaker bertenaga desktop PC dengan colokan TRS 1/8" di atasnya
  • 1 lot Prototyping barang kawat, solder, fluks, sumbu, besi solder, header, soket IC dan sejenisnya..
  • 1 lot Embedded Dev Tools DMM, Logic Probe, Logic Analyzer, Scope, dll. - untuk MCU Host TTS baru

Langkah 1: Interkoneksi Perangkat Keras

Interkoneksi Perangkat Keras
Interkoneksi Perangkat Keras
Interkoneksi Perangkat Keras
Interkoneksi Perangkat Keras
Interkoneksi Perangkat Keras
Interkoneksi Perangkat Keras

Untuk mereplikasi ini menggunakan target ARMbasic dalam faktor bentuk Uno, atau dengan Itaca uChip, seseorang kemungkinan akan lebih baik dilayani dengan menggunakan pelindung prototyping, seperti yang telah saya lakukan pada gambar di atas (tautan amazon biasa)

Beberapa orang akan melihat kawat bungkus kawat yang dipilin dan bertanya-tanya mengapa - penolakan kebisingan mode umum adalah jawaban sederhana. Ya, kita tidak berurusan dengan sinyal yang seimbang di sini, tapi saya pikir tidak ada salahnya(?) jadi saya melakukan itu ketika saya sedang melakukan penumpukan papan.

Ini adalah desain yang cukup jinak. Cetakan terlampir di sini, dalam bentuk grafik (AutoCAD 2D adalah apa yang paling sering saya lakukan - telah bekerja dengannya selama beberapa dekade pada pekerjaan saya sehari-hari - saya masih memotong gigi KiCAD saya dan ini adalah upaya yang terlalu sederhana untuk dilakukan. membenarkan kurva belajar sebagai proyek pertama di KiCAD). Bagaimanapun, saya memilih untuk memasang soket uChip langsung ke pelindung untuk mengaktifkan kasus penggunaan yang berdiri sendiri saat menggunakan uChip sebagai host. Saya menambahkan JST untuk menyalakannya melalui baterai, jika saya ingin melakukannya dan, karena saya memiliki beberapa tambahan, saya membuat Adafruit SWD Breakout untuk memungkinkan saya menggunakan Segger J-Link EDU Debug Probe saya, jika diperlukan. Tidak, tetapi saya menyimpan SWD yang saya hadapi untuk digunakan dengan proyek-proyek masa depan.

Castellated berarti, dalam konteks ini, untuk mengarsipkan tepi PCB sehingga lubang berlapis dikurangi menjadi setengah silinder, memungkinkan penyolderan ke PCB pembawa - dalam hal ini papan pelindung pelindung. Saya memilih untuk melakukan ini karena bagian fanout paket datar dari perisai tidak cukup sejajar dengan jarak baris antara dua baris header pada SWD BOB. Memecah file datar dan 5 menit pengarsipan dan masalah terpecahkan.

Langkah 2: Pemrograman dan Pengujian

Pemrograman dan Pengujian
Pemrograman dan Pengujian
Pemrograman dan Pengujian
Pemrograman dan Pengujian
Pemrograman dan Pengujian
Pemrograman dan Pengujian

Setelah perangkat keras dibangun, perlu ada ring-out penuh untuk memvalidasi bahwa kabelnya baik. Kemudian, saya selalu melakukan pemeriksaan Power and Grounds. Ini tidak hanya memastikan bahwa Power dan Ground berada di tempat yang seharusnya, tetapi juga penghentian lain yang seharusnya tidak memiliki power/ground di sana. Ini bukan tugas yang membosankan pada proyek kecil seperti ini, tetapi dengan sistem yang lebih besar, meskipun merupakan langkah yang membosankan, mutlak diperlukan untuk memastikan tidak ada sub-rakitan atau sistem yang terhubung yang diambil oleh kesalahan konyol yang bisa dan seharusnya ditangkap. Saya biasanya memasang barang minimal sehingga daya dihasilkan di papan dan kemudian memeriksa setiap pin/terminasi untuk daya dan ground sebelum mencolokkan sub-rakitan, chip, dll., Pastikan daya berada pada tingkat yang tepat (mempertimbangkan persyaratan non-5V-toleran perangkat/IO, 1v8 dan 3v3, dll.) dan landasan itu adalah tempat yang diperlukan dan hanya di tempat yang diperlukan. Saya telah menyaksikan serangkaian kegagalan pada pesawat dari orang-orang yang gagal melakukan pemeriksaan pra-koneksi yang tepat. Dalam satu kasus, dibutuhkan lebih dari $100K LRU - bukan waktu yang menyenangkan untuk bertanggung jawab atas sebuah proyek dan membuatnya menyamping dalam sekejap karena seseorang menghentikan prosesnya. Hal lain yang saya bersalah adalah melakukan 'pemeriksaan sekitar' yang membosankan - memastikan bahwa kontak/pemutusan tidak disingkat ke kontak/pemutusan yang berdekatan. Ini menjadi kritis jika seseorang berurusan dengan rakitan koaksial, harness multi-konduktor/terlindung, dll. Oke, saya keluar dari kotak sabun…

Setelah keamanan terjamin, sambungkan berbagai hal, nyalakan, lalu mulai memprogram Host TTS (ARMbasic Target MCU) seperti yang dilakukan dengan banyak target MCU yang disematkan. Saya merekam video yang menggambarkan pemrograman dan penggunaan sederhana dari TTS Click. Anda dapat melihatnya di sini.

Kode sumber ARMbasic dapat diunduh dari sini - posting forum yang memiliki detail tambahan. Coridium melakukan posting blog tentang upaya ini, yang dapat Anda dapatkan dengan mengklik di sini.

Langkah 3: Memodifikasi Sumber untuk Target ARMbasic Lainnya, dan Berbagai Musing

Memodifikasi Sumber untuk Target ARMbasic Lainnya, dan Berbagai Musing
Memodifikasi Sumber untuk Target ARMbasic Lainnya, dan Berbagai Musing
Memodifikasi Sumber untuk Target ARMbasic Lainnya, dan Berbagai Musing
Memodifikasi Sumber untuk Target ARMbasic Lainnya, dan Berbagai Musing
Memodifikasi Sumber untuk Target ARMbasic Lainnya, dan Berbagai Musing
Memodifikasi Sumber untuk Target ARMbasic Lainnya, dan Berbagai Musing
Memodifikasi Sumber untuk Target ARMbasic Lainnya, dan Berbagai Musing
Memodifikasi Sumber untuk Target ARMbasic Lainnya, dan Berbagai Musing

Saya tidak akan menjelaskan kepada Anda langkah-langkah yang diperlukan untuk memodifikasi kode sumber agar dapat bekerja dengan target ARMbasic lainnya, selain untuk menunjukkan bahwa saya terus-menerus melakukannya dalam banyak komentar kode sumber di dalamnya. Harap luangkan waktu untuk membuka file tts.bas dan membaca tentang perubahan apa yang diperlukan jika Anda memilih untuk mem-port kode ke pengontrol bertenaga ARMbasic lain.

Terlampir di sini adalah beberapa gambar yang saya ambil selama siklus dev agar ini berfungsi.

Pelajaran yang didapat:

  1. Jika Anda memiliki Penganalisis Logika dengan input yang tidak digunakan dan memiliki IO target tambahan yang tidak digunakan untuk pekerjaan yang sedang dikerjakan, jangan takut untuk menggunakan IO tersebut sebagai alat debugging - menaburkan IO yang bergoyang di berbagai titik dalam kode dapat menjadi bantuan besar dalam melacak apa yang berfungsi dan tidak berfungsi seperti yang diharapkan, untuk mengidentifikasi masalah waktu yang konyol (yaitu interupsi yang memengaruhi komunikasi serial yang terputus-putus), dan untuk secara keseluruhan mendapatkan pemahaman yang lebih baik tentang upaya Anda secara keseluruhan.
  2. Tidak semua pengontrol ARM sama. Ini jelas. Namun, saya mendapat sedikit dengan melakukan pengembangan awal pada LPC1765 Coridium SuperPRO. Di belakang, apa yang membuat ini menjadi pilihan yang buruk adalah bahwa implementasi inti ARM ini memungkinkan akses non-word-aligned ke memori. Saat mem-porting kode C ke ARMbasic, semuanya berjalan cukup lancar sampai saya mencoba menggunakannya dengan target SAMD21 - semuanya kacau balau dan semuanya gagal karena akses yang tidak selaras saat mengisi buffer, memanipulasi flag, bekerja dengan versi ARMbasic struktur/serikat yang saya buat, dll. Itu adalah pelajaran yang menyakitkan. Kesimpulannya di sini: Jika seseorang ingin memiliki kode portabel, kembangkan pada target kandidat yang paling ketat, hanya untuk memastikan bahwa seseorang tidak dihadapkan dengan drama di akhir proyek, ketika seseorang kemungkinan paling bersemangat untuk menggunakan hasil dari usaha mereka..:)
  3. Memindahkan kode C ke ARMbasic BUKAN tidak mungkin. Upaya ini sebagian besar merupakan salah satu evolusi pelatihan porting raksasa. Jika seseorang meluangkan waktu untuk membandingkan sumber C asli dengan kode ARMbasic yang saya buat, seseorang harus dapat menemukan beberapa ide bagaimana mengimplementasikan hal-hal yang mungkin bukan bagian dari desain inti ARMbasic (yaitu Struktur).
  4. Atasi hal-hal seperti ini dalam potongan yang dapat dikelola. Secara default, saya adalah orang yang suka melihat kepuasan secara teratur. Upaya seperti upaya porting dan dev ini sepertinya bukan sesuatu yang dapat dicapai dalam satu malam. Tetapkan tujuan yang realistis dan upayakan hal yang sama, berusaha untuk tidak terbebani oleh 'gambaran besar'.
  5. Penganalisis Logika sangat penting dalam upaya ini. Ya, saya memiliki unit DS-Logic+ kelas menengah bawah, tetapi saya dapat menyatakan dengan tegas bahwa LA Bandwidth 24MHz yang murah seharga $12,50 dari Amazonia akan lebih dari cukup. Pasangkan dengan PulseView Sigrok (gratis) (melakukan decoding protokol) dan satu akan memiliki sistem yang sangat kuat yang harus bekerja dalam banyak skenario seperti apa yang saya coba lakukan dengan proyek ini. Pastikan untuk mendapatkan unit yang memiliki klip uji, atau pesan klip uji secara terpisah, karena sangat bermanfaat (seberapa Trumpfeldian).
  6. Sebuah probe logika sederhana adalah alat yang sangat berguna juga. Pada gambar ikhtisar ruang kerja, Anda akan melihat probe logika Archer (Radio Shack) kuno di sudut kanan bawah gambar. Saya benar-benar terkejut menemukan betapa bergunanya sesuatu seperti itu setiap hari, bahkan dengan laboratorium yang lengkap.

Saya mungkin telah menautkannya sebelumnya dalam hal ini, tetapi saya tidak dapat mengingatnya dan saya terlalu malas untuk melihatnya. Berikut adalah posting blog yang memiliki video modul TTS beraksi (Itaca uChip menghostingnya pada waktu itu), dan posting Forum ARMbasic di mana orang dapat mengunduh kode sumber ARMbasic porting.

Berhati-hatilah dan bersenang-senang meretas!

-MHz

Direkomendasikan: