Bagaimana cara mengembangkan Google AIY Anda sendiri tanpa set

Suara Google telah ada untuk sementara waktu sekarang serta ketika Amazon merilis Alexa API serta porting kode cloud PAAS ke Raspberry PI 2 itu hanya Masalah waktu sebelum semua orang melompat pada kereta cepat ke Kerajaan Pembuat. Google hanya melakukannya dengan gaya.

Sedikit yang mengerti bahwa API Google Assistant untuk Raspberry PI 3 telah tersedia untuk waktu yang lama sekarang ketika mereka memutuskan untuk memberikan set gratis dengan masalah May 2017 majalah MAGPI, mereka membuat persepsi pada semua orang. Sayangnya dunia memiliki lebih banyak pembuat serta peretas serta jumlah salinan majalah terbatas.

Dalam penulisan ini, saya merancang versi DIY yang ditetapkan AIY untuk semua orang yang ingin berbicara dengan kotak kardus. Saya melihat lebih baik pada kit gratis, memisahkannya, menyatukannya serta menggantinya dengan sihir DIY. Untuk membuat segalanya lebih nyaman, saya juga merancang kandang yang dapat Anda cetak 3D untuk total kit. mari kita mulai.

Teardown.

Teriakan ke temanku [Shabaz] di Inggris karena mengirimi saya salinan MAGPI. “Google AIY Pekerjaan Suara Kit” (selanjutnya dipahami sebagai kit) berisi dua PCB serta banyak hal lainnya. Topi suara yang muncul seperti kartu suara-on-a-diet memiliki jumlah komponen yang sangat terbatas. Saya akan merinci setiap bagian serta menggambar skema KICAD untuk yang sama persis dengan satu

Servos.

Mulai dari sisi kiri, ada 6 set header 3-pin yang diberi label ‘servos’. Manajemen Servo yang dimaksud dimungkinkan memanfaatkan modul PWM on-board Raspberry PI 3. Setiap set memiliki koneksi GPIO, 5V serta GND. PIN GPIO tidak terhubung langsung ke header Raspberry PI 3 namun lebih banyak dengan 220ohm saat ini membatasi resistor (berlabel R1-R6).

Sumber Daya listrik

Di selatan ini adalah gadget yang diidentifikasi Q5 serta Q6 yang saya anggap sebagai bagian dari sirkuit pilihan catu daya. Perbaiki saya jika saya salah namun di sini adalah perkiraan saya. Pekerjaannya sederhana di mana Q5 hanya menyala ketika tegangan input lebih tinggi dari 5V dari port USB. Pembanding sederhana harus melakukannya saya memanfaatkan LM393 untuk referensi.

EDIT: [Raivsr] menjelaskan bahwa ini mungkin setara dengan raspberry pi ‘diode ideal’.

Antarmuka komunikasi.

Utara dari Header ‘Servo’ adalah J15 berlabel I2C yang langsung menautkan ke header Raspberry PI 3. Itu berarti ini seharusnya tidak dikaitkan dengan apa pun dengan pull-up 5V. Mereka tidak digunakan di papan namun kami akan membahas lebih lanjut tentang ini nanti. Tepat di sebelahnya adalah Header SPI dan 2-pin UART. Sekali lagi tautan ini langsung ke header primer serta hanya berfungsi sebagai breakout.

DAC dan EEPROM

Agak lebih rendah dan kami muncul di sirkuit kotak dengan QFN 16-pin bertanda ‘AKK BDQ’. Ini adalah MAXIM MAX98357A (PDF) yang merupakan DAC i2S dengan amplifier kelas D. Ini mendorong speaker secara langsung karena hanya ada satu output, itu hanya bisa mono atau stereo terintegrasi. Itu masih cukup goyang untuk anggaran.

Hal yang menarik adalah keberadaan JP6 yang tampaknya memiliki semua koneksi i2S dari Maxim Max98357A serta beberapa baris pilih lainnya. Terintegrasi dengan dua vias yang menautkan ke output pembicara kedua, Anda mungkin berpotensi dalam bentuk satu lagi maxim max98357a breakout board di atas untuk mendapatkan suara stereo. Saya akan melakukan skema serta membuatnya dapat diunduh serta jika Anda ingin menyediakannya, izinkan saya memahami hasilnya. Pikirkan tentang pekerjaan rumah opsional.

Di sebelah DAC adalah SSOP 8-pin yang merupakan 24C32 (PDF) i2C EEPROM. Ini tidak terkait dengan header I2C yang saya bicarakan sebelumnya namun agaknya pin 27 serta 28 header Raspberry PI 3. Menurut blog Raspberry Pi Foundation.

“EEPROM memegang informasi pabrikan papan, konfigurasi GPIO serta hal yang disebut fragmen ‘pohon perangkat’ – pada dasarnya deskripsi perangkat keras yang terhubung yang memungkinkan Linux untuk segera menonaktifkan driver yang diperlukan.”

Jadi ada beberapa saus tambahan yang membuat hal-hal berdetak dan saya mungkin memanfaatkan buspirate untuk membuang data namun saya tidak yakin apakah google menganggapnya properti intelektual atau komersial jadi saya tidak akan. Saya memiliki alternatif untuk itu juga jadi check out.

Driver

Bergerak ke arah kanan, kami menemukan 4 header bertanda ‘driver’. Ini adalah sirkuit MOSFET untuk mengendalikan ton seperti relay. [Shabaz] melakukan tugas yang fantastis menelusuri unsur-unsur pada ini serta 3 pin adalah GPIO, 5V serta pengemudi.

MOSFET dapat mendorong banyak 500mA masing-masing berkat poliswitch, namun GPIOS ditawarkan untuk digunakan secara langsung juga. Banyak yang akan didorong harus ditautkan antara pin bertanda ‘+’ serta ‘-‘. Pin header di sebelah kiri adalah keuntungan langsung aCcess ke pin header GPIOS dari Raspberry PI 3 serta skema menunjukkan hal yang sama.

Gunakan ini untuk menghubungkan LED atau gadget serupa untuk menyarankan pengoperasian relay atau beban.

Mikrofon serta konektor tombol

Hal-hal yang lebih menarik terjadi di kanan atas kanan dengan tombol push serta dua konektor JST. Konektor 4 pin dimaksudkan untuk tombol push yang berada di atas selungkup dirakit. Tombol push yang dipasang PCB kecil ditransfer secara paralel dengan sakelar luar serta dapat digunakan di lokasinya saat menyiapkan serta pengujian. JST 5 pin adalah untuk konektor mikrofon serta memiliki semua pin I2S.

Mikrofon

Terakhir, papan mikrofon ditandai 432 qdf21g, serta memiliki pengetahuan mikrofon digital SPH0645LM4H MEMS yang berbicara langsung i2s.

Itu dia!

Itu tentang membungkus air mata serta semua info yang diperlukan untuk membuat kit AIY Anda sendiri. Data skematis KICAD ditawarkan untuk diunduh dari Github namun saya meninggalkan Anda dengan bagian yang menyenangkan yang merupakan desain serta perutean.

Ini beberapa makanan untuk dipikirkan. Beberapa bagian dapat dihilangkan serta ukuran topi dapat menyusut ke PI Zero Phat.

Untuk alasan kesederhanaan, saya memanfaatkan gambar OS preconfigured dari halaman Google AIY. Ini adalah sedikit pendek 900MB serta dapat diunduh langsung dari goolge (file besar).

Tambahkan tombol shutdown

Anda kemungkinan besar melihat tombol emas kecil di sebelah tombol Ramah Lingkungan Besar di gambar di atas serta itu adalah bagian pertama dari latihan. Ini adalah tombol shutdown serta ditambahkan karena saya tidak ingin SSH ke kotak setiap kali saya ingin mematikannya dengan aman.

Dapatkan tombol yang ingin Anda gunakan serta menambahkan dua kabel dengan header wanita. Bit ini bekerja bahkan tanpa topi suara jadi jangan ragu untuk mencobanya. Selanjutnya jika Anda memiliki topi suara, tambahkan header pria ke bagian I2C. Anda dapat memilih jenis pin lain dan masih akan berfungsi. Tautkan tombol ke SDA atau GPIO 2 serta boot PI 3 UP.

Buka editor teks favorit Anda serta salin-paste yang sesuai dengan kode ke dalamnya.

1
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
#! / bin / python
# Script sederhana untuk mematikan PI raspberry pada pers tombol.
# oleh Inderbeet Singh

Impor RPI.GPIO sebagai GPIO
Impor waktu
Impor OS.

# Memanfaatkan Angka Pin Broadcom SOC
# Konfigurasi PIN dengan pullup interior diaktifkan serta pin dalam mode membaca.
Gpio.setmode (GPIO.BCM)
Gpio.setup (02, gpio.in, pull_up_down = gpio.pud_up)

# Fungsi kami pada apa yang harus dilakukan ketika tombol ditekan
Shutdown Def (Saluran):
OS.System (& quot; sudo shutdown -h sekarang & quot;)

# Tambahkan fungsi kami untuk dieksekusi ketika tombol ditekan tombol terjadi
Gpio.add_event_detect (02, gpio.falling, callback = shutdown, bouncetime = 2000)

# Sekarang tunggu!
Sementara 1:
waktu. Tidur (1)

Simpan data di folder / home / pi Anda sebagai shutdown.py

Dalam tipe terminal yang mematuhi perintah dengan perintah

1
chmod + x shutdown.py python shutdown.py & amp;

Ini harus membuat skrip berjalan di latar belakang. Jika Anda menekan tombol, PI harus segera dimatikan. Anda dapat memilih untuk menambahkan penundaan dengan menghapus panggilan telepon tidur dalam contoh kode. Atau, Anda mungkin juga memodifikasi GPIO dengan mengganti nomor yang sesuai dalam skrip Python.

Dingin! Sekarang kita bisa mematikan dengan menekan tombol.

Tambahkan kartu noise USB

Alternatif yang jelas untuk topi suara Google AIY adalah untuk memanfaatkan semua jenis kartu noise USB yang ditawarkan dari sejumlah sumber. Metode termudah adalah dengan cukup pasang satu di serta konfigurasikan aplikasi perangkat lunak untuk memanfaatkan itu alih-alih topi namun ketika ada dua driver yang diinstal, persyaratan skrip Python untuk dikonfigurasi ulang untuk membuat apa pun yang mulus.

Setelah Anda mencolokkan kartu suara, hal pertama yang harus dilakukan adalah memeriksa apakah itu diakui atau tidak. Di jendela terminal, ketikkan:

1
Atu – L.

‘Alay’ digunakan oleh skrip untuk berbicara balasan sehingga Anda harus dapat melihat dua perangkat kebisingan. Perhatikan bahwa noise onboard telah dinonaktifkan dari dalam config.txt (lihat referensi pohon gadget) dan dapat diaktifkan jika Anda berencana untuk memanfaatkan mikrofon USB alih-alih kartu noise. Output Windows akan terlihat seperti gambar di bawah ini.

Saya ingin mengatur kartu noise USB sebagai audio default, serta untuk itu kami membutuhkan untuk menyesuaikan /etc/asound.conf.

1
sudo nano /etc/asound.conf.conf.

Hapus bahan yang ada serta ganti dengan teks seperti yang ditunjukkan di bawah ini. Meskipun ini menetapkan input default serta gadget output ke perangkat USB, ada satu langkah lagi untuk membuat sesuatu berfungsi. (Untuk keluar nano, memanfaatkan Ctrl + X, Y, Kembali)

Selanjutnya kita edit ke data audio.py yang menangani semua pemutaran audio serta fungsionalitas perekaman. Untuk itu, buka data di editor teks favorit Anda; Milik saya adalah nano:

1
sudo nano /home/pi/voice-recognizer-raspi/src/audio..py.

Gulir ke bawah ke bagian ituNegara ‘Arecord’ yang ada di fungsi __init__. Jelas ada proses yang dikhususkan yang membuat perekam berjalan seperti yang akan saya tunjukkan dalam video. Untuk saat ini, kami ingin mengedit argumen untuk memastikan bahwa memanfaatkan kartu USB untuk menangkap audio, bukan topi suara asli. Penyesuaian sederhana untuk memanfaatkan ‘-d’, ‘SysDefault: Card = 1’ harus cukup seperti yang ditunjukkan pada gambar di bawah ini.

Modifikasi serupa diperlukan untuk fungsi ALLAY sedikit lebih jauh dalam kode.

Dengan itu, hack selesai! Klik dua kali ‘test_audio.py’ untuk memeriksa apakah audio berfungsi. Kami hanya melewatkan satu bagian dari puzzle – tombol ‘Dengar’! Jadi cukup kabel tombol push antara GPIO23 serta pin tanah yang berdekatan serta menjalankan ‘src / main.py’ untuk mulai bermain dengan DIY Google AIY.

Demo.

Demo video kecil dari hack yang disarankan dengan kartu noise USB, speaker luar serta mikrofon murah.

Sebuah kandang

Enclosure dicetak 3D dirancang dalam Fusion360 serta data STL adalah bagian dari repositori GitHub. Anda dapat memanfaatkan selungkup yang sama persis untuk sejumlah pekerjaan karena ada kebuntuan untuk Raspberry PI serta port yang dibawa keluar untuk kenyamanan. Ada banyak area di dalam untuk menambah topi serta sirkuit ekstra.

Saya membuat kandang terbelah dari tengah untuk memastikan bahwa menjadi mudah untuk mendapatkan akses ke GPIOS. Semuanya akan menekan bentuk termasuk tutup atas yang memiliki lubang untuk tiga tombol. Saya pikir itu masuk akal untuk memiliki tombol yang lebih kecil karena hasilnya diharapkan lebih keras daripada kardus. Ada banyak area untuk speaker yang harus Anda pilih untuk memasukkan satu yang agak berbeda.

Saya belum memiliki kemungkinan untuk mencetak satu dan akan memperbarui halaman ini ketika ada jenis pengembangan dalam topik. Di sini adalah render desain.

Ringkasan

Google telah memiliki API mereka yang tersedia untuk umum, namun gambar Raspbian yang telah dikonfigurasi akan membantu banyak orang untuk memulai. Saya telah mencoba merancang dasar-dasar kartu kebisingan selain memberikan rencana untuk kartu yang setara jika Anda ingin membuatnya. Bagi yang lain, pilihan untuk memanfaatkan kartu kebisingan luar dijelaskan serta menunjukkan serta saya berharap ini memengaruhi orang untuk benar-benar masuk ke dalam proyek tersebut. Dunia membutuhkan lebih banyak AIY dan juga di sini adalah kemungkinan Anda untuk memulai, jadi tunggu apa lagi? Dapatkan peretasan.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post