Orodha ya maudhui:

Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY: Hatua 4
Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY: Hatua 4

Video: Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY: Hatua 4

Video: Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY: Hatua 4
Video: Шок!!! ДУШИ МЕРТВЕЦОВ В ЗАТОЧЕНИИ У ДЕМОНА В ЭТОМ СТРАШНОМ ДОМЕ / HERE ARE THE SOULS OF THE DEAD 2024, Novemba
Anonim
Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY
Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY
Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY
Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY
Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY
Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY
Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY
Sensor ya Rangi ya Kuzungumza, Kulingana na Kitengo cha Sauti cha AIY

Baada ya kujifunza kidogo juu ya Braille hivi karibuni, nilikuwa najiuliza ikiwa ninaweza kujenga kitu kwa kutumia kitanda cha sauti cha AIY kwa Raspberry Pi, ambayo inaweza kuwa na faida ya moja kwa moja kwa walemavu wa macho. Kwa hivyo ilivyoelezwa katika yafuatayo utapata mfano wa kifaa rahisi cha kugundua rangi ambacho kinasoma matokeo yake kwa sauti.

Toleo la kufafanua zaidi la mfumo huu linaweza kuwa muhimu kwa watu wasioona vizuri au upofu wa rangi.

Mfumo unatumia Raspberry Pi na kofia ya sauti ya AIY iliyoambatanishwa. Kuibuka kwa sensa ya TCS34725 RGB imeunganishwa na bandari ya I2C ya HAT. Kuzuka kuna mwangaza mweupe wa joto mweupe wa LED kuangazia kitu ambacho kitachambuliwa. Kuzuka kuliwekwa katika nyumba ili kuboresha na kusanikisha hali ya upimaji.

Sensorer tatu za rangi hupima juu ya masafa matatu sawa na sensorer za rangi machoni pako. Kisha maadili nyekundu, kijani na bluu (RGB) hutumiwa kuhesabu jumla ya rangi.

Jambo zuri kuhusu mfumo huu maalum ni kwamba sasa inakuambia rangi kwa maneno, ikitumia amri ya vifaa vya sauti vya AIY "sema". Tafadhali angalia video inayoambatana.

Kifaa kinaweza pia kuwa muhimu kama mfano kwa kifaa cha sensorer cha I2C kilichounganishwa na HAT ya sauti ya AIY.

Hatua ya 1: Vifaa vilivyotumika

Raspberry Pi 3. ~ 35 US $ au EUR

Kitanda cha sauti cha AIY, na vichwa vilivyouzwa kwa HAT. ~ 25US $ au EUR

Kuzuka kwa Adafruit TCS34725, na kichwa kimeuzwa. ~ 8 US $ au EUR

Kamba za jumper.

Bao la mkate (hiari)

Kwa makazi ya sensa: - kidonge cha kahawa kilichotumiwa "Dolce Gusto" - kipande kidogo cha pande zote cha 2mm Forex (sahani ya povu ya PVC), karibu mduara wa 37mm- nyenzo nyeusi isiyoonyesha kufunika kuta za ndani za nyumba. Nilitumia povu nyeusi ya mpira.

Hiari: swichi ndogo ili kuamsha vipimo

Matone machache ya gundi ya plastiki na kisu cha mkata.

Hatua ya 2: Mkutano na Matumizi

Mkutano na Matumizi
Mkutano na Matumizi
Mkutano na Matumizi
Mkutano na Matumizi
Mkutano na Matumizi
Mkutano na Matumizi

Raspberry Pi na sauti ya AIY HAT iliwekwa kama ilivyoelezewa katika mwongozo wa AIY. Kabla ya kusanyiko, vichwa viliuzwa kwa bandari kwenye HAT. Kwa makazi ya sensor hiyo, kibonge cha kahawa cha "Dulce Gusto" kilimwagika, kusafishwa, na sehemu ya chini iliondolewa kwa uangalifu na kisu. Unaweza kutumia kitu kingine kwa kusudi hili, kibonge cha kahawa kilikuwa na saizi na umbo sahihi. Kipande cha mviringo cha 2mm Forex kilikatwa kutoka kwa bamba, ndipo kuzuka kuliwekwa katikati kwenye bamba la Forex, nafasi iliyowekwa alama na kalamu iliyojisikia, na mpangilio wa kichwa kwenye kuzuka ulikatwa katika nafasi inayofaa.

Sasa kipande cha Forex kilikuwa kimefungwa kwenye nyumba na kuzuka kwa sensorer kushikamana na sahani ya Forex, kwa kutumia ukanda wa Velcro. Kisha kuta za ndani zilifunikwa na nyenzo nyeusi nyeusi nyepesi, nilitumia povu ya kujifunga ya mpira. Kadibodi nyeusi inapaswa kufanya kazi pia. Sasa, kwa kutumia nyaya za kuruka, bandari ya HAT ya I2C "3.3V" iliunganishwa na "V in" kwenye sensor, Ground to Gnd, sda to sda na scl to scl. Nilikuwa nimetumia ubao wa mkate kuunganisha sehemu zote mbili, lakini hiyo sio ya lazima.

Weka hati ya chatu ya AIY_TCS34725 kwenye folda ya src na uendeshe hati kutoka kwa kituo cha dev, ukiingia "sec / AIY_TCS34752.py". Unaweza kulazimika kufanya hati ya chatu kutekelezwa kwanza. Unapoulizwa, weka kitengo cha sensorer juu ya kitu kinachopimwa, bonyeza kitufe kwenye kifaa cha AIY na subiri sekunde moja au mbili.

Halafu, kulingana na kipimo cha RGB na maadili meupe, kifaa kwanza huhesabu thamani inayofanana ya hue, kisha inakadiria rangi kulingana na thamani hii na huwasiliana nao kwa maneno kupitia mfumo wa sauti wa AIY, e. g. kama "nyekundu nyekundu", lakini pia inatoa thamani ya hue. RGB, hue na mwangaza (wepesi, kuwa sawa) maadili pia yamechapishwa kwa skrini.

Ili kurahisisha mchakato wa ufafanuzi wa rangi, maadili ya RGB hubadilishwa kuwa muundo wa HSV (hue, kueneza, thamani). Hii inaruhusu kufafanua rangi kwa upeo fulani wa pembe (i.e. kipande cha pai), na uchague rangi kulingana na thamani ya hue iliyohesabiwa.

Unahitaji kurekebisha kifaa chako dhidi ya kumbukumbu nyeupe na nyeusi. Pima tu vipande vyeupe na vyeusi zaidi vya karatasi ulivyo navyo, chukua kipimo kila moja, na uweke maadili haya kama viwango vya juu na vya chini kwenye nambari. Maadili bora tu ya kumbukumbu yatatoa utambuzi mzuri wa rangi.

Shida moja ya msingi ni kutafakari. Ikiwa una kitu kilicho na glossy au uso uliosuguliwa kitaonyesha mwangaza mwingi uliotolewa na LED, ikionekana kuwa nyepesi sana kuliko ilivyo kweli. Unaweza kutumia karatasi ya utando kutawanya taa, lakini unaweza kuhitaji kutekeleza sababu ya kusahihisha.

Katika kesi ya vitu vyenye kupita kiasi, inaweza kuwa rahisi kuziweka kwenye karatasi nyeupe, vinginevyo kiwango cha taa iliyoakisiwa kitakuwa cha ndogo na kitu kinachoripotiwa kama "nyeusi".

Ikiwa unataka kupima rangi ya vitu vinavyotoa nuru, unapaswa kuzima LED wakati wa kuzuka kwa kuunganisha bandari ya "LED" kwenye kuzuka kwa "Ground". Sasa weka maadili ya kuhalalisha ipasavyo.

Shida nyingine ya jumla ni kuangaza kwa kitu. Taa nyeupe ya joto kwenye kuzuka hutoa wigo usio wa kuendelea wa nuru. Kwa hivyo rangi zingine zinaweza kuwa juu- au zinawakilishwa katika wigo wa RGB. Kwa habari zaidi juu ya mada hii, tafadhali angalia maagizo yangu ya zamani kwenye colorimeters / photometers na spectrometers:

www.instructables.com/id/An-Inexpensive-Ph…

www.instructables.com/id/A-Mimimal-Six-Col…

Hatua ya 3: Kanuni

Kanuni
Kanuni

Nambari ni mchanganyiko wa muundo wa nambari kutoka kwa mwongozo wa sauti wa AIY, na nambari ya sensa ya TCS34725 na Bradspi.

Nilijaribu pia kutumia nambari ya TCS34725 ya chatu kutoka Adafruit, lakini nilikuwa na shida kuendesha hii na nambari zingine ambazo zinatumia maktaba za nje pamoja na AIY HAT. Msaada wowote karibu.

Kama ilivyoelezwa hapo awali, ufafanuzi wa rangi unategemea mabadiliko kwenye RGB kwa maadili ya hue. Lazima uweke mipangilio ya kuhalalisha kulingana na vipimo vya majaribio ya vifaa vya heshima nyeupe na nyeusi. Jaza maadili kamili kwa R, G na B min au max ipasavyo.

Hati hiyo hutumia toleo jipya la amri ya "sema" inayoruhusu kudhibiti sauti na lami. Kwa hali hiyo, unaweza kulazimika kusasisha faili za audio.py na tty au ufute "sehemu za sauti na lami" kutoka kwa hati.

#! / usr / bin / env python3 # Hati hii ni mabadiliko ya maandishi ya servo_demo.py kwa sauti ya AIY HAT, # iliyoboreshwa kwa utambuzi wa rangi ikitoa uingizaji wa Afafruit TCS34725 aiy.audio kuagiza aiy.cloudspeech kuagiza aiy.voicehat # kutoka gpiozero kuagiza LED # inaweza kusaidia kwa LED ya nje kwenye servo-bandari # kutoka gpiozero Button Button # inaweza kusaidia kwa kitufe cha nje kwenye wakati wa kuagiza servo-port kuagiza smbus bus = smbus. SMBus (1) kuagiza colorys def hue2color (hue): # ufafanuzi wa rangi kulingana na maadili ya hue yaliyohesabiwa ikiwa ((hue> 12) na (hue 25) na (hue 69) na (hue 164) na (hue 194) na (hue 269) na (hue 319) au (hue <20)): color = "red" rangi ya kurudi nyingine: print ("something went wrong")

def tcs34725 (): # kipimo na ufafanuzi.

# Upimaji unafanywa na hati ya Bradspi TCS34725: # https://bradsrpi.blogspot.com/2013/05/tcs34725-rg ……. bus.write_byte (0x29, 0x80 | 0x12) ver = bus.read_byte (0x29) # toleo # inapaswa kuwa 0x44 ikiwa ver == 0x44: chapa ("Kifaa kimepatikana / n") basi.write_byte (0x29, 0x80 | 0x00) # 0x00 = WEKA rejista basi.write_byte (0x29, 0x01 | 0x02) # 0x01 = Umewasha umeme, Sensorer 0x02 RGB imewezeshwa bus.write_byte (0x29, 0x80 | 0x14) # Matokeo ya kusoma yanaanza kujiandikisha 14, LSB kisha data ya MSB = bus.read_i2c_block_data (0x29, 0) clear = clear = data [1] << 8 | data [0] nyekundu = data [3] << 8 | data [2] kijani = data [5] << 8 | data [4] bluu = data [7] << 8 | data [6] crgb = "Hesabu kamili: C:% s, R:% s, G:% s, B:% s / n"% (wazi, nyekundu, kijani kibichi, bluu) muda wa kuchapisha (crgb). 1) kingine: chapisha ("Kifaa hakijapatikana / n") # urekebishaji na mabadiliko ya kipimo cha RGBW col col dhidi ya karatasi nyeupe. Angalia na urekebishe mara kwa mara. max_bright = 5750 max_red = 1930 max_green = 2095 max_blue = 1980 # Asili / Viwango vya chini vya viwango vya kuhalalisha, lazima ifafanuliwe kwa majaribio # k. dhidi ya karatasi nyeusi. Angalia na urekebishe mara kwa mara. min_bright = 750 min_red = 340 min_green = 245 min_blue = 225 # maadili ya kawaida, kati ya 0 na 1 rel_bright = ((wazi - min_bright) / (max_bright - min_bright)) rel_red = ((nyekundu - min_red) / (max_red - min_red)) rel_green = ((kijani kibichi) ikiwa rel_bright> 0.9: col = "nyeupe" # ikiwa ni mkali -> nyeupe elif rel_bright mweusi mwingine: col = hue2color (hue) # uteuzi wa rangi na maadili ya hue # print ("maadili ya jamaa mkali, nyekundu, kijani, bluu:") # chapa (rel_bright, rel_red, rel_green, rel_blue) # chapa ("HSV values (hue, saturation, value):", hsv_col) # chapa ("hue in °", hue) kurudi [col, rel_bright, rel_red, rel_green, rel_blue, hue]

def kuu ():

kitufe = kifungo kingine cha nje, kilichounganishwa na servo3 / GPIO 05

aiy.audio.say ("Hello!",, volume = 50, lami = 100) # sauti na lami zinahitaji marekebisho ya Novemba 2017 ya audio.py na _tty.py dereva!

aiy.audio.say ("Kuanza, songa sensorer juu ya kitu. Kisha bonyeza kitufe cha samawati",, volume = 50, lami = 100) chapisha ("Ili kuwezesha kipimo cha mahali pa sensorer juu ya kitu, kisha bonyeza kitufe cha bluu ") wakati Kweli: led.set_state (aiy.voicehat. LED. ON) button.wait_for_press () # kwa kitufe cha nje, badilisha kifungo na buttoni led.set_state (aiy.voicehat. LED. BLINK) aiy.audio.say (" Kupima ",, ujazo = 50, lami = 100) matokeo = tcs34725 () # huleta kipimo na ufafanuzi col = matokeo [0] # rangi, kama hue ya maandishi = str (int (matokeo [5])) # hue in °, kama maandishi r_red = str (int (matokeo [2] * 255)) Thamani ya # R, kama maandishi r_green = str (int (matokeo [3] * 255)) Thamani ya # G, kama maandishi r_blue = str (int (matokeo [4] * 255)) Thamani ya # B, kama maandishi r_bright = str (int (matokeo [1] * 100)) Thamani ya # W, kama maandishi yaliyoongozwa.set_state (aiy.voicehat. LED. OFF) ikiwa col == "nyeupe "au col ==" nyeusi ": mkali =" "elif (matokeo [1]> 0.69): # mwangaza / wepesi wa rangi mkali =" mwanga "elif (matokeo [1] <0.25): bright =" dark "else: bright = "kati" # maongezi t yeye matokeo color_text = ("Rangi ya kitu ni" + mkali + "" + col) chapisha (color_text) aiy.audio.say (color_text,, volume = 75, pitch = 100) hue_text = ("Thamani ya hue ni "+ hue +" digrii ") chapa (hue_text) aiy.audio.say (hue_text,, volume = 75, lami = 100)

ikiwa _name_ == '_main_': kuu ()

Hatua ya 4: Viungo na Maneno mengine

Karatasi ya data ya sensa ya TCS34725 inaweza kupatikana hapa:

Nambari ya kusoma sensor ambayo nimetumia ilielezewa hapa:

Unaweza kupata maelezo ya ziada juu ya vipimo vya rangi na hii na sensa nyingine katika maelekezo yangu ya awali:

www.instructables.com/id/An-Inexpensive-Ph…

www.instructables.com/id/A-Mimimal-Six-Col…

Ilipendekeza: