Kazalo:
- Korak: Deli in orodja
- 2. korak: 3D tiskanje ohišja
- 3. korak: Združite vse skupaj + shemo
- 4. korak: Vtiči
- 5. korak: Koda
- 6. korak: Opombe
- 7. korak: dnevnik sprememb
Video: Arduino držalo za ključe za kitaro s prepoznavanjem vtičnice in OLED: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Uvod:
Ta navodila bodo podrobno opisala izdelavo mojega nosilca ključev vtičnika Guitar Jack na osnovi Arduina
To je moj prvi pouk, zato vas prosim, da me spremljate, saj bom morda na poti spremenil / posodobil
Korak: Deli in orodja
Večino delov, ki sem jih kupil na Amazon.co.uk ali eBay, nekatere sem že imel na voljo - tukaj je seznam, kar potrebujete.
Povezave Amazon so vse povezave Affiliate, morda jih boste našli kje drugje - veliko uporabljam Amazon Prime, zato me je Amazon slučajno obiskal.
Želel sem ohraniti to gradnjo dokaj poceni in proračunu prijazno. Lahko bi uporabili večji zaslon TFT, kot si želite, pa tudi drugačen Arduino. Ne uporabljajte NANO, ker se bo zaradi velike porabe pomnilnika zrušil. Koda uporablja približno 72% RAM -a Pro Micro in je stabilna, vendar se bo NANO zaradi testiranja zrušil in zamrznil.
(Več podrobnosti v koraku Koda.)
DELI
1x Arduino Pro Micro -
1x 0,96 OLED z rumeno -modrim zaslonom -
4x WS2812 'Pixels' -
1x DS3231 RTC -
4x 1/4 Mono Jack (Ali kolikor želite) - Amazon (zlato) ali Amazon (srebro) ali eBay.si
1x paket mešanih uporov -
4x 1/4 priključki za kitaro -
1x podaljšek kabla Micro USB -
4x vijaki M3
ORODJA IN MATERIALI
- Spajkalnik (to je tisto, ki sem ga kupil - TS100 - kot priloženo z dodatnimi nasveti
- spajkanje
- Pištola za vroče lepilo (https://amzn.to/2UTd9PN)
- Žica (https://amzn.to/2VK2ILU)
- Rezalniki/odstranjevalci žice (https://amzn.to/2KzqUzp)
- 3D tiskalnik ali storitev 3D tiskanja
NEOBVEZNO - Ti elementi so neobvezni, odvisno od tega, kako se odločite, da vse povežete
- Veroboard/Stripboard (https://amzn.to/2KzMFPE)
- Vijačni spojni priključki (2 pola | 3 pola | 4 pola)
- glave PCB (https://amzn.to/2X7RjWf)
2. korak: 3D tiskanje ohišja
Jaz sem svojega natisnil na svojem Creality CR-10S z uporabo črnega PLA+ (https://amzn.to/2X2SDtE)
Tiskala sem na višini 0,2 sloja, s 25% polnilom.
3. korak: Združite vse skupaj + shemo
Kako se boste odločili povezati svoj Arduino, je v celoti odvisno od vas - osebno sem se odločil, da si tako rekoč naredim "ščit". Za izdelavo ščita sem spajal ženske glave na veroboard, da ustreza Pro Micro, nato sem na nasprotnih koncih dodal tirnico +5v in GND. Uporabil sem mostično žico za priključitev +5v na mojo 5 -voltno "tirnico" in enako naredil za GND. Nato sem dodal svoje 4x 100k upore, en konec priključen na +5v za vse, nato pa se druga stran poveže z A0, A1, A2 in A3. Nato sem analognim zatičem A0, A1, A2 in A3 in zatičem 2 (SDA), 3 (SCL) & 4 dodal še vijačne sponke
Izmerite ožičenje in ga prerežite na ustrezne dolžine. Najprej sem začel z LED diodami WS2812 Pixel - PRVA LED WS2812 se poveže na +5v iz Arduina, GND iz Arduina, DIN pa se poveže z Pin 4. Nato se preostale 3 povežejo v verige, pri čemer se povežejo vse 5v> 5v, GND> zatiči GND in DOUT iz ene slikovne pike se poveže z DIN naslednjega. Ko jih spajkate, jih nežno potisnite v kvadratne luknje na vrhu in vroče lepilo namestite ter tudi za zaščito zadnjega dela pred kakršnimi koli nenamernimi povezavami ali kratkimi hlačami.
Po LED diodah sem nato privijal vtičnice za kitaro. Vsak pin vsakega se poveže z GND, nato pa se drugi 2. pin vsakega ustrezno poveže z A0, A1, A2 in A3. To je torej vtičnica 1 do A0, vtičnica 2 do A1, vtičnica 3 do A2 in vtičnica 4 do A3.
Nato sem spajal 4 žice na povezave OLED in kolikor je mogoče skrajšal odvečno spajkanje. Žice želite pritrditi z zadnje strani zaslona, zato jih spajkate na sprednji del zaslona.
Bodite pozorni na zatiče! Nekateri OLED -ji imajo GND na zunanji strani, nato VCC, nekateri imajo VCC zunaj, nato pa GND
Ko spajkate in čim bolj obrežete ali zravnate spajkalno povezavo, zaslon nežno pritisnite na njegovo mesto. Zasnova je nekoliko tesna, vendar se zavedajte, da na to lahko vplivajo različne tolerance tiskanja, zato boste morda morali narediti nekaj manjše naknadne obdelave, da bo primerna. Ko je na mestu, na vsakega od štirih vogalov položite nekaj vročega lepila, da ga držite na mestu.
Povežite vse, da se ujema s shemo in slikami. Ko boste zadovoljni, lahko vroče prilepite tudi uro Pro Micro in RTC, nato pa priključek USB priključite na Pro Micro.
Uporabil sem razširitev mikro USB, tako da a) USB lahko uporabimo za napajanje, vendar bolj, b) tako, da je bilo mogoče po potrebi ponovno programirati Pro Micro, ne da bi vse raztrgali
Ko ste srečni, ohišje privijte skupaj s 4 vijaki
4. korak: Vtiči
To deluje tako, da del zasnove za vse namene deluje kot "ohmmeter". Ohmmeter je instrument za merjenje električnega upora. Večina multimetrov ima to funkcijo, pri kateri izberete lestvico in nato izmerite upor, da ugotovite njegovo vrednost. Delovni princip je, da na +ve priključite ZNANI upor, ki je nato priključen na NEPOZNATI upor, ki se poveže z -ve. Spoj med 2 uporoma se poveže z analognim zatičem Arduino, tako da lahko odčita napetost in izračuna upor.
Deluje kot delilnik napetosti in izračuna upor neznanega upora.
Kot omrežje razdelilnikov napetosti uporov R1 in R2, Vout = Vin * R2 / (R1 + R2) - Za naš znani (R1) upor uporabljamo 100k. To nam daje "padec napetosti"
Iz tega lahko zdaj izračunamo upor neznanega upora (R2), R2 = Vout * R1 / (Vin - Vout) - kjer je R1 naš 100k (100, 000 ohm) upor
Z uporabo drugega upora v vsakem vtiču, ki ga želite uporabiti, lahko kodo ustrezno prilagodite glede na uporabljeno vtičnico.
Uporabljam 4 vtičnice. Odločil sem se za uporabo:
Znani upor (x4) - 100k
Jack Plug 1 - 5,6 k
Vtič 2 - 10k
Jack Plug 3 - 22k
Jack Plug 4 - 39k
Seveda bi to lahko razširili in kodirali, kolikor želite.
5. korak: Koda
Najprej boste potrebovali Arduino IDE, ki je na voljo tukaj:
Poskrbeti boste morali tudi za nekaj knjižnic Arduino:
Adafruit NeoPixel:
u8g2:
Adafruit RTCLib:
Adafruit SleepyDog (izbirno):
Opomba o izbiri prave plošče "Arduino". Prvotno sem ta projekt začel z Arduino Nano, ker so v Združenem kraljestvu zelo poceni pri približno 3 £ 4 £ ali pa pri 1,50 £, če kupujete pri AliExpressu (vendar vas ne moti čakanje 30-50 dni). Težava pri Nano je, da ima SRAM 2 KB (2048 bajtov). Ta skica uporablja 1728 bajtov dinamičnega pomnilnika z globalnimi spremenljivkami. To je 84% SRAM -a, pri čemer je za lokalne spremenljivke na voljo le 320 bajtov. To je bilo premalo in bi povzročilo, da se Nano zaklene in zamrzne.
Pro Micro (Leonardo) ima 2,5K SRAM (2560 bajtov), kar pomeni, da je za lokalne spremenljivke na voljo 694 bajtov (skica uporablja 72% SRAM -a Pro Micro). Doslej se je to izkazalo za popolnoma primerno in stabilno za mojo uporabo. Če nameravate uporabiti veliko vtičnic, razmislite o uporabi nečesa z več SRAM -a.
Kar zadeva pomnilnik Flash, ta skica uporablja 88% (25252 bajtov) 30k (ATMega328p [Nano] in ATMega32u4 [Pro Micro] imata 32k, 2k pa je rezervirano za zagonski nalagalnik)
V preteklih letih sem napisal na stotine skic Arduina, vendar sem hobist - zato upoštevajte, da so nekateri deli kode morda neučinkoviti ali pa obstajajo scenariji "boljših načinov za to". Se pravi, da mi odlično deluje in sem s tem zadovoljen. Uporabil sem knjižnice, ki bi morale delovati na večini plošč, pa naj bo to AVR (najosnovnejši Arduino) ali SAMD21 (imam nekaj naprav Cortex M0)
Želel sem prikazati drugačno grafiko na podlagi uporabljenega priključka. Če želite ustvariti svoje, je to briljanten preprost vodnik, kako ustvariti matriko C za slike, ki bodo uporabljene s tem zaslonom:
sandhansblog.wordpress.com/2017/04/16/interfacing-displaying-a-custom-graphic-on-an-0-96-i2c-oled/
Za grafiko uporabite PROGMEM. Npr:
static const unsigned char YOUR_IMAGE_NAME PROGMEM = {}
Zaslon bo po 5 sekundah "prekinil" in se vrnil na prikaz časa.
Večino nastavitev najdete v Settings.h, natančneje, imena povezanih vtičnic so kodirana tukaj:
#define PLUG1 "KLJUČI"
#define PLUG2 "P2" #define PLUG3 "P3" #define PLUG4 "P4" #define GENERIC "NA"
V Variables.h je tudi nekaj pomembnih delov kode
plovec R1 = 96700,0;
plovec R2 = 96300,0; plovec R3 = 96500,0; plovec R4 = 96300,0;
To so znane vrednosti upora, v ohmih, vsakega od 4 uporov.
R1 priključen na A0, R2 na A1, R3 na A2 in R4 na A3.
Priporočljivo je, da izmerite svoje 100k upore z multimetrom in uporabite natančno vrednost upora. Izmerite upor, ko je vse povezano. (Vendar ni vklopljen).
Pri izbiri uporov za vtičnice se prepričajte, da je med njima dobra ohmska vrzel, pri kodiranju pa si zagotovite lep razpon, nižji in višji od izbranega upora. Tukaj je tisto, kar sem uporabil v svoji kodi:
plovec P1_MIN = 4000,0, P1_MAX = 7000,0; // 5,6K
plovec P2_MIN = 8000,0, P2_MAX = 12000,0; // 10K plavajoče P3_MIN = 20000.0, P3_MAX = 24000.0; // 22K plovec P4_MIN = 36000.0, P4_MAX = 42000.0; // 39K
Razlog za to je v analognem odčitku in manjših nihanjih napetosti itd
Torej, če se odkrije upor med 4000 ohmov in 7000 ohmov, predvidevamo, da ste uporabili 5,6 k upor, zato bo koda to videla kot Jack Plug 1. Če je izmerjeni upor med 8000 ohmov in 12000 ohmov, predpostavka je, da gre za 10k upor in je Jack Plug 2 itd.
Če morate narediti nekaj odpravljanja napak (ne puščajte komentarjev v "produkciji", ker serijsko odpravljanje napak porabi dragocen ram), preprosto komentirajte vrstice, ki jih potrebujete na vrhu nastavitev. H
//#definiraj SERIAL_DEBUG
//#definiraj WAIT_FOR_SERIAL
Če želite komentirati, preprosto odstranite //…. če želite komentirati vrstico, znova dodajte // na sprednjo stran vrstice.
SERIAL_DEBUG omogoča serijsko odpravljanje napak in uporabo stvari, kot so (na primer)
Serial.println (F ("pozdravljen svet"));
WAIT_FOR_SERIAL je dodaten korak, kar pomeni, da se koda ne odpre, dokler ne odprete serijskega monitorja. Tako boste zagotovili, da ne boste zamudili pomembnih serijskih sporočil. - NIKOLI NE PUSTITE TEGA Omogočenega
Če pustite WAIT_FOR_SERIAL omogočeno, imetnika ključa ne boste mogli uporabiti v nobenem okolju "resničnega sveta", saj bo obtičal in čakal na serijski monitor Arduino IDE, preden bo lahko nadaljeval v glavno zanko skice. Ko dokončate odpravljanje napak, znova razkomentirajte to vrstico in znova naložite skico za izdelavo/dokončanje.
Ko uporabljam možnost SERIAL_DEBUG, moja koda vsebuje naslednje:
#ifdef SERIAL_DEBUG
Serial.print (F ("ACTIVE JACK =")); Serial.println (ACTIVE_JACK); int len = sizeof (SOCKET_1234_HAS_PLUGTYPE_X)/sizeof (SOCKET_1234_HAS_PLUGTYPE_X [0]); for (int i = 0; i <len; i ++) {Serial.print (F ("SOCKET_1234_HAS_PLUGTYPE_X [")); Serial.print (i); Serial.print (F ("] =")); Serial.println (SOCKET_1234_HAS_PLUGTYPE_X ); } Serial.println (); if (INSERTED [socket]) {Serial.print (F ("Plug in socket")); Serial.print (vtičnica+1); Serial.print (F ("ima upornost:")); Serial.println (odpornost); } #endif
Zadnja vrstica Serial.print vam bo povedala, kakšen je upor v ohmih zadnje vstavljene vtičnice. Tako lahko to skico uporabite tudi kot neke vrste ohmmeter za preverjanje upora vtiča.
6. korak: Opombe
Mislim, da sem vse pokril, vendar komentirajte in potrudil se bom, da bom prebral in odgovoril, ko bom lahko:)
Se opravičujem za nekoliko slab videoposnetek - nimam stativa, nastavitve za kodiranje ali primernega delovnega prostora, tako da je bilo to posneto (slabo), ko je telefon držal v eni roki in ga poskušal demonstrirati z drugo.
Hvala za branje.
Priporočena:
Iskalnik obeskov za ključe IoT z uporabo ESP8266-01: 11 korakov (s slikami)
Iskalnik obeskov za ključe IoT z uporabo ESP8266-01: Ali ste všeč, da vedno pozabim, kje ste hranili ključe? Nikoli ne najdem svojih ključev pravočasno! In zaradi te moje navade sem zamudil na fakulteto, v omejeno izdajo razprodaj dobrot iz zvezdnih vojn (še vedno grozljiv!), Na zmenek (nikoli ni izbrala
Zvonec pri vratih s prepoznavanjem obrazov: 7 korakov (s slikami)
Zvonec na vratih s prepoznavanjem obrazov: Motivacija Nedavno je v moji državi prišlo do ropov, ki so namenjeni starejšim ljudem na njihovih domovih. Običajno dostop omogočijo stanovalci sami, saj jih obiskovalci prepričajo, da so negovalci/medicinske sestre. To
Držalo za pametne ključe z glasovnim upravljanjem: 3 koraki (s slikami)
Nosilec pametnega ključa z glasovnim upravljanjem: Ali ste oseba, ki ne zna dobro upravljati ključev in mora vedno preizkusiti vsako tipko za vsako drugo ključavnico? No, ne skrbite, samo vzemite malo motivacije in orodja za ustvarjanje, da boste inovativno lasten lastni pametni nosilec za ključe z glasovnim upravljanjem
Guitar Hero in držalo za slušalke/držalo: 5 korakov
Guitar Hero in ohišje/nosilec za slušalke: Utrujeni od pilotov, obesite slušalke in krmilnik GH in jih imejte pri roki
Vdor v digitalni fotoaparat z obeskom za ključe za Arduino Control: 6 korakov
Vdor v digitalni fotoaparat z obeskom za ključe za nadzor Arduina: Možnosti fotografiranja za Arduino so malo in daleč. Spletne kamere niso praktične za aplikacije, kot je fotografiranje zmajev ali javna fotografija, razen če vam je všeč, da kupite 200 -metrski kabel USB. In trenutne tehnike za samostojno fotografijo Arduino