Obsah:

Držák klíče pro kytaru Arduino Jack s rozpoznáváním jacku a OLED: 7 kroků
Držák klíče pro kytaru Arduino Jack s rozpoznáváním jacku a OLED: 7 kroků

Video: Držák klíče pro kytaru Arduino Jack s rozpoznáváním jacku a OLED: 7 kroků

Video: Držák klíče pro kytaru Arduino Jack s rozpoznáváním jacku a OLED: 7 kroků
Video: DIY Morning Routine - 25 Life HACKS to Get Ready Fast for BACK TO SCHOOL! 2024, Červenec
Anonim
Image
Image
Držák klíče pro kytaru Arduino Jack s rozpoznáváním jacku a OLED
Držák klíče pro kytaru Arduino Jack s rozpoznáváním jacku a OLED

Intro:

Tento návod podrobně popisuje sestavení mého držáku klíče pluginu Guitar Jack na bázi Arduina

Toto je můj vůbec první pokyn, takže mějte prosím se mnou, protože na cestě mohu provádět změny / aktualizace

Krok 1: Díly a nástroje

Díly a nástroje
Díly a nástroje
Díly a nástroje
Díly a nástroje
Díly a nástroje
Díly a nástroje

Většinu dílů jsem koupil z Amazon.co.uk nebo eBay, některé jsem už nakopával - zde je seznam toho, co budete potřebovat.

Odkazy na Amazon jsou všechny odkazy na affiliate partnery, jinde je můžete sehnat levněji - Amazon Prime používám hodně, takže Amazon byl náhodou můj go -to.

Chtěl jsem, aby tato stavba byla poměrně levná a přátelská k rozpočtu. Pokud chcete, můžete použít větší TFT obrazovku, stejně jako jiné Arduino. Nepoužívejte NANO, protože kvůli vysokému využití paměti se zhroutí. Kód využívá asi 72% RAM Pro Micro a je stabilní, ale při testování se NANO zhroutí a zamrzne.

(Více podrobností v kroku Kód.)

DÍLY

1x Arduino Pro Micro -

1x 0,96 OLED se žlutým a modrým displejem -

4x WS2812 'Pixels' -

1x DS3231 RTC -

4x 1/4 Mono Jack (nebo tolik, kolik chcete) - Amazon (zlato) nebo Amazon (stříbro) nebo eBay.co.uk

1x Mixed Resistor Pack -

4x 1/4 kytarové zvedáky -

1x Prodlužovací kabel kabelu Micro USB -

4x šrouby M3

NÁŘADÍ A MATERIÁLY

- Páječka (Toto je ta, kterou jsem koupil - TS100 - jak přišla s dalšími tipy

- Pájka

- Pistole na lepidlo (https://amzn.to/2UTd9PN)

- Wire (https://amzn.to/2VK2ILU)

- Odřezávače/odizolovače drátu (https://amzn.to/2KzqUzp)

- 3D tiskárna nebo služba 3D tisku

VOLITELNÉ - Tyto položky jsou volitelné, podle toho, jak se rozhodnete vše propojit

- Veroboard/Stripboard (https://amzn.to/2KzMFPE)

- Šroubové konektory (2 póly | 3 póly | 4 póly)

- Záhlaví DPS (https://amzn.to/2X7RjWf)

Krok 2: 3D tisk pouzdra

3D tisk pouzdra
3D tisk pouzdra
3D tisk pouzdra
3D tisk pouzdra
3D tisk pouzdra
3D tisk pouzdra
3D tisk pouzdra
3D tisk pouzdra

Vytiskl jsem svůj na svém Creality CR-10S pomocí Black PLA+ (https://amzn.to/2X2SDtE)

Tiskl jsem ve výšce 0,2 vrstvy s 25% výplní.

Krok 3: Dát to všechno dohromady + schéma

Dát to všechno dohromady + schéma
Dát to všechno dohromady + schéma
Dát to všechno dohromady + schéma
Dát to všechno dohromady + schéma
Dát to všechno dohromady + schéma
Dát to všechno dohromady + schéma
Dát to všechno dohromady + schéma
Dát to všechno dohromady + schéma

Jak se rozhodnete připojit své Arduino, je zcela na vás - osobně jsem se rozhodl udělat ze sebe takříkajíc „štít“. Abych vytvořil štít, připájel jsem ženské záhlaví na veroboard, aby odpovídalo Pro Micro, a poté jsem přidal lištu +5v a GND na opačných koncích. Použil jsem propojovací vodič k připojení +5v k mé nyní 5v 'kolejnici' a udělal jsem to samé pro GND. Poté jsem přidal své odpory 4x 100k, jeden konec připojený ke všem +5v a poté se druhá strana připojí k A0, A1, A2 a A3. Poté jsem přidal šroubové svorky na analogové piny A0, A1, A2 a A3 a také na piny 2 (SDA), 3 (SCL) a 4

Změřte zapojení a ustřihněte příslušné délky. Nejprve jsem začal s LED diodami WS2812 Pixel - FIRST WS2812 LED se připojuje k +5v z Arduina, GND z Arduina a DIN se připojuje na Pin 4. Poté jsou zbývající 3 spojeny dohromady, řetězí všech 5v> 5v, GND> GND piny a DOUT z jednoho pixelu, připojí se k DIN druhého. Jakmile jsou připájeny, jemně je zatlačte do čtvercových otvorů v horní části a na místo naneste horké lepidlo a také ochraňte zadní část před náhodným spojením nebo zkratem.

Po diodách LED jsem pak zašrouboval zásuvky pro kytarové konektory. Jeden pin každého se připojí k GND a poté druhý pin každého se připojí k A0, A1, A2 a A3 odpovídajícím způsobem. Takže to je zásuvka 1 až A0, zásuvka 2 až A1, zásuvka 3 až A2 a zásuvka 4 až A3.

Dále jsem připájel 4 dráty k OLED spojům a co nejvíce ořezal přebytečnou pájku. Chcete připojit kabely ze zadní části obrazovky, takže pájíte na přední část obrazovky.

Dávejte pozor na špendlíky! Některé OLED mají GND na vnější straně, pak VCC, některé mají VCC na vnější straně a pak GND

Jakmile pájíte a co nejvíce oříznete nebo zploštíte pájecí spojení, jemně zatlačte obrazovku na její místo. Je to trochu těsné přizpůsobení designu, ale uvědomte si, že to mohou ovlivnit různé tolerance tisku, a proto možná budete muset provést nějaké menší následné zpracování, aby to vyhovovalo. Jakmile je na svém místě, položte horké lepidlo přes každý ze 4 rohů, aby drželo na svém místě.

Připojte vše tak, aby odpovídalo schématu a obrázkům, a až budete šťastní, můžete za horka přilepit také hodiny Pro Micro a RTC a poté připojit rozšíření USB k zařízení Pro Micro.

Použil jsem rozšíření micro USB, takže a) USB lze použít k napájení, ale ještě více, b) aby bylo možné v případě potřeby přeprogramovat Pro Micro, aniž byste vše rozdělili

Jakmile budete šťastní, zašroubujte pouzdro dohromady pomocí 4 šroubů

Krok 4: Zásuvky

Zástrčky!
Zástrčky!
Zástrčky!
Zástrčky!
Zástrčky!
Zástrčky!

Funguje to tak, že část návrhu pro všechny účely a účely funguje jako „ohmmetr“. Ohmmetr je nástroj pro měření elektrického odporu. Většina multimetrů má tuto funkci, kdy vyberete měřítko a poté změříte odpor, abyste zjistili jeho hodnotu. Pracovní princip spočívá v tom, že k +ve připojíte odpor KNOWN, který se pak připojí k NEZNÁMÉmu odporu, který se připojí k -ve. Spoj mezi dvěma odpory se připojuje k analogovému kolíku Arduino, aby mohl číst napětí a vypočítat odpor.

Funguje jako dělič napětí a vypočítává odpor neznámého rezistoru.

Jako síť děličů napětí odporů R1 a R2, Vout = Vin * R2 / (R1 + R2) - Používáme 100k pro náš známý (R1) odpor. To nám dává „pokles napětí“

Z toho nyní můžeme vypočítat odpor neznámého (R2) rezistoru, R2 = Vout * R1 / (Vin - Vout) - kde R1 je náš odpor 100 k (100 000 ohmů)

Použitím jiného odporu v každém konektoru, který chcete použít, pak můžete upravit kód podle použitého konektoru.

Používám 4 konektory jack. Rozhodl jsem se použít:

Známý odpor (x4) - 100k

Jack konektor 1 - 5,6 tis

Jack konektor 2 - 10 tis

Jack konektor 3 - 22k

Jack Plug 4 - 39 tis

Samozřejmě to můžete rozšířit a kódovat v libovolném počtu.

Krok 5: Kód

Kód
Kód

Nejprve budete potřebovat Arduino IDE, dostupné odtud:

Budete se také muset ujistit, že máte několik knihoven Arduino:

Adafruit NeoPixel:

u8g2:

Adafruit RTCLib:

Adafruit SleepyDog (volitelně):

Poznámka k výběru správné desky „Arduino“. Původně jsem tento projekt zahájil s Arduino Nano, protože jsou velmi levné za přibližně 3 až 4 GBP ve Velké Británii, nebo za pouhých 1,50 GBP, pokud nakupujete na AliExpress (ale nevadí vám 30-50denní čekání). Problém s Nano je, že jeho SRAM je 2 KB (2048 bajtů). Tato skica používá 1728 bajtů dynamické paměti s globálními proměnnými. To je 84% SRAM, takže pro místní proměnné zbývá jen 320 bajtů. To bylo nedostatečné a způsobilo by to, že se Nano zamklo a zamrzlo.

Pro Micro (Leonardo) má 2,5 kB SRAM (2560 bajtů), což znamená, že pro lokální proměnné je 694 bajtů volných (Skica využívá 72% SRAM Pro Pro). Zatím se to ukázalo jako naprosto adekvátní a stabilní pro mé použití. Pokud máte v úmyslu použít mnoho konektorů jack, možná budete chtít zvážit použití něčeho s více SRAM.

Pokud jde o úložiště Flash, tato skica využívá 88% (25252 bajtů) z 30 kB (ATMega328p [Nano] a ATMega32u4 [Pro Micro] mají 32 kB, ale 2 kB je vyhrazeno pro zavaděč)

Za ta léta jsem napsal stovky skic Arduina, ale jsem fanda - takže mějte na paměti, že některé části kódu mohou být neúčinné nebo mohou existovat scénáře „lepších způsobů, jak to udělat“. To je řečeno, funguje to perfektně pro mě a jsem s tím spokojen. Použil jsem knihovny, které BY MĚLY fungovat na většině desek, ať už je to AVR (nejzákladnější Arduino) nebo SAMD21 (mám několik zařízení Cortex M0)

Chtěl jsem také zobrazit jinou grafiku na základě použitého konektoru. Pokud si chcete vytvořit vlastní, je to skvělý jednoduchý návod, jak vytvořit pole C pro obrázky, které budou použity s tímto displejem:

sandhansblog.wordpress.com/2017/04/16/interfacing-displaying-a-custom-graphic-on-an-0-96-i2c-oled/

Pro svoji grafiku určitě použijte PROGMEM. Např:

static const unsigned char YOUR_IMAGE_NAME PROGMEM = {}

Podle návrhu se obrazovka po 5 sekundách „vyprší“a vrátí se k zobrazení času.

Většinu nastavení najdete v Settingss.h, konkrétně zde jsou kódovány názvy příslušných konektorů:

#define PLUG1 "KLÍČE"

#define PLUG2 "P2" #define PLUG3 "P3" #define PLUG4 "P4" #define GENERIC "NA"

Uvnitř proměnných je také několik důležitých částí kódu

plovák R1 = 96700,0;

float R2 = 96300,0; plovák R3 = 96500,0; plovák R4 = 96300,0;

Toto jsou ZNAMENÉ hodnoty odporu v ohmech každého ze 4 odporů.

R1 připojeno k A0, R2 k A1, R3 k A2 a R4 k A3.

Doporučujeme změřit vaše 100k odpory pomocí multimetru a použít přesnou hodnotu odporu. Jakmile je vše připojeno, proveďte měření odporu. (Ale není zapnuto).

Při výběru odporů pro konektory jack se ujistěte, že je mezi nimi dobrá ohmová mezera, a při jejich kódování si dejte pěkný rozsah nižší a vyšší než vámi zvolený odpor. Zde je to, co jsem použil ve svém kódu:

float P1_MIN = 4000,0, P1_MAX = 7000,0; // 5,6 tis

float P2_MIN = 8000.0, P2_MAX = 12000.0; // 10K float P3_MIN = 20000,0, P3_MAX = 24000,0; // 22K float P4_MIN = 36000.0, P4_MAX = 42000.0; // 39 tis

Důvodem je vysvětlení analogových hodnot a menších kolísání napětí atd

Co se tedy stane, pokud je detekovaný odpor mezi 4 000 ohmy a 7 000 ohmy, předpokládáme, že jste použili odpor 5,6 k, a proto kód bude toto vidět jako konektor Jack 1. Pokud je naměřený odpor mezi 8 000 ohmy a 12 000 ohmů, předpoklad je, že je to 10k odpor a je to Jack Plug 2 a tak dále.

Pokud potřebujete provést nějaké ladění (Nenechávejte komentáře v 'produkci', protože sériové ladění využívá drahocenný RAM), jednoduše odkomentujte řádky, které požadujete v horní části Nastavení.h

//#definujte SERIAL_DEBUG

//#definujte WAIT_FOR_SERIAL

Chcete -li odkomentovat, jednoduše odeberte //…. Chcete-li řádek komentovat zpět, znovu přidejte // na začátek řádku.

SERIAL_DEBUG umožňuje sériové ladění a používání věcí, jako jsou (například)

Serial.println (F („ahoj svět“));

WAIT_FOR_SERIAL je další krok, to znamená, že dokud neotevřete Serial Monitor, kód nebude pokračovat. Díky tomu nezmeškáte žádné důležité sériové zprávy. - NIKDY NENECHÁVEJTE TOTO POVOLENO

Pokud necháte WAIT_FOR_SERIAL povolený, nebudete moci použít držák klíče v žádném prostředí „skutečného světa“, protože bude zaseknutý a čeká na sériový monitor Arduino IDE, než bude moci pokračovat do hlavní smyčky náčrtu. Jakmile dokončíte ladění, ujistěte se, že jste znovu odkomentovali tento řádek, a znovu nahrajte svůj náčrt k produkci/dokončení.

Při použití možnosti SERIAL_DEBUG můj kód obsahuje následující:

#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 (zásuvka+1); Serial.print (F ("má resitance:")); Serial.println (odpor); } #endif

Poslední řada Serial.print vám řekne, jaký je odpor posledního vloženého konektoru v ohmech. Tuto skicu tedy můžete také použít jako druh ohmmetru ke kontrole odporu konektoru konektoru.

Krok 6: Poznámky

Myslím, že jsem vše probral, ale prosím napište komentář a udělám vše, co bude v mých silách, abych si to přečetl a odpověděl:)

Omlouvám se za poněkud chudé video - nemám stativ, nastavení překódování ani takříkajíc pořádný pracovní prostor, takže toto bylo natočeno (špatně), když jsem držel telefon v jedné ruce a druhou se ho pokoušel předvést.

Děkuji za přečtení.

Doporučuje: