Talaan ng mga Nilalaman:

USB Indoor / Outdoor Thermometer (o, 'Aking Unang USB Device'): 4 na Hakbang (na may Mga Larawan)
USB Indoor / Outdoor Thermometer (o, 'Aking Unang USB Device'): 4 na Hakbang (na may Mga Larawan)

Video: USB Indoor / Outdoor Thermometer (o, 'Aking Unang USB Device'): 4 na Hakbang (na may Mga Larawan)

Video: USB Indoor / Outdoor Thermometer (o, 'Aking Unang USB Device'): 4 na Hakbang (na may Mga Larawan)
Video: Tapo Wire-Free MagCam Review: Everything You Need to Know 2024, Nobyembre
Anonim
USB Indoor / Outdoor Thermometer (o, 'Aking Unang USB Device')
USB Indoor / Outdoor Thermometer (o, 'Aking Unang USB Device')

Ito ay isang simpleng disenyo na nagpapakita ng USB peripheral sa PIC 18Fs. Mayroong isang pangkat ng mga halimbawa para sa 18F4550 40 pin chips sa online, ipinapakita ng disenyo na ito ang mas maliit na 18F2550 28 pin na bersyon. Gumagamit ang PCB ng mga bahagi sa mount mount, ngunit ang lahat ng mga bahagi ay magagamit sa pamamagitan ng mga bersyon ng butas. Gumagamit ako ng mga pang-mount na bahagi dahil mas mabilis itong gawin ang board nang walang mga butas ng pagbabarena. Ang resulta ay isang maliit na USB peripheral na sumusukat sa panloob / panlabas na temperatura. Magagamit ang data sa PC sa pamamagitan ng isang virtual serial port. Ginamit ang halimbawa ng mga sensor ng temperatura sa halimbawa, ngunit maaaring maidagdag ang iba pang mga analog sensor. SPS Makita ang isang live na grap ng data mula sa aking logger dito: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = grapiko

Hakbang 1: Pangkalahatang-ideya ng Disenyo

Pangkalahatang-ideya ng Disenyo
Pangkalahatang-ideya ng Disenyo
Pangkalahatang-ideya ng Disenyo
Pangkalahatang-ideya ng Disenyo
Pangkalahatang-ideya ng Disenyo
Pangkalahatang-ideya ng Disenyo

Mga kinakailangang bahagi ng PIC

Ang USB peripheral na ito ay batay sa 28 pin PIC 18F2550. Ang chip na ito ay mayroong lahat ng kailangan para sa isang buong interface ng USB na bilis. Ang isang 0.1uf capacitor sa pagitan ng lakas at ground decouples ang PIC mula sa power supply. Isang 20MHz na kristal (ginamit upang makabuo ng isang 48MHz panloob na orasan) at dalawang 27pf capacitor. Isang risistor na 10K mula sa lakas papunta sa MCLR pin. Nagdagdag ako ng isang katumbas na diode na 1n4148 sa pagitan ng risistor at lakas upang ang 13 + volts na inilagay sa MCLR sa panahon ng pagprograma ay hindi makapinsala sa iba pang mga bahagi sa circuit board. Ang isang header ng ICSP (5 mga pin) ay ginagamit upang mai-program at i-debug ang aparato. Mga kinakailangang bagay sa USB Isang socket ng istilong USB na babaeng 'B'. Kinakailangan ang 220nf-440nf ng capacitance para sa panloob na USB voltage regulator. Gumagamit ako ng dalawang 0.1uf capacitor (katulad ng ginamit para sa decoupling) nang walang problema. Ang isang LED na may kasalukuyang 330ohm na naglilimita ng risistor ay ginagamit upang ipakita ang katayuan ng koneksyon ng USB. Kinakailangan na mga bagay ng sensor Ginamit ko ang microchip TC1047A temperatura sensor bilang panloob na sensor ng temperatura. Ito ay pisikal na hinihinang sa board - sanhi ito upang magpatakbo ng ilang degree na mas mainit kaysa sa temperatura ng kuwarto. Ginagamit ang isang header upang ikonekta ang isang panlabas na probe ng temperatura (bersyon ng TO-92 ng TC1047a). Ang isang karagdagang 0.1uf capacitor ay tumutulong sa pag-decouple ng isang mahabang wire run mula sa natitirang board. Ang mga antas ng boltahe ng USB ay hindi sapat na pare-pareho upang tumpak na masukat at makalkula ang temperatura mula sa mga analog sensor. Ginagamit ang isang panlabas na sanggunian ng boltahe (MCP1525, 2.5volt). Ang sanggunian ng boltahe ay nangangailangan ng isang kapasitor sa output ng 1uf hanggang 10uf. Kung wala ang capacitor na ito ay hindi gagana ang sanggunian ng boltahe.

Hakbang 2: Firmware

Gumagamit ang firmware ng klase ng CDC USB upang tularan ang isang serial port. Lalabas ang aparato bilang isang virtual com port sa isang PC. Ang firmware ay pinaghiwalay sa tatlong mga seksyon: 1. Ang USB driver ay nangangalaga sa pag-enumerate ng aparato sa isang PC at pagtulad sa isang COM port. 2. Ang isang gawain na kahalili ay halili na binabasa ang mga halaga ng temperatura at binago ang mga ito sa isang nababasa na format. Ang paggawa ng pareho sa mga pagpapatakbo na ito nang sabay-sabay ay naging sanhi ng maluwag na koneksyon ng USB aparato sa PC (oras na hogging). Ang pag-convert ng mga halaga ng lumulutang na punto sa isang string sa ikot ng serbisyo kasunod ng conversion ay na-clear ang problema sa pagkakakonekta. * 3. Sa wakas, isang pangunahing gawain ang tumatanggap ng mga byte na ipinadala mula sa PC at ibabalik ang mga hiniling na sukat. Ang maramihang mga hakbang ay pinaghihiwalay ng isang kuwit, ang mga linya ay winakasan ng isang null character (hex 0x00) Tumatanggap ang demonstration firmware ng mga sumusunod na utos: Hex halaga Returns0x00 Sa loob ng temperatura (on-board sensor) 0x01 Panloob na temperatura (panlabas na header) 0x02 Parehong temperatura (kuwit pinaghiwalay) Ang temperatura ay kinakalkula batay sa 2.5 volt na sanggunian at ang Microchip TC1047A offset at slope. Ang iba pang mga sensor ng temperatura ay maaaring may iba't ibang mga katangian. Ang TC1047A datasheet ay magagamit dito: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdf Ang firmware ay nakasulat sa MPLAB kasama ang demonstrasyong tagatala ng PIC C18. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011Ang aktwal na USB firmware ay ibinibigay ng Microchip. Magagamit ang orihinal na kapaligiran dito: https://www.microchip.com/staler/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631Upang i-edit ang firmware: kunin ang buong istraktura ng direktoryo ng mapagkukunan sa iyong direktoryo ng ugat (c: / MCHPFSUSB). Maaari mong mai-load ang workspace file sa MPLAB. * Ang float to string routine ay isang resource hog. Upang maiikot ang problema sa pagkakakonekta ang gawain sa serbisyo ng USB ay tinatawag sa iba't ibang mga punto sa float2string na gawain. Ito ay pinakamahusay na maayos sa pamamagitan ng paglilingkod sa USB peripheral sa isang nakakagambala. Ginamit ko ang pag-hack upang ang firmware ay manatili nang malapit sa bersyon ng sanggunian hangga't maaari.

Hakbang 3: Pagsubok sa Device

Pagsubok sa Device
Pagsubok sa Device
Pagsubok sa Device
Pagsubok sa Device
Pagsubok sa Device
Pagsubok sa Device

Ang mga tagubilin ay para sa mga bintana, ngunit ang aparato ay maaaring konektado sa anumang may mga driver ng CDC serial port na tularan.

Program ang aparato gamit ang firmware. Ang lahat ng mga config bit ay dapat itakda nang tama sa firmware. I-plug ang aparato sa isang USB port. Madidiskubre ito ng Windows at uudyok ka na pumili ng isang driver. Siguraduhin na i-click ang 'BROWSE FOR CUSTOM DRIVER'. Mag-navigate sa lokasyon ng.inf file na kasama ang archive ng proyekto (driver-win2k_winxp). Gagamitin ng Windows ang file na ito upang mai-install ang aparato. * Isang tala sa CDC driver - ang CDC serial port emulate driver ay kasama sa Windows. Ang.inf file (na ibinigay ng Microchip) ay nagsasabi lamang sa Windows na ikonekta ang mga driver na ito sa aparato. Upang malaman kung anong port ng COM ang naatasan sa aparato gawin ang sumusunod: Pumunta sa control panel (start-> setting-> control panel) I-double click ang 'system' I-click ang tab na 'hardware'. I-click ang 'manager ng aparato' I-click ang '+' sa tabi ng mga port Ipinapakita ang isang listahan ng mga COM port sa system. Nakita ko ang lalabas na aparato bilang COM 3 at 4, ngunit mag-iiba ito ayon sa system. Kung hindi ito halata kung aling port ang bago, subukan ito: Alisin ang plug mula sa USB port. Ang isa sa mga port ay mawawala. Ito ang COM port # ng aparato. I-plug muli ang aparato, lilitaw muli ang port. Ang maliit na aplikasyon ng VB (kasama ang mapagkukunan) ay maaaring magamit upang subukan ang aparato. Ipasok ang utos na ipadala, i-click ang 'Start'. Ipapakita ang tugon sa window.

Hakbang 4: Ano Pa ang Magagawa Nito?

Ano pa ang Magagawa Nito?
Ano pa ang Magagawa Nito?

Ang demonstration board na ito ay isang mahusay na panimulang lugar para sa isang maliit na istasyon ng panahon sa bahay: Magdagdag ng isang sensor ng kahalumigmigan HIH3160, o palitan ang sensor ng temperatura ng analog na may Sensiron HT74 mataas na katumpakan na temperatura ng serial at sensor ng kahalumigmigan. Magdagdag ng isang Freescale MPX (a) 4115 pressure sensor sa sukatin ang presyon ng barometric. Nais mong sindikahin ang data na ito sa web? Isama ito sa iyong sariling website, tingnan ito sa google earth, o kumuha ng mga update sa iyong RSS reed? Tingnan ang itinuturo na ito sa pagsasama ng aparatong ito sa backnd web ng syndicIT.com:

Inirerekumendang: