Orodha ya maudhui:

Onyesho la LED la pikseli 64 RGB - Kielelezo kingine cha Arduino: Hatua 12 (na Picha)
Onyesho la LED la pikseli 64 RGB - Kielelezo kingine cha Arduino: Hatua 12 (na Picha)

Video: Onyesho la LED la pikseli 64 RGB - Kielelezo kingine cha Arduino: Hatua 12 (na Picha)

Video: Onyesho la LED la pikseli 64 RGB - Kielelezo kingine cha Arduino: Hatua 12 (na Picha)
Video: Веб-программирование – информатика для руководителей бизнеса 2016 2024, Novemba
Anonim
Onyesho la LED la pikseli 64 RGB - Clone nyingine ya Arduino
Onyesho la LED la pikseli 64 RGB - Clone nyingine ya Arduino
Onyesho la LED la pikseli 64 RGB - Clone nyingine ya Arduino
Onyesho la LED la pikseli 64 RGB - Clone nyingine ya Arduino
Onyesho la LED la pikseli 64 RGB - Clone nyingine ya Arduino
Onyesho la LED la pikseli 64 RGB - Clone nyingine ya Arduino

Onyesho hili linategemea Matrix ya LED ya 8x8 RGB. Kwa madhumuni ya upimaji iliunganishwa na bodi ya kawaida ya Arduino (Diecimila) ikitumia rejista 4 za mabadiliko. Baada ya kuifanya ifanye kazi niliiruhusu kwenye PCB yenye vitambaa. Rejista za kuhama zina upana wa 8-bit na zinaingiliana kwa urahisi na itifaki ya SPI. Moduli ya upana wa kunde hutumiwa kuchanganya rangi, zaidi baadaye. Sehemu ya RAM ya MCU hutumiwa kama fremu ya kushikilia picha. Video ya RAM imechanganuliwa na utaratibu wa kukatiza kwa nyuma, kwa hivyo mtumiaji anaweza kufanya vitu vingine muhimu kama kuzungumza na PC, soma vifungo na potentiometers. Habari zaidi kuhusu "Arduino": www.arduino.cc

Hatua ya 1: Pulse Modulation upana kwa Kuchanganya Rangi

Pulse Modulation Upana kwa Kuchanganya Rangi
Pulse Modulation Upana kwa Kuchanganya Rangi

Pulse upana modu - NINI? Pulse upana modulering kimsingi ni kugeuza nguvu kulishwa kwa kifaa umeme na OFF haraka sana. Nguvu inayoweza kutumika kutoka kwa wastani wa hesabu wa kazi ya wimbi la mraba iliyochukuliwa kwa muda wa kipindi kimoja. Kwa muda mrefu kazi inakaa katika nafasi ya ON, unapata nguvu zaidi. PWM ina athari sawa kwenye mwangaza wa LED kama taa kwenye taa za AC. Kazi iliyo mbele ni kudhibiti mwangaza mmoja wa 64 RGB LEDS (= 192 LEDs moja!) Kwa njia rahisi na rahisi, kwa hivyo mtu anaweza kupata nzima wigo wa rangi. Ikiwezekana haipaswi kuwa na kuzunguka au athari zingine za kusumbua. Mtazamo usiokuwa na mwangaza wa mwangaza ulioonyeshwa na jicho la mwanadamu hautazingatiwa hapa (kwa mfano tofauti kati ya mwangaza wa 10% na 20% inaonekana "kubwa" kuliko kati ya 90% na 100%). Picha (1) inaonyesha kanuni ya kazi ya algorithm ya PWM. Sema nambari imepewa thamani ya 7 kwa mwangaza wa LED (0, 0). Kwa kuongezea inajua kuna kiwango cha juu cha hatua N katika mwangaza. Nambari inaendesha vitanzi vya N kwa viwango vyote vya mwangaza na vitanzi vyote muhimu kutumikia kila LED moja katika safu zote. Ikiwa kaunta ya kitanzi x kwenye kitanzi cha mwangaza ni ndogo kuliko 7, LED imewashwa. Ikiwa ni kubwa kuliko 7, LED imezimwa. Kufanya hivi haraka sana kwa LED zote, viwango vya mwangaza na rangi ya msingi (RGB), kila LED inaweza kubadilishwa kibinafsi kuonyesha rangi inayotakiwa. Vipimo na oscilloscope vinaonyesha kuwa nambari ya kuonyesha upya inachukua muda wa CPU ya 50%. Zilizobaki zinaweza kutumiwa kufanya mawasiliano ya serial na PC, kusoma vifungo, kuzungumza na msomaji wa RFID, tuma mimi2C data kwa moduli zingine…

Hatua ya 2: Kuzungumza na Rejista za Shift na LEDs

Kuzungumza na Rejista za Shift na LEDs
Kuzungumza na Rejista za Shift na LEDs
Kuzungumza na Rejista za Shift na LEDs
Kuzungumza na Rejista za Shift na LEDs

Rejista ya mabadiliko ni kifaa kinachoruhusu kupakia data mfululizo na pato linalofanana. Operesheni ya kinyume pia inawezekana na chip inayofaa. Kuna mafunzo mazuri kwenye rejista za mabadiliko kwenye wavuti ya arduino. LED zinaendeshwa na rejista za mabadiliko ya biti 8-aina ya 74HC595. Kila bandari inaweza kutoa au kuzama karibu 25mA ya sasa. Jumla ya sasa kwa chip iliyozama au iliyotengwa haipaswi kuzidi 70mA. Chips hizi ni za bei rahisi sana, kwa hivyo usilipe zaidi ya senti 40 kwa kipande. Kwa kuwa LED zina sifa ya sasa ya upepo / voltage, kuna haja ya kuwekewa vipinga vya sasa. Kutumia sheria ya Ohm: R = (V - Vf) / IR = kizuizi kinachopinga, V = 5V, Vf = Voltage ya mbele ya LED, I = taa za sasa zinazotakiwa kuwa na voltage ya mbele ya karibu 1.8V, bluu na kijani anuwai kutoka 2.5V hadi 3.5V. Tumia multimeter rahisi kuamua hiyo. Kwa uzazi mzuri wa rangi mtu anapaswa kuzingatia vitu vichache: unyeti wa macho ya jicho la mwanadamu (nyekundu / bluu: mbaya, kijani: nzuri), ufanisi wa LED kwa urefu wa urefu na wa sasa. Katika mazoezi, moja huchukua potentiometers 3 na kuzirekebisha mpaka LED ionyeshe nuru nyeupe nyeupe. Kwa kweli sasa kiwango cha juu cha LED haipaswi kuzidi. Kilicho muhimu pia hapa ni kwamba rejista ya kuhama inayoendesha safu lazima itoe sasa kwa 3x8 LEDs, kwa hivyo bora usisukuma sasa juu sana. Nilifanikiwa kwa kuzuia vipinga vya 270Ohm kwa LED zote, lakini hiyo inategemea muundo wa tumbo la LED bila shaka. SPI = Interface ya pembeni ya pembeni (Picha (1)) Iliyopingwa na bandari za serial kwenye PC (asynchronous, hakuna ishara ya saa), SPI inahitaji laini ya saa (SRCLK). Halafu kuna laini ya ishara inayoambia kifaa wakati data ni halali (chip chagua / latch / RCLK). Mwishowe kuna mistari miwili ya data, moja inaitwa MOSI (master out slave in), nyingine inaitwa MISO (master in slave out). SPI hutumiwa kusanikisha nyaya zilizounganishwa, kama mimi2C. Mradi huu unahitaji MOSI, SRCLK na RCLK. Kwa kuongeza laini ya kuwezesha (G) hutumiwa pia. Mzunguko wa SPI unaanza kwa kuvuta laini ya RCLK hadi LOW (Picha (2)). MCU hutuma data yake kwenye laini ya MOSI. Hali yake ya kimantiki imechukuliwa na rejista ya mabadiliko kwenye ukingo unaoinuka wa laini ya SRCLK. Mzunguko umekomeshwa kwa kuvuta laini ya RCLK kurudi juu. Sasa data inapatikana katika matokeo.

Hatua ya 3: Mpangilio

Mpangilio
Mpangilio
Mpangilio
Mpangilio

Picha (1) inaonyesha jinsi rejista za kuhama zina waya. Zimefungwa minyororo, kwa hivyo data inaweza kuhamishiwa kwenye mnyororo huu na pia kupitia hiyo. Kwa hivyo kuongeza rejista zaidi za kuhama ni rahisi.

Picha (2) inaonyesha skimu zingine na MCU, viunganishi, quartz… Faili ya PDF iliyoambatanishwa ina kazi zote, bora kwa uchapishaji.

Hatua ya 4: Msimbo wa Chanzo wa C ++

Nambari ya Chanzo ya C ++
Nambari ya Chanzo ya C ++
Nambari ya Chanzo ya C ++
Nambari ya Chanzo ya C ++
Nambari ya Chanzo ya C ++
Nambari ya Chanzo ya C ++

Katika C / C ++ kawaida mtu lazima aandike kazi kabla ya kuziandika. # Ni pamoja na int kuu (batili); utupu fanya kitu (batili); } IDE ya Arduino haihitaji hatua hii, kwani prototypes za kazi hutengenezwa kiatomati. Kwa hivyo prototypes za kazi hazitaonekana kwenye nambari iliyoonyeshwa hapa. kufurika kwa timer1 Vifungu vya nambari ambazo zina muonekano wa siri kwa Kompyuta kwa mfano wakati (! (SPSR & (1 << SPIF))) {} tumia rejista za MCU moja kwa moja. Mfano huu kwa maneno: "wakati SPIF-bit katika usajili SPSR haijawekwa usifanye chochote". Ninataka tu kusisitiza kwamba kwa miradi ya kawaida sio lazima kushughulikia mambo haya karibu sana na vifaa. Kompyuta hazipaswi kuogopa na hii.

Hatua ya 5: Kifaa kilichomalizika

Kifaa kilichomalizika
Kifaa kilichomalizika
Kifaa kilichomalizika
Kifaa kilichomalizika
Kifaa kilichomalizika
Kifaa kilichomalizika

Baada ya kumaliza shida zote na kufanya nambari iendeshwe, ilibidi tu niunde mpangilio wa PCB na kuituma kwa nyumba ya kitambaa. Inaonekana safi sana:-) Picha (1): bodi ya mtawala iliyojaa kabisa Picha (2): upande wa mbele wa PCBImage wazi (2): upande wa nyuma Kuna viunganisho vinavyovunja PORTC na PORTD ya chip ya ATmega168 / 328 na 5V / GND. Bandari hizi zina laini za RX, TX, I2Mstari wa C, mistari ya I / O ya dijiti na mistari 7 ya ADC. Hii imekusudiwa kupakia ngao nyuma ya ubao. Nafasi inafaa kwa kutumia ubao wa bodi (0.1in). Bootloader inaweza kuwaka kwa kutumia kichwa cha ICSP (inafanya kazi na adtruit's USBtinyISP). Mara tu hiyo ikimaliza, tumia tu adapta ya kawaida ya FTDI USB / TTL au sawa. Nimeongeza pia jumper ya kuweka upya kiotomatiki. Pia nimepika hati ndogo ya Perl (tazama blogi yangu), ambayo inawezesha kuweka upya kiotomatiki na nyaya za FTDI ambazo kawaida hazifanyi kazi nje ya sanduku (RTS vs DTR line). Hii inafanya kazi kwenye Linux, labda kwenye MAC. Bodi za mzunguko zilizochapishwa na KIT chache za DIY zinapatikana kwenye blogi yangu. Uuzaji wa SMD unahitajika! Tazama faili za PDF kwa maagizo ya ujenzi na vyanzo vya matriki ya LED.

Hatua ya 6: Matumizi: Ufuatiliaji wa Mzigo wa CPU kwa Linux Kutumia Perl

Huu ni mfuatiliaji wa kimsingi wa mzigo na njama ya historia. Inategemea hati ya Perl ambayo inakusanya "wastani wa mzigo" wa mfumo kila 1s kutumia iostat. Takwimu zinahifadhiwa katika safu ambayo hubadilishwa kila sasisho. Takwimu mpya zinaongezwa juu ya orodha, ingizo la zamani zaidi husukumwa nje. Maelezo zaidi na vipakuzi (nambari…) zinapatikana kwenye blogi yangu.

Hatua ya 7: Matumizi: Kuzungumza na Moduli zingine Kutumia I²C

Matumizi: Kuzungumza na Moduli zingine Kutumia I²C
Matumizi: Kuzungumza na Moduli zingine Kutumia I²C

Huu ni uthibitisho tu wa kanuni na sio suluhisho rahisi kwa kazi hii2C inaruhusu kushughulikia moja kwa moja hadi bodi 127 za "watumwa". Hapa bodi upande wa kulia kwenye video ni "bwana" (ambayo huanzisha uhamishaji wote), bodi ya kushoto ni mtumwa (anasubiri data). Mimi2C inahitaji laini za ishara 2 na laini za kawaida za umeme (+, -, SDA, SCL). Kwa kuwa ni basi, vifaa vyote vimeunganishwa nayo sambamba.

Hatua ya 8: Matumizi: "Mchezo wa mchemraba":-)

Maombi
Maombi

Wazo tu la kituko. Hili pia linafaa kwenye ua wa mbao ulioonyeshwa kwenye ukurasa wa utangulizi. Ina vifungo 5 nyuma yake ambayo inaweza kutumika kwa kucheza mchezo rahisi.

Hatua ya 9: Kuonyesha Picha / michoro kwenye Matrix - Haraka Hack

Kuonyesha Picha / michoro kwenye Matrix - Haraka Hack
Kuonyesha Picha / michoro kwenye Matrix - Haraka Hack
Kuonyesha Picha / michoro kwenye Matrix - Haraka Hack
Kuonyesha Picha / michoro kwenye Matrix - Haraka Hack
Kuonyesha Picha / michoro kwenye Matrix - Haraka Hack
Kuonyesha Picha / michoro kwenye Matrix - Haraka Hack
Kuonyesha Picha / michoro kwenye Matrix - Hack Haraka
Kuonyesha Picha / michoro kwenye Matrix - Hack Haraka

Kwa hivyo ina pikseli ya 8x8 tu na rangi chache zinapatikana. Kwanza tumia kitu kama Gimp ili kupunguza picha unayopenda kwa saizi 8x8 na uihifadhi kama ".ppm" fomati mbichi (sio ASCII). PPM ni rahisi kusoma na kusindika katika hati ya Perl. Kutumia ImageMagick na zana ya laini ya amri "kubadilisha" haitafanya kazi vizuri. Pakia nambari mpya ya arduino, kisha utumie hati ya Perl kupakia kwa kidhibiti. Flicker ni sawa tu ya kuonyesha tena LED na kiwango cha sura ya kamera yangu. Baada ya kusasisha nambari kidogo, inaendesha zippy kabisa. Picha zote zinahamishiwa moja kwa moja kwa mfululizo kama unavyoziona. Michoro mirefu inaweza kuhifadhiwa kwenye EEPROM ya nje kama inavyofanyika katika bodi anuwai za mazungumzo.

Hatua ya 10: Udhibiti wa Maingiliano ya michoro zilizohifadhiwa

Ibada ya Arduino inahusu kompyuta ya mwili na mwingiliano, kwa hivyo ongeza tu uwezo wa kudhibiti na udhibiti! Kutumia moja ya analog 8 kwa pembejeo za ubadilishaji wa dijiti hufanya iwe rahisi sana.

Hatua ya 11: Kuonyesha Video ya Moja kwa Moja

Kutumia hati ya Perl na moduli chache hufanya iwe rahisi sana kuonyesha video ya moja kwa moja kwenye mifumo ya X11. Ilikuwa imeandikwa kwenye linux na inaweza kufanya kazi kwa MAC pia. Inafanya kazi kama hii: - pata nafasi ya mshale wa panya- chukua sanduku la pikseli ya NxN iliyozunguka kwenye kielelezo- picha kwa pikseli 8x8- ipeleke kwa bodi ya LED- kurudia

Hatua ya 12: Mwanga Zaidi Karibu Bure

Mwanga Zaidi Karibu Bure
Mwanga Zaidi Karibu Bure

Kwa hatua mbili tu mwangaza unaweza kupandishwa kidogo. Badilisha vipingaji 270Ω na 169Ω na piggyback rejista nyingine ya mabadiliko ya 74HC595 kwenye IC5.

Ilipendekeza: