Orodha ya maudhui:
Video: Tengeneza Sensorer yoyote kutoka kwa FPGA: Hatua 4
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Watengenezaji wengi walijaribu kujenga angalau mara moja maishani mwao kipima joto, labda ile waliyonayo nyumbani haina akili ya kutosha, au labda wanafikiria kuwa wanaweza kujenga kiota kinachofuata. Walakini, wakati fulani walikuwa na mdhibiti mdogo na programu yao ya hali ya juu iliyounganishwa na sensorer ya joto (na labda sensorer zingine: shinikizo, taa). Mpaka sasa kila kitu ni kamili, programu inaendesha na sensorer inahisi. Wacha tuijaribu!
Hmmmm… labda anapaswa kuwasha moto kitambuzi kwa kutumia kavu ya nywele na kuipoa kwa kutumia barafu, inafanya kazi kwa muda. Lakini haionekani kuwa ya kitaalam, sensorer hubadilisha maadili haraka sana ukiwasha moto, haina joto zaidi ya digrii kadhaa. Mradi huo ni kraschlandning! Lakini algorithm ni mpya, inazingatia mambo mengi, ni aibu gani kwamba alikwama kwenye jambo hili dogo la kijinga.
Suluhisho langu ni hili: fanya FPGA iwe kama sensa na maadili yaliyotiririka kutoka kwa PC (au kuhifadhiwa kwenye kumbukumbu, au kuunda matangazo ndani ya FPGA). Kwa hivyo kwa MCU yako ya thamani FPGA inaonekana kama sensa, lakini sio sensorer yoyote: ni sensor ipi unayopenda. Labda unaamua kuwa unahitaji azimio zaidi au wakati wa majibu haraka kuliko inavyotarajiwa, lazima ubadilishe sensa. Agiza mkondoni, itafika katika siku kadhaa, ya miezi michache, ni nani anayejua. Jibu PCB yako au agiza moduli na sensa mpya. Au … mibofyo michache na FPGA imesanidiwa kama sensorer yako mpya na inaweza kuiga usanidi halisi wa ndani.
Wakati wa kuandika hii, FPGA inaweza kufanya kama LM75 na data ya joto iliyohifadhiwa katika BRAM (kwenye FPGA).
Hatua ya 1: MCU
Chaguo langu la MCU ni LPC4337 kwenye LPCXpresso. Juu yake nina ngao (LPC General Purpose Shield) iliyo na onyesho na sensa halisi ya LM75. LPC4337 ni ARM Cortex M4 inayoendesha 200MHz na Cortex M0 ndogo (haitumiki hapa). Sensor halisi imeunganishwa na pembeni ya I2C1 na ile yetu halisi itaunganishwa na I2C0. Chanzo kinapatikana kwenye GitHub yangu.
Jinsi ya kuijenga? Pakua LPCXpresso IDE pamoja na maktaba ya LPCOpen. Ingiza maktaba hiyo kwenye IDE na pia ufungue mradi kutoka GitHub. Kila kitu kinapaswa kusanidiwa na unaweza kubofya "Suluhisha" kwenye kona ya chini kushoto.
Mradi mzima unategemea mfano mmoja wa NXP (kuonyesha kuwa mradi wangu unaiga sensa halisi na hauitaji nambari maalum kwa upande wa MCU). Katika faili kuu (iitwayo iox_sensor.cpp) iko nambari hii:
#fafanua SENSORS_ON_SHIELD
# ikiwa imefafanuliwa (SENSORS_ON_SHIELD) #fasili SHIELD_I2C I2C1 #elif defined (SENSORS_ON_FPGA) #fasili SHIELD_I2C I2C0 #endif
Kwa kubadilisha SENSOR_ON_SHIELD na SENSOR_OR_FPGA mtumiaji anaweza kubadili wakati wa kukusanya saa ipi ya kuzungumza, ya kweli au ya kweli, kama ilivyo kwenye pini tofauti za I2C.
Hatua ya 2: FPGA
Bodi yangu ya kuchagua ya FPGA ni Artix 7 iliyotengenezwa na Digilent, ikiwa na Xilinx Arty 7. Viunganishi viwili vya PMod hutumiwa, moja kwa utatuzi na moja kwa malipo halisi, unganisho na bodi ya MCU.
Tena, nambari ya chanzo ya FPGA inapatikana kwenye folda yangu ya GitHub (fpgaSide).
Jinsi ya kuijenga? Pakua, nunua au ufungue Xilinx Vivado IDE. Ingiza faili za mradi kutoka GitHub. Moja ya faili (content.coe) ni data ya joto katika fomati mbichi ambayo itatiririka kwa sensorer bandia. Pia kuna faili ya Excel iliyo na jina lilelile ambayo husaidia kwa kubadilisha data ya joto inayosomeka ya binadamu kuwa data ya LM75 mbichi. Ninapanga kubadilisha hii kuwa mchakato wa kiotomatiki na kipande cha programu iliyoandikwa katika Java lakini hadi wakati huu suluhisho hili linafanya kazi. Usanisi na Utekelezaji lazima uchukue muda, zingatia hii.
Hatua ya 3: Inafanyaje Kazi?
Kama nilivyosema, kwa MCU, FPGA inaonekana kama sensa, haswa sensor ya I2C. Pato la pembeni ya I2C imeunganishwa na pembejeo ya FPGA. Ndani ya FPGA kuna vitu kuu 3: - Mdhibiti wa I2C- Kifaa cha I2C- Takwimu Mdhibiti wa I2C anapokea data ya I2C kutoka kwa pini za FPGA na kuzipeleka kwa FPGA iliyobaki na hufanya vivyo hivyo kwa mpangilio wa nyuma. Inadumisha mashine ya hali ya ndani ya Itifaki ya I2C (kwa njia, hapa kuna nyaraka zake). Je! Sehemu hii inatuma nini kwa Kifaa cha I2C? Baiti iliyopokewa sasa, nafasi ya baiti hiyo katika mawasiliano ya sasa na ikiwa MCU inamwandikia au inasoma kutoka FPGA. Kifaa cha I2C kinapokea kaa zilizotumwa na husasisha muundo wa ndani wa sensa. Inaweza tu kusasisha pointer ya kujiandikisha au kuomba data mpya kutoka kwa chanzo cha data. Sehemu ya Takwimu inaangazia nukta mpya za data. Hivi sasa ni kumbukumbu ya ROM tu ambayo anwani imeongezwa (takriban) mara mbili kwa sekunde.
Je! Lengo langu la mwisho ni nini? Inaonyeshwa kwenye picha ya pili. Hiyo ni: fanya iwezekane kwa vifaa zaidi vya I2C (sensorer na zingine) kuiga wakati huo huo ndani ya FPGA. Takwimu zilizo nyuma ya sensorer ambazo zinaweza kuhifadhiwa kwenye FPGA na kutiririka kutoka kwa PC kupitia USB au Ethernet. Kusaidia sensorer za hali ya juu zaidi na vifaa vingine vya I2C (kumbukumbu, madereva ya LED nk).
Hatua ya 4: Kuiweka Pamoja
Sasa ni wakati wa kuunganisha kila kitu. Kinadharia, ni rahisi: bodi ya mcu ina kiunganishi cha PMod (I2C0 & SSP0 (inaweza kufanya kazi kama SPI)). Bodi ya Artix ina viungio 4 vya PMod ambavyo vinaweza kutumika hata hivyo unataka. Ninachagua kiunganishi D kuzungumza na MCU na kontakt B kuungana na Logic Analyzer yangu.
Onyo
Huwezi kuunganisha bodi mbili pamoja kama hiyo. Kwa nini? PMod ilijengwa ili kupunguza uunganisho wa bodi ya Mwalimu / mwenyeji (ambayo inatoa nguvu) kwa bodi ya Mtumwa / Sensor (ambayo inapokea nguvu). Lakini katika mradi huu bodi zote mbili zinatoa nguvu na ikiwa utaunganisha pato la 3.3V kutoka bodi moja hadi pato la 3.3V la bodi nyingine mambo mabaya yanaweza kutokea. Lakini hawawezi na unaweza kubadilisha tu vigezo vya reli za umeme za FPGA (zimeundwa kwa uangalifu sana). Kwa hivyo usichukue hatari hii na kusogeza kontakt pini moja kushoto (na pia tembeza bodi ya FPGA) kama inavyoonekana kwenye picha zilizo hapo juu. Hapa kuna maelezo ya PMod, wewe huisoma, nilichofanya kwa maneno mafupi ni kutounganisha VCC za bodi mbili.
Ilipendekeza:
Vuta na Onyesha Takwimu kutoka kwa Wavuti yoyote Juu ya Wifi (Kiashiria cha Taa za Kaskazini) Na NodeMcu: Hatua 6
Vuta na Onyesha Takwimu kutoka kwa Wavuti yoyote Juu ya Wifi (Kiashiria cha Taa za Kaskazini) Na NodeMcu: Nia yangu: Nimeona Kura nyingi za mafundisho juu ya kuanzisha / kutumia NodeMCU (iliyojengwa kwenye moduli ya ESP8266) kwa kutengeneza miradi ya IoT (mtandao wa vitu) . Walakini, ni wachache sana wa mafunzo haya walikuwa na maelezo / msimbo / michoro yote ya mtu mdogo sana
12V Kutoka Kutoka kwa Bodi yoyote ya Powerbank inayolingana: Hatua 6
12V Kutoka Kutoka kwa Powerbank Yoyote Inayolingana ya Haraka: Matumizi ya benki za umeme za haraka sio tu kwa kuchaji simu, lakini pia hutumika kama usambazaji wa umeme wa vifaa 12V kama modem nyumbani. Maelezo zaidi yanaweza kupatikana katika blogi hii: http: //blog.deconinck.info/post/2017/08/09/Turnin
Tengeneza Kamera inayodhibitiwa kwa mbali kutoka kwa simu ya rununu !: Hatua 5 (na Picha)
Tengeneza Kamera inayodhibitiwa kwa mbali kutoka kwa simu ya rununu!: Unataka kujua paka yako inafanya nini ukiwa kazini? Tuma ujumbe mfupi kwa simu yako mpya ya ufuatiliaji na upokee picha na video sekunde baadaye. Inaonekana kama ndoto? Sivyo tena! Video hii inaelezea jinsi inavyofanya kazi:
Fanya Kusimama kwa Mlima wa DSLR kwa chini ya $ 6 Kutumia Mabomba ya PVC (Monopod / Tripod kwa Kamera yoyote): Hatua 6
Fanya Mlima wa DSLR Usimame chini ya $ 6 Kutumia Mabomba ya PVC (Monopod / Tripod kwa Kamera Yoyote): Ndio …. Unaweza kutengeneza yako na bomba tu la PVC na T's ni nyepesi … Ni sawa kabisa … Ni Imara imara … Ni ya kirafiki sana … ni mimi Sooraj Bagal na nitashiriki uzoefu wangu juu ya mlima huu wa kamera niliyounda
Tengeneza Chaja ya Simu ya USB kwa Karibu Simu yoyote ya Kiini !: Hatua 4
Tengeneza Chaja ya Simu ya USB kwa Karibu Simu yoyote ya Kiini !: Chaja yangu imeungua, kwa hivyo nilifikiri, "Kwanini usijenge yako mwenyewe?"