Satura rādītājs:

Bezvadu akselerometra kontrolētās Rgb-LED: 4 soļi
Bezvadu akselerometra kontrolētās Rgb-LED: 4 soļi

Video: Bezvadu akselerometra kontrolētās Rgb-LED: 4 soļi

Video: Bezvadu akselerometra kontrolētās Rgb-LED: 4 soļi
Video: The Science of Sleep : How to Sleep Better | DrJ9 Live 2024, Jūlijs
Anonim
Bezvadu akselerometra kontrolēti Rgb-LED
Bezvadu akselerometra kontrolēti Rgb-LED
Bezvadu akselerometra kontrolēti Rgb-LED
Bezvadu akselerometra kontrolēti Rgb-LED

MEMS (mikroelektromehāniskās sistēmas) akselerometri tiek plaši izmantoti kā slīpuma sensori mobilajos tālruņos un kamerās. Vienkārši akselerometri ir pieejami gan kā ic-chip's, gan lēti izstrādes PCB plates.

Bezvadu mikroshēmas ir pieejamas arī par pieejamām cenām, un tās ir pieejamas samontētās shēmās ar atbilstošu antenu tīklu un atvienošanas vāciņiem. Savienojiet gan bezvadu plati, gan akselerometru ar mikrokontrolleri, izmantojot seriālo interfeisu, un jums ir bezvadu kontrolieris ar nintendo-wii funkcijām. Pēc tam izveidojiet uztvērēju ar tāda paša veida bezvadu mikroshēmu un ar pwm kontrolētām rgb-LED, voila, jums ir bezvadu, slīpuma kontrolēts krāsains istabas zibens. Uzturiet raidītāja plāksni vienā līmenī ar maizes dēli uz augšu, un gaismas diode ir auksti zila, darbojas tikai zilā gaismas diode. Pēc tam sasveriet raidītāju vienā virzienā, un jūs sajaucat sarkanā vai zaļā krāsā atkarībā no tā, kādā virzienā jūs to noliecat. Pagrieziet līdz 90 grādiem, un jūs ejat cauri visiem sarkanā un zilā, vai zaļā un zilā maisījumiem, līdz 90 grādu slīpumā ir aktīvs tikai sarkans vai zaļš. Nedaudz nolieciet gan x, gan y virzienā, un jūs iegūstat visu krāsu sajaukumu. Pie 45 grādiem visos virzienos gaisma ir vienāds sarkanās, zaļās un zilās krāsas maisījums, citiem vārdiem sakot, balta gaisma. Izmantotās detaļas ir pieejamas interneta hobiju elektronikas veikalos. Tam vajadzētu būt identificējamam no dažiem attēliem.

1. solis: raidītājs ar akselerometru

Raidītājs ar akselerometru
Raidītājs ar akselerometru
Raidītājs ar akselerometru
Raidītājs ar akselerometru
Raidītājs ar akselerometru
Raidītājs ar akselerometru
Raidītājs ar akselerometru
Raidītājs ar akselerometru

Raidītāja pamatā ir mikrokontrolleris Atmel avr168. Ērta sarkanā plāksne ar 168 ir arduino plāksne ar sprieguma regulatoru un atiestatīšanas ķēdi. Akselerometrs ir savienots ar avr ar bit-banged i2c kopni, un bezvadu plate ir savienota ar aparatūras SPI (Serial Peripheral Interface).

Maizes dēlis ir pilnīgi bezvadu, un zem tā ir piesprādzēts 4,8 V akumulatoru komplekts. Bezvadu dēlis un arduino wee pieņem līdz 9 V, un tiem ir iebūvēts lineārais sprieguma regulators, bet akselerometram ir nepieciešami 3, 3 V no regulētā sliežu ceļa.

2. solis: uztvērējs ar RGB-LED

Uztvērējs ar RGB-LED
Uztvērējs ar RGB-LED
Uztvērējs ar RGB-LED
Uztvērējs ar RGB-LED
Uztvērējs ar RGB-LED
Uztvērējs ar RGB-LED

Uztvērēja pamatā ir atmel avr169 demoboard ar nosaukumu tauriņš. Plātnei ir daudz funkciju, kas šajā projektā netiek izmantotas. Bezvadu transmisijas uztvērējs ir pievienots portam Port, un pwm kontrolētais LED ir pievienots portam PortD. Strāva tiek piegādāta pie ISP galvenes, pietiek ar 4,5 V. Bezvadu plate var izturēt 5 V uz i/o tapām, bet tai ir nepieciešama 3,3 V barošana, ko nodrošina iebūvētais regulators.

Modificētais galvenes kabelis RF tranceiver ir patiešām ērts un savieno bezvadu plati ar strāvas un aparatūras spi kontrolieri uz tauriņa. Shiftbright ir rgb vadīts impulsa platuma modulācijas kontrolieris, kas pieņem 4 baitu komandu, kas tiek fiksēta un pēc tam fiksēta uz izejas tapām. Patiešām viegli savienot virknē. Vienkārši nomainiet daudzus komandvārdus, un pirmais novirzītais tiks novietots pēdējā pievienotajā gaismas diodē margrietiņas ķēdē.

3. solis: C-programmēšana

Kods ir rakstīts C, jo man nebija vienalga, kā iemācīties “vieglāku” apstrādes valodu, uz kuras balstās arduino. Es pats uzrakstīju SPI un rf tranceiver saskarni mācīšanās pieredzei, bet i2c montētāja kodu aizņēmos no avrfreaks.net. Shiftbright saskarne ir bitbanged C kodā. Viena problēma, ar kuru es saskāros, bija nelielas, akselerometra izejas svārstības, kas izraisīja gaismas diodes mirgošanu. Es to atrisināju ar programmatūras zemas caurlaidības filtru. Akselerometra vērtību mainīgais vidējais svērtais. RF-tranceiver atbalsta aparatūras crc un ack ar automātisku retranslāciju, taču šim projektam reāllaika, vienmērīga LED atjaunināšana bija svarīgāka. Katrai paketei ar akselerometra vērtībām nav jānonāk uztvērējā neskartā veidā, ja vien bojātās paketes tiek izmestas. Man nebija problēmu ar pazaudētām RF paketēm 20 metru redzamības zonā. Bet tālāk saite kļuva nestabila, un gaismas diodes netika pastāvīgi atjauninātas. Raidītāja galvenā cilpa pseidokodā: inicializēt (); kamēr (patiess) {Vērtības = abs (iegūt x, y, z akselerometra vērtības ()); RF_send (Vērtības); kavēšanās (20 ms);} Uztvērēja galvenā cilpa pseidokodā: initialize (); while (true) {newValues = blocking_receptRF ()); rgbValues = rgbValues + 0.2*(newValues-rgbValues); rakstīt rgbValues to shiftbrigth;}

4. solis: rezultāts

Rezultāts
Rezultāts
Rezultāts
Rezultāts
Rezultāts
Rezultāts
Rezultāts
Rezultāts

Es biju pārsteigts, cik vienmērīga un precīza bija kontrole. Jūs patiešām varat kontrolēt krāsu ar pirkstu galiem. Pwm-LED kontrolierim ir 10 bitu izšķirtspēja katrai krāsai, kas nodrošina miljoniem iespējamo krāsu. Diemžēl akselerometram ir tikai 8 bitu izšķirtspēja, kas samazina teorētisko krāsu skaitu līdz tūkstošiem. Bet joprojām nav iespējams uztvert jebkādus soļus krāsu maiņā. Es ievietoju uztvērēju IKEA lampā un zemāk nofotografēju dažādas krāsas. Ir arī video (tomēr briesmīga kvalitāte)

Ieteicams: