Google’s voice assistant has been around for a while now as well as when Amazon released its Alexa API as well as ported the PaaS Cloud code to the Raspberry Pi 2 it was just a matter of time before everybody else jumped on the quick train to maker kingdom. Google just did it in style.
Few understand that the Google assistant API for the Raspberry Pi 3 has been available for a long time now however when they decided to provide away a free set with the may 2017 problems of MagPi magazine, they made an perception on everyone. unfortunately the world has more makers as well as hackers as well as the number of copies of the magazine are limited.
In this writeup, I design the diy version of the AIY set for everybody else who wishes to talk to a cardboard box. I take a better look at the free kit, take it apart, put it together as well as replace it with diy magic. To make things more convenient, I likewise designed an enclosure that you can 3D print to total the kit. lets get started.
The Teardown
A shout out to my buddy [Shabaz] in the UK for sending me a copy of the MagPi. The “Google AIY jobs Voice Kit”(henceforth understood as the kit) contains two PCBs as well as a lot of other stuff. The Voice HAT which appears like a Sound-Card-On-A-Diet has extremely restricted number of components. I will detail each section as well as draw the KiCAD schematic for the exact same one by one
Servos
Starting from the left side, there are 6 sets of 3-pin headers that are labelled ‘Servos’. The meant servo manage is made possible utilizing the Raspberry Pi 3’s on-board PWM module. Each set has a GPIO pin, 5V as well as GND connection. The GPIO pin does not link directly to the Raspberry Pi 3’s header however rather with 220Ohm present limiting resistors (labelled R1-R6).
Power Supply
Just south of these are gadgets identified Q5 as well as Q6 which I am presuming are part of a power supply choice circuit. correct me if I am wrong however right here is my estimate. The working is simple where Q5 only turns ON when the input voltage is higher than the 5V from the USB port. A simple comparator should do so I am utilizing the LM393 for reference.
EDIT: [Raivsr] explained that this might be the equivalent of the Raspberry Pi ‘Ideal Diode’.
Communication Interfaces
North of the ‘Servo’ headers is J15 labelled I2C that directly link to the Raspberry Pi 3 header. That means these should not be linked to anything with 5V pull-ups. They are not being utilized on the board however we will discuss more on this later. right next to it is the SPI as well as 2-pin UART headers. once again these link directly to the primary header as well as serve only as a breakout.
The DAC as well as EEPROM
A bit lower as well as we show up at the boxed circuit with a 16-Pin QFN marked ‘AKK BDQ’. This is the Maxim MAX98357A(PDF) which is an I2S DAC with a class D amplifier. It drives the speaker directly nevertheless since there is only one output, it can only be mono or integrated stereo. It’s still pretty rocking for the budget.
The fascinating thing is the existence of JP6 which seems to have all the I2S connections from the Maxim MAX98357A as well as a few other choose lines. integrated with the two vias that link to the second speaker output, you might potentially in shape one more Maxim MAX98357A breakout board on top to get stereo sound. I am going to do the schematic as well as make it downloadable as well as if you want to provide it a shot let me understand the results. think about it optional homework.
Next to the DAC is an 8-pin SSOP which is a 24C32 (PDF) I2C EEPROM. It’s not linked to the I2C header I talked about earlier however rather to pins 27 as well as 28 of the Raspberry Pi 3 header. According to the Raspberry Pi Foundation’s blog.
“The EEPROM holds the board manufacturer information, GPIO configuration as well as a thing called a ‘device tree‘ fragment – basically a description of the connected hardware that enables Linux to immediately tons the needed drivers.”
So its got some additional sauce that makes things tick as well as I might utilize a BusPirate to Dump the data however I am not sure if Google considers it Intellectual residential or commercial property so I won’t. I have an alternate for it also so checked out on.
Drivers
Moving towards the right, we discover 4 headers marked ‘Drivers’. These are MOSFET circuits for controlling tons such as relays. [Shabaz] did a fantastic task tracing out the elements on this as well as the 3 pins are GPIO, 5V as well as Driver.
The MOSFETs can drive tons of as much as 500mA each thanks to a polyswitch nevertheless the GPIOs are offered for utilize directly as well. tons to be driven should be linked between the pins marked ‘+’ as well as ‘-‘. The header pin on the left is a direct gain aरास्प्बेबेरी पीआई ough को साथ जीपीआईओएस हेडर पिनहरूका साथै योजनाबद्ध शोपनहरूले समान देखाउँदछ।
यी लिंक गर्न यी प्रयोग गर्नुहोस् LIDS वा समान ग्याजेटहरू रिज वा भारहरूको अपरेशन सुझाव दिन।
माइक्रोफोन साथै बटन कनेक्टरहरू
अधिक मनमोहक सामानहरू दाहिने साइडको माथिल्लो दायाँ दायाँ छेउमा छ बटन साथै दुई जेस्ट कनेक्टरहरू। PIN पिन कनेक्टर एक पुश बटन को लागी हो जुन भेला भएको घेरीको शीर्षमा बस्दछ। सानो PCB माउन्ट गरिएको पुश बटन बाहिर समानान्तर बाहिर समानान्तर छ साथै यसको स्थानमा साथै परीक्षणको साथ प्रयोग गर्न सकिन्छ। Pin स्लिप जिस्ट माइक्रोफोन कनेक्टरका लागि हो साथै I2S PINS छ।
माइक्रोफोन
अन्तमा, माइक्रोफोन बोर्डलाई 43 432 QDF211 मा चिन्ह लगाइएको छ, साथै i2s मा सिधै sph064lm4h Ms MEM4H MEMHONENDSS थाहा छ।
त्यो हो!
त्यो तेर्डिंगका साथै तपाईंको आफ्नै एली किट बनाउनको लागि सबै जानकारी आवश्यक छ। KICAD कोरियोगिक डाटा Github बाट डाउनलोड को लागी प्रस्ताव गरिएको छ म तपाईंलाई रमाईलो भाग संग छोड्छ जुन डिजाइन को साथ साथै करा।
यहाँ विचारको लागि केहि खाना छ। केहि भागहरू हटाएर टोपीको आकार PI शून्य फाटमा संकुचन गर्न सकिन्छ।
सरलता कारणहरूको लागि, म Google Aiy पृष्ठ बाट पूर्व कन्फिगर गरिएको ओएस तस्वीर प्रयोग गर्दैछु। यो एक TAD TAD ASATESTER को साथ छोटो छ साथै गिलोज (विशाल फाईल) बाट सिधा डाउनलोड गर्न सकिन्छ।
शटडाउन बटन थप्नुहोस्
तपाईंले सम्भवतः माथिको प्रकाशमा विशाल एको-मैत्री बटनको छेउमा सानो सुनौलो बटन याद गर्नुभयो र व्यायामको सब भन्दा पहिलो भाग हो। यो बन्द गरिएको बटन हो साथै थपिएको छ किनकि म बक्समा ssh गर्न चाहान्दिन, म यसलाई सुरक्षित रूपमा बन्द गर्न चाहान्छु।
बटन प्राप्त गर्नुहोस् जुन तपाईं र महिला हेडरहरूको साथ दुई तारहरू थप्न चाहानुहुन्छ। यो बिट आवाज टोपी बिना पनि काम गर्दछ त्यसैले यसलाई प्रयास गर्न स्वतन्त्र महसुस गर्दछ। अर्को यदि तपाइँसँग आवाज टोपी छ भने, I2C भागमा पुरुष हेडरहरू थप्नुहोस्। तपाईं कुनै पनि प्रकारको अन्य पिनहरू चयन गर्न सक्नुहुनेछ साथै यो अझै पनि काम गर्दछ। BDA वा GPIO 2 मा बटन थिच्नुहोस् र साथै पीआई at मा बुट।
तपाईंको मनपर्ने पाठ सम्पादक खोल्नुहोस् साथै यसमा कोडसँगको प्रतिलिपि गरेर टाँस्नुहोस्।
1
2.
We
?
W
The
?
8
दोष
रों 10
11
12
1 ‘्ग
1 ‘
1
1 16
1
18
1 19
राष्ट
21
चिहान 22
2 23
#! / BIN / python
# एक बटनको प्रेसमा रास्पबेरी पारिपट्टि बन्द गर्नका लागि सरल स्क्रिप्ट।
# रिसेट्रेट सिंह द्वारा
GPIO को रूपमा RPI.GPPIO आयात गर्नुहोस्
समय आयात समय
आयात OS
# ब्रॉडमाम सोम पिन कल नम्बरहरू प्रयोग गर्नुहोस्
# कन्फिगरेसन ईन्टर्रियर ताल्चाअपहरूको साथ पिन पढ्नको लागि साथै पढ्न सक्षम भयो।
GPIO.STEDMODED (GPIO.BCM)
GPIO.STEDUP (02, GPIO.IN, पुल_प_डाउन = gpio.pud_up)
# के गर्न को लागी जब बटन थिच्नुहोस् जब बटन थिच्नुहोस्
शटडाउन (च्यानल):
OS.STM (& & quot; sudo बन्दडाउन -h अब & quot;)
# बटन थिच्नुहोस् जब बटन थिच्नुहोस् जब बटन थिचिएको घटना हुन्छ
Gpio.add_eenve_deatect (02, gpio.dering, कलब्याक: शटबर्ड, बाउन्स समय, 2000)
# अब पर्खनुहोस्!
जबकि 1
समय
शटडाउन।
टर्मिनलमा कमाण्डको साथ अनुपालन टाइप गर्नुहोस्
1
चम्मम + X शटडाउन
यसले पृष्ठभूमिमा स्क्रिप्ट रन बनाउनु पर्छ। यदि तपाईं बटन थिच्नुभयो भने, PI तुरून्त बन्द गर्नु पर्छ। तपाइँ उदाहरण कोड मा निन्दनित फोन कल मा एक ढिलाइ थप्न चयन गर्न सक्नुहुन्छ। वैकल्पिक रूपमा, तपाईं पनि python स्क्रिप्टमा उपयुक्त संख्या प्रतिस्थापन गरेर gpio संशोधन गर्न सक्नुहुन्छ।
शीतल! अब हामी बटन थिचेर बन्द गर्न सक्छौं।
एक USB आवाज कार्ड थप्नुहोस्
गुगल एडी आवाज टोपीमा स्पष्ट वैकल्पिक एआईबीको कुनै पनि प्रकारको USB आवाज कार्डहरू प्रयोग गर्नु हो जुन धेरै स्रोतहरूबाट प्रस्ताव गरिएको छ। सब भन्दा सजिलो विधि भनेको केवल प्लगमा पनि प्लग इन गर्न को लागी र सफ्टवेयर अनुप्रयोग कन्फिगर गर्न को लागी एक दुई ड्राइभर स्थापना भयो, पाइथन स्क्रिप्ट को आवश्यकता सबै भन्दा फरक बनाउन को लागी प्रतिरोध गर्न को लागी प्रतिरोध गर्न को लागी प्रतिरोध गर्न।
एकचोटि तपाईंले साउन्डकार्डमा प्लग एक पटक, गर्नको लागि पहिलो कुरा हो यदि यो स्वीकार गरिएको छ वा छैन। टर्मिनल विन्डोमा, टाइप गर्नुहोस्:
1
Aplay – l
स्क्रिप्ट ‘aplays द्वारा जवाफ द्वारा उपयोग गरिएको छ ताकि तपाईं दुई आवाज उपकरणहरू हेर्न सक्षम हुनुपर्दछ। नोट गर्नुहोस् कि अर्डबोर्ड आवाज कन्फिगरेज गर्नुहोस् (GADIGE BEAR सन्दर्भ हेर्नुहोस्) र शोर कार्डको सट्टा USB माइक्रोफोन प्रयोग गर्ने योजना बनाउन सकिन्छ। विन्डोज आउटपुट तलको तस्वीर जस्तो देखिनु पर्छ।
म USB आवाज कार्डलाई पूर्वनिर्धारित अडियोको रूपमा सेट गर्न चाहान्छु, साथै हामी / खेता /asswald.conf लाई अनुकूलित गर्न आवश्यक पर्दछ।
1
सुडोको नानो /
अवस्थित सामग्रीहरू मेटाउनुहोस् साथै तल देखाइएको रूपमा यसलाई पाठको साथ बदल्नुहोस्। यद्यपि यसले पूर्वनिर्धारित इनपुट सेट गर्दछ साथै USB उपकरणमा आउटपुट ग्याजेट गर्दछ, चीजहरू प्रयोग गर्न अझ कदम छ। (ननोबाट बाहिर निस्कन, Ctrl + X, y, रिटर्न प्रयोग गर्न
अर्को हामी अडियो अपेड डाटामा सम्पादन गर्दछौं जुन सबै अडियो खेल मैदानमा र रेकर्डिंग कार्यक्षमताको ह्यान्डल गर्दछ। यसको लागि, तपाईंको मनपर्ने पाठ सम्पादकमा डाटा खोल्नुहोस्; मेरो नानो हो:
1
sudo नानो /Hom/agi/vercycagizer-aphi/src/arcc/audi.chri.chipio.pyd
भागमा तल स्क्रोल गर्नुहोस् किराज्यहरू ‘iscord’ जो __init__ प्रकार्यमा छ। स्पष्ट रूपमा त्यहाँ एक समर्पित प्रक्रिया छ जुन रेकर्डर चलिरहेको छ किनकि म भिडियोमा देखाउनेछु। अहिलेको लागि, हामी यो तर्क सम्पादन गर्न चाहन्छौं कि यो USB कार्डको उपयोग गर्नका लागि एडीबी कार्डको उपयोग गर्न। ‘-D’, ‘SYSDEFALTS प्रयोग गर्न एक सरल समायोजन: कार्ड = 1’ तल चित्रमा देखाइएको अनुसार पर्याप्त छ।
यस्तै परिमार्जन को लागी APLY को लागी एक बिट को लागी एक बिट थप।
त्यो संग, ह्याक पूर्ण छ! ‘परीक्षण_आउडियो.पी’ ” अडियोले कामहरू निरीक्षण गर्न ‘परीक्षण_ओडियो। हामी पजलको एक भाग मात्र हराइरहेका छौं तर ‘सुन्नुहोस्’ बटन! एक मात्र GPIO23 को बीचको एक धक्का बटन साथै नजिकको ग्राउन्ड ग्रान्ड पिन र त्यसपछि एक drc / mego.phook ‘segly Gogle Aiy को साथ खेल्न को लागी।
डेमो
एक USB noise कार्डको साथ सुझाव गरिएको ह्याकको एक सानो भिडियो, बाहिर स्पिकरको साथ साथै सस्तो माइक्रोफोन।
घेरा
थ्रीडी मुकुटे एन्क्शन फ्यूजन 50600 मा डिजाइन गरिएको हो साथै स्टॉल डाटा githuu को भाग को हिस्सा हो। जबसम्म रास्प्बेबेरी पाईका लागि अडिगफको लागि ठ्याक्कै समान कार्यको उपयोग गर्न सक्नुहुन्छ किनकि राइजबेरी पाटीका लागि स्ट्यान्डहरू छन् किनकि बन्दुकको लागि पोर्टहरू सुविधाको लागि बाहिर ल्याइएको छ। त्यहाँ भित्रको क्षेत्रको एक ठूलो सौदा छ टोट थप्न को साथै अतिरिक्त सर्किटहरू।
मैले बीचबाट घेरा-विभाजन गरें कि यो GPIOS मा पहुँच प्राप्त गर्न सरल हुन्छ। सम्पूर्ण चीज आकारमा थिच्दछ शीर्ष क्याप्सको साथमा जो तीन बटनको लागि प्वालहरू छन्। मलाई यद्यपि परिणामहरू ग्रुपबोर्ड भन्दा गाह्रो हुने अपेक्षा गरिएको छ किनकि परिणामले सानो बटनहरूसँग सानो बटनहरू राख्नुपर्ने हुन्छ। त्यहाँ स्पिकरका लागि पर्याप्त क्षेत्र छ तपाईंले केहि फरक छ कि समावेश गर्न चयन गर्नुपर्नेछ।
मैले एउटालाई बाहिर प्रिन्ट गर्ने सम्भावना पनि भएको छैन जब यस पृष्ठलाई अपडेट गर्दछ जब यस पृष्ठलाई अपडेट गर्दछ। यहाँ सही डिजाइन्डरको रेन्डर छ।
सारांश
गुगलले पहिले नै जनताका लागि उपलब्ध छन्, यद्यपि पूर्वनिर्धारित रास्व्यानीको तस्वीरले एक ठूलो सम्झौतालाई मद्दत गर्दछ। मैले note कार्डको मौलिकताका उद्देश्यहरू डिजाइन गर्न कोसिस गरेको छु एक बराबर कार्डको लागि योजनाहरू प्रदान गर्न को लागी तपाइँ एक बनाउन चाहानुहुन्छ भने। बाहिरी आवाज कार्डको उपयोग गर्न छनौटको रूपमा छनौट गरिएको छ साथै प्रदर्शनको रूपमा पनि प्रदर्शितको साथ साथै म आशा गर्दछु कि यसले मानिसहरूलाई वास्तवमा त्यस्ता प्रोजेक्टहरूमा जान मद्दत गर्दछ। संसारलाई थप आयैको आवश्यकता छ साथै यहाँ सहि छ, जुन तपाईं सुरू हुने सम्भावना छ, त्यसैले तपाईं केको लागि पर्खिरहनु भएको छ? ह्याकिंग प्राप्त गर्नुहोस्।