Satura rādītājs:

5 vadu pretestības skārienjūtīgs sensors: 10 soļi
5 vadu pretestības skārienjūtīgs sensors: 10 soļi

Video: 5 vadu pretestības skārienjūtīgs sensors: 10 soļi

Video: 5 vadu pretestības skārienjūtīgs sensors: 10 soļi
Video: Автомобильный генератор для генератора с самовозбуждением с использованием ДИОДА 2024, Novembris
Anonim
5 vadu pretestības skārienjūtīgs sensors
5 vadu pretestības skārienjūtīgs sensors

Sveiki sveiki!

Ir pagājis kāds laiciņš, kopš strādāju šajā vietnē, un šķiet, ka daudz kas ir mainījies! Beidzot esmu gatavs atgriezties pie stūres kādam citam projektam, un domāju, ka ir pienācis laiks pašiem kaut ko mainīt!

Jau kādu laiku esmu domājis par projektu, kura pamatā ir 271828's Plate and Ball, taču pirms tā pabeigšanas man ir daudz ko uzzināt par sensoriem un vadības teoriju. Es domāju, ka tik ilgi, kamēr es iemācīšos vienu vai divas lietas, es varētu jūs, puiši, ņemt līdzi!

Šajā nolūkā mans mērķis šīm apmācībām būs sava veida hibrīds starp manām izsmalcinātākajām apmācībām un ieraksts par pašu projektu. Katra individuālā apmācība būs viens solis šajā ceļojumā, un tajā tiks iekļauta informācija, par kuru esmu iepriekš runājis, piemēram, koda izstrāde (nevis tikko pabeigta koda vietā) un kļūdas, kuras es veicu.

Esmu ļoti satraukts par šo jauno projektu, un esmu priecīgs redzēt, cik labi tas darbojas!

Šodien mēs vienkārši iegūsim vienkāršu 5 vadu skārienpaneli, kas darbosies ar DP-32.

Sāksim!

1. darbība. Kas jums būs nepieciešams

Kas jums būs nepieciešams
Kas jums būs nepieciešams

Tā kā šī apmācība ir paredzēta viena sensora darbībai, nav daudz kas vajadzīgs, izņemot mikrokontrolleru un skārienpaneli.

  • Mikrokontrolleris.

    Es izmantoju savu DP32 ar iebūvētu maizes dēli, jo tas padara prototipu veidošanu neticami vienkāršu

  • Dažādi vadi un kabeļi.

    Es varēju izmantot skārienpaneļa iebūvēto lentes kabeli, bet, ja tas plīst, viss panelis ir bezjēdzīgs. Tā vietā es izmantoju 6 vadu kabeli, lai samazinātu iebūvētā kabeļa stresu

  • Nosauktais 5 vadu pretestības skārienpanelis!

    Man bija 4 vadu pretestības skārienpanelis, bet tam lentes kabelis salūza

Un tas arī viss!

2. darbība. Kas ir 5 vadu pretestības skārienpanelis?

Kas ir 5 vadu pretestības skārienpanelis?
Kas ir 5 vadu pretestības skārienpanelis?
Kas ir 5 vadu pretestības skārienpanelis?
Kas ir 5 vadu pretestības skārienpanelis?
Kas ir 5 vadu pretestības skārienpanelis?
Kas ir 5 vadu pretestības skārienpanelis?

Ja esat izlasījis manu 4 vadu skārienekrāna pamācību, jūs iepazīsieties ar vispārējo ideju par pretestības skārienjutīgo sensoru, taču 5 vadu paneļi un 4 vadu paneļi darbojas nedaudz savādāk.

Man patīk šis panelis, jo jūs varat redzēt visas vadu pēdas, kas ļauj viegli redzēt, kas ko dara. Pirmajā attēlā katru trasi esmu krāsojis atšķirīgi. Jūs droši vien redzat, ka četri vadi (rozā, dzeltena, oranža un violeta) katrs iet uz vienu no četriem stūriem. Vidējais vads (sarkans) iet uz elastīgo sensora paneli.

Otrajā attēlā mēs esam iestatījuši divus no četriem vadiem (augšējā labajā un apakšējā labajā pusē) uz augstu spriegumu (parādīts sarkanā krāsā), bet pārējie divi (augšējais kreisais un apakšējais kreisais) ir iestatīti uz zemu spriegums (parādīts zilā krāsā). Tas rada sprieguma gradientu visā panelī. Šajā gadījumā gradients iet gar X asi, tāpēc lielāks spriegums attēlo augstāku pozīciju gar X asi.

Kad pieskaramies pirkstam panelim, tas nospiež elastīgo sensoru, izveidojot savienojumu ar kaut kur gar X ass gradientu. Sprieguma sensori uz mūsu mikrokontrollera var uztvert šo spriegumu un pateikt, kur uz X ass pirksts pieskaras!

Trešajā attēlā jūs varat redzēt, kā mainās konfigurācija, lai mēs varētu sajust gar Y asi. Tādā veidā mēs varam noteikt, kur 2-D telpā mūsu pirksts pieskaras!

3. darbība: elektroinstalācija

Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija

Kā jūs, iespējams, redzat iepriekš redzamajos attēlos, savus četrus stūrus esmu savienojis ar savu digitālo izvades tapu. Tas ļaus man tos individuāli iestatīt uz augstu vai zemu. Mana sensora tapa tiek savienota ar analogo ievades tapu. Jaukā lieta par 5 vadu skārienekrānu, atšķirībā no četru vadu, ir tāda, ka jums ir nepieciešams tikai viens analogais tapa, bet 4 vadiem-2.

Jūsu elektroinstalācija, protams, var atšķirties, bet mana elektroinstalācija ir šāda:

Analog 0 (pin 6) savieno ar sensoru (vidējā tapa)

Digital 3 savieno ar augšējo labo pusi (augšējā tapa)

Digital 2 savienojas ar augšējo kreiso pusi (otrā augšējā tapa)

Digital 1 savienojas ar apakšējo kreiso pusi (otrā apakšējā tapa)

Digitālais 0 savienojas ar apakšējo labo pusi (visapakšējā tapa)

Ir vērts vēlreiz atzīmēt, ka es izmantoju 6 vadu kabeli, lai pārietu starp mikrokontrolleri un paneli. Esmu atstājis nesavienotu šī kabeļa augšējo tapu.

4. solis: programmatūras izstrāde

Programmatūras izstrāde
Programmatūras izstrāde

Agrāk es parasti nometu pabeigtu programmatūras failu, lai jūs to varētu izmantot, iespējams, ar īsu pārskatu par visu, ko dara. Man tas nepatīk. Es vēlos, lai šī sērija būtu par projektiem, kas tiek izstrādāti, un šajā nolūkā es iekļaušu šīs programmatūras faktisko izstrādi no sākuma līdz beigām.

Kā parasti, es izmantošu Arduino IDE ar Digilent kodolu. Katrā sadaļā būs koda fails, ekrānuzņēmums, kā arī papildinājumu apraksts un tas, ko mēs cenšamies sasniegt.

Šobrīd es sāku ar vienkāršu aizkaves stila mirgošanas programmu, kas ir tieši tāda pati kā mapē Piemēri. Ja lasīsit šo garo galveni, ko es uzrakstīju, redzēsit, ka katrs šī procesa solis modificēs programmu, lai tā tuvotos mūsu gala mērķim.

5. darbība: mirgo stāvokļa mašīna

Stāvokļa mašīna mirgo
Stāvokļa mašīna mirgo

Mans pirmais solis ir nomainīt mirgošanas funkciju no vienas, pamatojoties uz "delay ()" uz stāvokļa mašīnu.

Tiem, kas nav pieraduši pārslēgt paziņojumus, tas darbojas līdzīgi kā paziņojums if. Šis (oranžā lodziņā) pārbauda mūsu "stāvokļa" mainīgo (kas sākas ar 0). Tad tas pāriet uz mūsu pašreizējā stāvokļa lietu. Jūs redzēsit, ka 0. un 2. gadījums ir atbildīgi par gaismas diodes ieslēgšanu un izslēgšanu (attiecīgi), savukārt 1. un 3. gadījums ir atbildīgs par gaidīšanu starp slēdžiem.

6. darbība: poga mirgo

Poga mirgo
Poga mirgo
Poga mirgo
Poga mirgo
Poga mirgo
Poga mirgo

Tālāk es gribēju, lai poga tiktu izmantota gaismas mirgošanai. Tā vietā, lai to pārāk sarežģītu, es vienkārši pārbīdīju visus stāvokļus uz leju (stāvoklis 0 kļūst par stāvokli 1 utt.). To darot, uzmanieties, lai palielinātu izejas stāvokļus, kā arī pašu stāvokli (skat. 3. attēlu).

Es izdzēsu arī otro "gaidīšanas" stāvokli. Tas nozīmē, ka poga ieslēdz gaismu uz vienu sekundi, un jūs varat vēlreiz nospiest pogu tūlīt pēc tā izslēgšanas.

Ir vērts atzīmēt, ka šī sistēma automātiski atvieno pogu mūsu vietā, jo mums ir jāgaida, līdz gaismas diode izslēgsies, pirms atgriezīsimies 0 stāvoklī, kur poga var atkal aktivizēt ciklu.

7. darbība: sērijas komunikācija

Sērijas komunikācija
Sērijas komunikācija
Sērijas komunikācija
Sērijas komunikācija

Šis atjauninājums ir ļoti mazs. Viss, ko es gribēju darīt, bija izveidot seriālo savienojumu un sūtīt ziņas. Pirmajā attēlā var redzēt, ka iestatīšanas () funkcijā es sāku Serial. Mūsu valsts mašīnā es pievienoju rindas 1. un 3. stāvoklim, kas nosūtīs vienkāršus ziņojumus uz datoru, izmantojot sērijas.

8. solis: koordinātu nolasīšana

Lasīšanas koordinātas
Lasīšanas koordinātas
Lasīšanas koordinātas
Lasīšanas koordinātas
Lasīšanas koordinātas
Lasīšanas koordinātas
Lasīšanas koordinātas
Lasīšanas koordinātas

Labi, ka pēdējais solis bija viegls, jo šis bija mulsinošs.

Lai sāktu, esmu pievienojis mūsu skārienpanelim mainīgos, tostarp dažus laika mainīgos gan skārienpanelim, gan mūsu pogai. Pēc kāda laika jūs redzēsit, kāpēc.

Esmu pilnībā pārrakstījis valsts iekārtu. Ir nedaudz mulsinoši aplūkot kodu, tāpēc esmu iekļāvis blokshēmu, kurai vajadzētu ilustrēt paveikto.

Jāņem vērā: tagad ir trīs "gaidīšanas" soļi. Viens katrai skārienpaneļa konfigurācijai, lai ļautu spriegumam nosēsties pirms mērījuma veikšanas, un viens, lai dotu pogai laiku pienācīgai atvienošanai. Šie gaidīšanas soļi ir iemesls, kāpēc es gribēju gan pogai, gan skārienpanelim piešķirt savus laika mainīgos.

Piezīme. DEBOUNCE_TIME konstante var būt nedaudz zema. Jūtieties brīvi to palielināt.

9. solis: tīrīšana

Satīrīšana
Satīrīšana
Satīrīšana
Satīrīšana
Satīrīšana
Satīrīšana

Esam nonākuši pie šī projekta koda galīgās versijas!

Lai sāktu, esmu pievienojis funkciju ar nosaukumu loop_diff (), lai aprēķinātu pagājušo laiku. DP32 iekšējais pulkstenis ir neparakstīts garš, un, lai gan tas ir ārkārtīgi maz ticams, pastāv iespēja, ka pulkstenis dažkārt šī koda izpildes laikā*var parādīties. Tādā gadījumā vienkārši atņemot pašreizējo laiku no laika, kas saglabāts btn_time vai panel_time, mēs iegūsim kaut ko dīvainu, tāpēc es uzrakstīju loop_diff (), lai noteiktu, kad rodas cilpas, un attiecīgi rīkojamies.

Esmu veicis arī nelielu nelielu tīrīšanu. Esmu noņēmis tagad neizmantoto mainīgo "state_time". Esmu pārslēdzies no LED_BUILTIN taga (kas ir Arduino standarts) uz tagu PIN_LED1 (kas ir standarta komplekts chipKit un DP32). Esmu arī noņēmis visus ziņojumus, izmantojot Serial par procesa sākšanu un pabeigšanu, kas padara mūsu datus, izmantojot Serial, daudz tīrāku.

*Es matemātiku veicu pirms daudziem gadiem, un es domāju, ka funkcijai millis () būtu nepieciešams apmēram nedēļa pastāvīga izpildlaika, pirms mainīgais mainīsies.

10. solis: pēdējās domas

Pēdējās domas
Pēdējās domas

Un tas arī viss!

Ja esat sekojis līdzi, tagad jūsu mikrokontrolleram jābūt savienotam ar funkcionējošu skārienpaneli! Šis bija neliels projekts, bet tā ir daļa no lielāka projekta. Es strādāju pie kaut kā 271828 “Plate and Ball”, un man vēl tāls ceļš ejams, pirms tas notiks. Es centīšos jūs ņemt līdzi visam procesam, un katrai daļai vajadzētu būt savam mazam projektam.

Šis man ir mācību process, tāpēc atstājiet savas domas un ieteikumus komentāros zemāk.

Paldies, un tiekamies nākamreiz!

Ieteicams: