Sadržaj:
- Korak 1: Dijelovi i alati
- Korak 2: 3D štampanje kućišta
- Korak 3: Spajanje svega + shema
- Korak 4: Utikači
- Korak 5: Kôd
- Korak 6: Napomene
- Korak 7: Dnevnik promjena
Video: Arduino držač ključeva za gitaru sa prepoznavanjem utičnice i OLED -om: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Uvod:
Ovo uputstvo će detaljno opisati izradu mog držača za ključeve dodataka sa gitarom zasnovanog na Arduinu
Ovo je moje prvo uputstvo, pa me podnesite jer ću usput možda unijeti promjene / nadogradnje
Korak 1: Dijelovi i alati
Većinu dijelova koje sam kupio na Amazon.co.uk ili eBay, neke sam već već razbacao - evo popisa onoga što će vam trebati.
Amazonske veze su sve partnerske veze, možda ćete negdje drugdje moći pronaći jeftinije - često koristim Amazon Prime, pa je Amazon slučajno bio moj posjet.
Htio sam zadržati ovu gradnju prilično jeftinom i budžetskom. Mogli biste koristiti veći TFT ekran ako želite, kao i drugačiji Arduino. Nemojte koristiti NANO jer će se srušiti zbog velike upotrebe memorije. Kod koristi oko 72% RAM -a Pro Micro -a i stabilan je, ali nakon testiranja NANO će se srušiti i zamrznuti.
(Više detalja u koraku Code.)
DIJELOVI
1x Arduino Pro Micro -
1x 0,96 OLED sa žuto -plavim ekranom -
4x WS2812 'Pikseli' -
1x DS3231 RTC -
4x 1/4 mono utičnica (ili koliko god želite) - Amazon (zlato) ili Amazon (srebro) ili eBay.rs
1x paket mješovitih otpornika -
4x 1/4 utičnice za gitaru -
1x produžni kabel za mikro USB kabel -
4x M3 vijci
ALATI I MATERIJALI
- Lemilica (ovo je ono što sam kupio - TS100 - kako je stiglo s dodatnim savjetima
- Lemilo
- Pištolj za vruće ljepilo (https://amzn.to/2UTd9PN)
- Žica (https://amzn.to/2VK2ILU)
- Rezači/skidači žice (https://amzn.to/2KzqUzp)
- 3D štampač ili usluga 3D štampanja
NEOBVEZNO - Ove stavke su izborne, ovisno o tome kako ste odlučili sve povezati
- Veroboard/Stripboard (https://amzn.to/2KzMFPE)
- Konektori s vijčanim stezaljkama (2 pola | 3 pola | 4 pola)
- Zaglavlja PCB -a (https://amzn.to/2X7RjWf)
Korak 2: 3D štampanje kućišta
Odštampao sam svoj na svom Creality CR-10S, koristeći Black PLA+ (https://amzn.to/2X2SDtE)
Štampao sam na 0,2 sloja visine, sa ispunom od 25%.
Korak 3: Spajanje svega + shema
Kako ćete odlučiti spojiti svoj Arduino, u potpunosti ovisi o vama - ja sam lično odabrao da si napravim "štit" da tako kažem. Da bih napravio štit, lemio sam ženska zaglavlja na veroboard kako bi odgovarao Pro Micro -u, zatim sam dodao šinu od +5v i GND, na suprotnim krajevima. Koristio sam kratkospojnik za spajanje +5v na moju sada 5v 'šinu', a isto sam učinio i za GND. Zatim sam dodao svoje 4x 100k otpornike, jedan kraj spojen na +5v za sve njih, a zatim se druga strana spaja na A0, A1, A2 i A3. Zatim sam dodao vijčane stezaljke analognim pinovima A0, A1, A2 i A3, a također i pinovima 2 (SDA), 3 (SCL) & 4
Izmjerite ožičenje i izrežite ga na odgovarajuće duljine. Prvo sam počeo s pikselom LED WS2812 - PRVA LED žarulja WS2812 spaja se na +5v iz Arduina, GND iz Arduina, a DIN se povezuje s kontaktom 4. Nakon toga, preostale 3 su lancem povezane, povezujući svih 5v> 5v, GND> GND pinovi i DOUT iz jednog piksela, povezuje se sa DIN sljedećeg. Nakon što ih zalemite, lagano ih utisnite u četvrtaste rupe na vrhu i vruće ljepilo na mjestu, a također i za zaštitu stražnje strane od slučajnih spojeva ili kratkih hlača.
Nakon LED dioda, zatim sam ušrafio utičnice za gitaru. Svaki pin svaki se spaja na GND, a zatim se drugi pin svakog povezuje na A0, A1, A2 i A3 u skladu s tim. Dakle, to je utičnica 1, na A0, utičnica 2 na A1, utičnica 3 na A2 i utičnica 4 na A3.
Zatim sam lemio 4 žice na OLED priključke i skinuo višak lemljenja što je više moguće. Želite spojiti svoje žice sa stražnje strane ekrana, pa lemite na prednju stranu ekrana.
Obratite pažnju na igle! Neki OLED -ovi imaju GND izvana, zatim VCC, neki imaju VCC izvana, a zatim GND
Nakon što ste zalemljeni, a vi ste obrezali ili spljoštili priključak za lemljenje što je više moguće, lagano pritisnite ekran na njegovo mjesto. Dizajn je malo usko uklopljen, ali imajte na umu da različite tolerancije ispisa mogu utjecati na to, pa ćete možda morati obaviti manju naknadnu obradu kako biste ga uklopili. Nakon što postavite na mjesto, stavite vruće ljepilo preko svakog od 4 ugla kako biste ga držali na mjestu.
Spojite sve kako bi odgovaralo shemi i slikama, a kad budete sretni, tada možete vruće zalijepiti Pro Micro i RTC sat na mjesto, a zatim spojiti USB nastavak na Pro Micro.
Koristio sam mikro USB nastavak tako da se a) USB može koristiti za napajanje, ali više, b) tako da je bilo moguće reprogramirati Pro Micro ako je potrebno, a da se sve ne razdvoji
Kad ste sretni, pričvrstite kućište pomoću 4 vijka
Korak 4: Utikači
Način na koji ovo funkcionira je da, za sve namjere i svrhe, dio dizajna radi kao "ohmmetar". Ohmmetar je instrument za mjerenje električnog otpora. Većina multimetra ima ovu funkciju pri kojoj birate skalu, a zatim mjerite otpornik kako biste pronašli njegovu vrijednost. Glavni princip rada je da spojite ZNATI otpornik na +ve, koji se zatim poveže sa NEPOZNATIM otpornikom, koji se spaja na -ve. Spoj između 2 otpornika povezuje se s Arduino analognim pinom tako da može očitati napon i izračunati otpor.
Radi kao djelitelj napona i izračunava otpor nepoznatog otpornika.
Kao mreža razdjelnika napona otpornika R1 i R2, Vout = Vin * R2 / (R1 + R2) - Koristimo 100 k za naš poznati (R1) otpornik. To nam daje "pad napona"
Iz ovoga sada možemo izračunati otpor nepoznatog (R2) otpornika, R2 = Vout * R1 / (Vin - Vout) - gdje je R1 naš otpornik od 100 k (100 000 ohma)
Korištenjem različitog otpornika u svakoj utičnici koju želite koristiti, tada možete prilagoditi kôd ovisno o utičnici koja se koristi.
Koristim 4 utičnice. Odlučio sam se za korištenje:
Poznati otpornik (x4) - 100k
Jack Plug 1 - 5.6k
Jack Plug 2 - 10k
Jack Plug 3 - 22k
Jack Plug 4 - 39k
Naravno, ovo možete proširiti i kodirati u koliko god želite.
Korak 5: Kôd
Prvo će vam trebati Arduino IDE, dostupan ovdje:
Također ćete se morati pobrinuti da imate i nekoliko Arduino biblioteka:
Adafruit NeoPixel:
u8g2:
Adafruit RTCLib:
Adafruit SleepyDog (nije obavezno):
Napomena o odabiru prave "Arduino" ploče. Prvobitno sam započeo ovaj projekt s Arduino Nano, jer su super jeftini po cijeni od £ 3 u Velikoj Britaniji, ili samo 1,50 £ ako kupujete na AliExpressu (ali nemojte imati ništa protiv čekanja od 30 do 50 dana)). Problem sa Nano -om je što je njegov SRAM 2 KB (2048 bajtova). Ova skica koristi 1728 bajtova dinamičke memorije s globalnim varijablama. To je 84% SRAM -a, ostavljajući samo 320 bajtova slobodnim za lokalne varijable. To nije bilo dovoljno i uzrokovalo bi da se Nano zaključa i zamrzne.
Pro Micro (Leonardo) ima 2.5K SRAM (2560 bajtova), što znači da ima 694 bajta slobodnih za lokalne varijable (Skica koristi 72% SRAM -a Pro Micro -a). Do sada se ovo pokazalo savršeno prikladnim i stabilnim za moju upotrebu. Ako namjeravate koristiti mnogo utičnica, razmislite o upotrebi nečega s više SRAM -a.
Što se tiče Flash pohrane, ova skica koristi 88% (25252 bajta) od 30k (ATMega328p [Nano] i ATMega32u4 [Pro Micro] imaju 32k, ali 2k je rezervirano za bootloader)
Napisao sam stotine Arduino skica tokom godina, ali sam hobist - pa imajte na umu da neki dijelovi koda mogu biti neučinkoviti ili možda postoje "bolji načini za to". Rečeno je da mi savršeno radi i zadovoljan sam s tim. Koristio sam biblioteke koje bi trebale raditi na većini ploča, bilo da se radi o AVR -u (najosnovnijem Arduinu) ili SAMD21 (imam pregršt Cortex M0 uređaja)
Htio sam prikazati drugačiju grafiku na osnovu korištenog priključka. Ako želite napraviti vlastiti, ovo je briljantan jednostavan vodič o tome kako stvoriti C niz za slike koje će se koristiti s ovim zaslonom:
sandhansblog.wordpress.com/2017/04/16/interfacing-displaying-a-custom-graphic-on-an-0-96-i2c-oled/
Za grafiku koristite PROGMEM. Npr:
static const unsigned char YOUR_IMAGE_NAME PROGMEM = {}
Po dizajnu, zaslon će "isteći" nakon 5 sekundi i vratiti se na prikaz vremena.
Većina postavki može se pronaći u Settings.h, konkretno, naziv pridruženih utikača je kodiran ovdje:
#define PLUG1 "KEYS"
#define PLUG2 "P2" #define PLUG3 "P3" #define PLUG4 "P4" #define GENERIC "NA"
Unutar Variables.h postoje i neki važni dijelovi koda
plovak R1 = 96700,0;
plovak R2 = 96300,0; plovak R3 = 96500,0; plovak R4 = 96300,0;
Ovo su ZNANJE vrijednosti otpora, u ohmima, svakog od 4 otpornika.
R1 spojen na A0, R2 na A1, R3 na A2 i R4 na A3.
Preporučljivo je izmjeriti vaše 100k otpornike pomoću multimetra i upotrijebiti točnu vrijednost otpornika. Izmjerite otpornik nakon što je sve spojeno. (Ali nije uključeno).
Prilikom odabira otpornika za vaše utičnice, pobrinite se da postoji dobar ohmski razmak između njih, a kada ih kodirate, dajte sebi lijep raspon niži i veći od vašeg otpornika. Evo šta sam koristio u svom kodu:
plovak P1_MIN = 4000,0, P1_MAX = 7000,0; // 5.6K
plovak P2_MIN = 8000.0, P2_MAX = 12000.0; // 10K plutajući P3_MIN = 20000.0, P3_MAX = 24000.0; // 22K plovak P4_MIN = 36000.0, P4_MAX = 42000.0; // 39K
Razlog za to je uzeti u obzir analogno očitanje i manje fluktuacije napona itd
Dakle, događa se sljedeće: ako je otkriveni otpor između 4000 oma i 7000 oma, pretpostavljamo da ste koristili otpornik od 5,6 k, pa će kôd ovo vidjeti kao utikač priključka 1. Ako je izmjereni otpor između 8000 oma i 12000 ohma, pretpostavka je da je to 10k otpornik i da je Jack Plug 2 i tako dalje.
Ako trebate napraviti neke otklanjanje grešaka (Ne ostavljajte bez komentara u 'produkciji' jer serijsko ispravljanje grešaka koristi dragocjenu memoriju) jednostavno uklonite komentare iz redova koje trebate na vrhu Postavki. H
//#definirati SERIAL_DEBUG
//#definiraj WAIT_FOR_SERIAL
Da biste uklonili komentare, jednostavno uklonite //…. da biste komentirali red, ponovno dodajte // na prednji dio retka.
SERIAL_DEBUG omogućava serijsko otklanjanje grešaka i upotrebu stvari kao što su (na primjer)
Serial.println (F ("hello world"));
WAIT_FOR_SERIAL je dodatni korak, što znači da se kôd neće nastaviti sve dok ne otvorite serijski monitor. Ovo pomaže da ne propustite važne serijske poruke. - OVO NIKADA NE OSTAVLJAJTE Omogućeno
Ako ostavite WAIT_FOR_SERIAL omogućenim, nećete moći koristiti držač ključa u bilo kojem okruženju "stvarnog svijeta" jer će zaglaviti čekajući Arduino IDE serijski monitor prije nego što nastavi u glavnu petlju skice. Nakon što završite sa otklanjanjem grešaka, provjerite da li ponovo komentirate ovu liniju i ponovo otpremite svoju skicu za produkciju/završetak.
Kada koristim opciju SERIAL_DEBUG, moj kôd sadrži sljedeće:
#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 (socket+1); Serial.print (F ("ima otpornost na:")); Serial.println (otpor); } #endif
Posljednja linija Serial.print reći će vam koliki je otpor, u ohmima, posljednje umetnute utičnice. Tako da ovu skicu možete koristiti i kao svojevrsni ohmmetar za provjeru otpora utikača.
Korak 6: Napomene
Mislim da sam sve pokrio, ali ostavite komentar i potrudit ću se da pročitam i odgovorim kad budem mogao:)
Isprike zbog pomalo lošeg videa - nemam stativ, postavke za snimanje ili odgovarajući radni prostor, da tako kažem, pa je ovo snimljeno (loše) držeći telefon u jednoj ruci i pokušavajući ga demonstrirati drugom.
Hvala na čitanju.
Preporučuje se:
Jednostavan Robo-Dog (od klavirskih ključeva, pištolja za igračke i miša): 20 koraka (sa slikama)
Jednostavan Robo-Dog (od klavirskih ključeva, pištolja za igračke i miša): O, Azerbejdžan! Vatrena zemlja, veliko gostoprimstvo, ljubazni ljudi i lijepe žene (… oprosti, ženo! Naravno da imam samo oči za tebe, moja gözəl balaca ana ördəkburun žena!). Ali iskreno, ovo je jako teško mjesto za proizvođača, posebno kada
Raspberry Pi RF mrežne utičnice na daljinsko upravljanje (utičnice): 6 koraka
Raspberry Pi RF daljinski upravljane mrežne utičnice (utičnice): Kontrolirajte jeftine mrežne utičnice (zidne utičnice) od 433MHz pomoću Raspberry Pi. Pi može naučiti kontrolne kodove koji se šalju sa daljinskog upravljača utičnica i koristiti ih pod programskom kontrolom za aktiviranje bilo koje ili svih udaljenih utičnica u cijeloj kući
DIY Easy držač za slušalice držač: 6 koraka
DIY Jednostavna vješalica za držače slušalica: Napravite vlastitu jednostavnu vješalicu za držače za slušalice od jeftinih materijala. Kao učitelj, dosadilo mi je od neurednih slušalica posvuda u računarskoj laboratoriji i trebalo mi je rješenje. Nadajmo se da će vam ovo pomoći da uštedite glavobolje i novac
Držač fleš diska za USB palac-NAPRAVITE DRŽAČ ZA POVEZANJE: 5 koraka
Držač fleš diska za USB palac-NAPRAVITE DRŽAČ ZA POVEZIVANJE: Umorni ste od toga da imate USB memorijski pogon sve vreme oko vrata? Budite moderni tako što ćete napraviti držač za pojaseve od sportskog upaljača za cigarete
Besplatni Diy Zune, IPod, IPhone, PDA, držač za mobitel ili gadžet/držač/stalak: 6 koraka
Besplatni Diy Zune, IPod, IPhone, PDA, držač za mobitel ili gadžet/držač/stalak: Rečeno je da je nužnost majka izuma. Često sam otkrivao da je to istina. Prošla sedmica nije bila izuzetak. Provodio sam neumjereno mnogo vremena na svom računaru u potrazi za poslom. Budući da sam nedavno zamijenio svoj računar poslužiteljem