Obsah:

Držiak kľúča pre gitaru Arduino s rozpoznávaním Jacka a OLED: 7 krokov
Držiak kľúča pre gitaru Arduino s rozpoznávaním Jacka a OLED: 7 krokov

Video: Držiak kľúča pre gitaru Arduino s rozpoznávaním Jacka a OLED: 7 krokov

Video: Držiak kľúča pre gitaru Arduino s rozpoznávaním Jacka a OLED: 7 krokov
Video: CS50 2013 - Week 9 2024, November
Anonim
Image
Image
Držiak kľúča pre gitaru Arduino s rozpoznávaním Jacka a OLED
Držiak kľúča pre gitaru Arduino s rozpoznávaním Jacka a OLED

Úvod:

Tento návod bude podrobne popisovať zostavu môjho držiaka kľúča doplnku Guitar Jack na báze Arduino

Toto je môj vôbec prvý pokyn, takže sa majte so mnou, pretože môžem priebežne vykonávať zmeny / aktualizácie

Krok 1: Diely a nástroje

Diely a nástroje
Diely a nástroje
Diely a nástroje
Diely a nástroje
Diely a nástroje
Diely a nástroje

Väčšinu dielov som kúpil na Amazon.co.uk alebo eBay, niektoré som už nakopol - Tu je zoznam toho, čo budete potrebovať.

Odkazy na Amazon sú všetky odkazy na pobočky, inde ich môžete nájsť aj lacnejšie - Amazon Prime používam často, takže Amazon bol môj obľúbený program.

Chcel som, aby bola táto zostava relatívne lacná a priateľská k rozpočtu. Ak chcete, môžete použiť väčšiu obrazovku TFT, ako aj iné Arduino. Nepoužívajte NANO, pretože sa kvôli vysokému využitiu pamäte zrúti. Kód využíva asi 72% pamäte RAM Pro Micro a je stabilný, ale pri testovaní NANO havaruje a zamrzne.

(Viac podrobností v kroku Kód.)

ČASTI

1x Arduino Pro Micro -

1x 0,96 OLED so žltým a modrým displejom -

4x WS2812 „Pixely“-

1x DS3231 RTC -

4x 1/4 mono jack (alebo koľko chcete) - Amazon (zlatý) alebo Amazon (strieborný) alebo eBay.co.uk

1x balíček zmiešaných odporov -

4x 1/4 gitarové zdviháky -

1x Predlžovací kábel Micro USB -

4x skrutky M3

NÁSTROJE A MATERIÁLY

- Spájkovačka (toto som kúpil - TS100 - s ďalšími tipmi

- Spájka

- Horúca lepiaca pištoľ (https://amzn.to/2UTd9PN)

- Drôt (https://amzn.to/2VK2ILU)

- Nožnice na strihanie/odizolovanie (https://amzn.to/2KzqUzp)

- 3D tlačiareň alebo služba 3D tlače

VOLITELNÉ - Tieto položky sú voliteľné, v závislosti od toho, ako sa rozhodnete všetko prepojiť

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

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

- Hlavičky DPS (https://amzn.to/2X7RjWf)

Krok 2: 3D tlač puzdra

3D tlač puzdra
3D tlač puzdra
3D tlač puzdra
3D tlač puzdra
3D tlač puzdra
3D tlač puzdra
3D tlač puzdra
3D tlač puzdra

Vytlačil som svoje na svojom Creality CR-10S pomocou čierneho PLA+ (https://amzn.to/2X2SDtE)

Tlačil som vo výške 0,2 vrstvy, s 25% výplňou.

Krok 3: Dajte to všetko dohromady + schéma

Všetko dohromady + schéma
Všetko dohromady + schéma
Všetko dohromady + schéma
Všetko dohromady + schéma
Všetko dohromady + schéma
Všetko dohromady + schéma
Všetko dohromady + schéma
Všetko dohromady + schéma

Ako sa rozhodnete pripojiť svoje Arduino, je čisto na vás - osobne som sa rozhodol urobiť si takpovediac „štít“. Aby som vyrobil štít, spájkoval som ženské hlavičky na veroboard, aby zodpovedali Pro Micro, potom som pridal koľajnicu +5v a GND na opačné konce. Použil som prepojovací vodič na pripojenie +5v k mojej teraz 5v 'koľajnici' a urobil som to isté pre GND. Potom som pridal svoje odpory 4x 100k, jeden koniec pripojený na +5v pre všetky, a potom sa druhá strana pripojila k A0, A1, A2 a A3. Potom som pridal skrutkové svorky na analógové piny A0, A1, A2 a A3 a tiež na piny 2 (SDA), 3 (SCL) a 4

Zmerajte zapojenie a odstrihnite ho na zodpovedajúcu dĺžku. Najprv som začal s LED diódami WS2812 Pixel - FIRST WS2812 LED sa pripája na +5v z Arduina, GND z Arduina a DIN sa pripája na pin 4. Potom sú zvyšné 3 spojené dohromady a reťazí všetkých 5v> 5v, GND> GND piny a DOUT z jedného pixelu, pripojí sa k DIN druhého. Akonáhle sú spájkované, jemne ich zatlačte do štvorcových otvorov v hornej časti a vložte horúce lepidlo na svoje miesto, aby ste ochránili zadnú stranu pred náhodným spojením alebo skratom.

Po LED diódach som potom zaskrutkoval zásuvky pre gitarový konektor. Jeden pin každého sa pripája k GND a potom sa druhý pin každého pripája k A0, A1, A2 a A3. 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.

Ďalej som spájkoval 4 vodiče s konektormi OLED a čo najviac orezal prebytočnú spájku. Chcete pripojiť káble zo zadnej časti obrazovky, takže spájkujete s prednou časťou obrazovky.

Dávajte pozor na špendlíky! Niektoré OLED majú GND zvonku, potom VCC, niektoré majú VCC zvonka a potom GND

Po spájkovaní a čo najväčšom orezaní alebo sploštení spájkovacieho spoja jemne zatlačte obrazovku na miesto. Podľa dizajnu je to trochu tesné, ale uvedomte si, že to môžu ovplyvniť rôzne tolerancie tlače, a preto budete možno musieť vykonať menšie dodatočné spracovanie, aby to vyhovovalo. Akonáhle je na mieste, položte horúce lepidlo cez každý zo 4 rohov, aby držalo na svojom mieste.

Pripojte všetko tak, aby zodpovedalo schéme a obrázkom, a akonáhle budete spokojní, môžete za horúca prilepiť aj hodiny Pro Micro a RTC a potom k zariadeniu Pro Micro pripojiť rozšírenie USB.

Použil som rozšírenie micro USB, aby a) bolo možné použiť USB na zaistenie napájania, ale čo viac, b) aby bolo možné v prípade potreby preprogramovať Pro Micro bez toho, aby bolo potrebné všetko rozoberať.

Akonáhle budete spokojní, skrinku spolu priskrutkujte pomocou 4 skrutiek

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 časť návrhu pre všetky účely a účely funguje ako „ohmmeter“. Ohmmeter je prístroj na meranie elektrického odporu. Väčšina multimetrov má túto funkciu, pričom vyberiete stupnicu a potom zmeriate odpor, aby ste zistili jej hodnotu. Pracovným princípom je, že k +ve pripojíte odpor ZNAMENANÝ, ktorý sa potom spojí s NEZNÁMYM odporom, ktorý sa pripojí na -ve. Spoj medzi dvoma odpormi sa pripája k analógovému kolíku Arduino, aby mohol čítať napätie a vypočítať odpor.

Funguje ako delič napätia a vypočítava odpor neznámeho rezistora.

Ako sieť deličov napätia rezistorov R1 a R2, Vout = Vin * R2 / (R1 + R2) - Na náš známy (R1) odpor používame 100k. To nám dáva „pokles napätia“

Z toho teraz môžeme vypočítať odpor neznámeho (R2) odporu, R2 = Vout * R1 / (Vin - Vout) - kde R1 je náš odpor 100 k (100 000 ohmov)

Použitím iného odporu v každom konektore, ktorý chcete použiť, potom môžete kód prispôsobiť podľa použitého konektora.

Používam 4 konektory jack. Rozhodol som sa použiť:

Známy odpor (x4) - 100k

Zásuvka konektora 1 - 5,6 tis

Zásuvka konektora 2 - 10 tis

Zásuvka konektora 3 - 22k

Zásuvka konektora 4 - 39 tis

Môžete to samozrejme rozšíriť a kódovať toľko, koľko chcete.

Krok 5: Kód

Kód
Kód

Najprv budete potrebovať Arduino IDE, dostupné odtiaľto:

Budete sa tiež musieť uistiť, že máte niekoľko knižníc Arduino:

Adafruit NeoPixel:

u8g2:

Adafruit RTCLib:

Adafruit SleepyDog (voliteľné):

Poznámka k výberu správnej dosky „Arduino“. Pôvodne som začal s týmto projektom s Arduino Nano, pretože sú veľmi lacné v Británii za približne 3 až 4 libry alebo pri nákupe na AliExpress už za 1,50 libry (ale nevadí vám 30-50-dňové čakanie). Problém s Nano je, že jeho SRAM je 2 KB (2048 bajtov). Táto skica používa 1728 bajtov dynamickej pamäte s globálnymi premennými. To je 84% SRAM, pričom pre lokálne premenné zostáva voľných iba 320 bytov. To bolo nedostatočné a spôsobilo by to, že sa Nano zamkne a zamrzne.

Pro Micro (Leonardo) má 2,5 kB SRAM (2560 bajtov), čo znamená, že pre lokálne premenné je 694 bajtov voľných (Skica používa 72% pamäte SRAM Pro Pro). Zatiaľ sa to ukázalo ako úplne adekvátne a stabilné pre moje použitie. Ak máte v úmysle použiť veľa konektorov jack, potom by ste mali zvážiť použitie niečoho s väčším počtom SRAM.

Pokiaľ ide o úložisko Flash, táto skica používa 88% (25252 bajtov) z 30 kB (modely ATMega328p [Nano] a ATMega32u4 [Pro Micro] majú 32 kB, ale 2 kB je vyhradených pre zavádzač)

Za tie roky som napísal stovky skíc Arduina, ale som fanda - preto majte na pamäti, že niektoré časti kódu môžu byť neúčinné alebo môžu existovať scenáre „lepšie spôsoby, ako to urobiť“. Ako sa hovorí, funguje to na mňa perfektne a som s ním spokojný. Použil som knižnice, ktoré BY MALI fungovať na väčšine dosiek, či už je to AVR (najzákladnejšie Arduino) alebo SAMD21 (mám niekoľko zariadení Cortex M0)

Chcel som tiež zobraziť inú grafiku na základe použitého konektora. Ak si chcete vytvoriť svoj vlastný, je to vynikajúci jednoduchý návod, ako vytvoriť pole C pre obrázky, ktoré sa majú použiť s týmto displejom:

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

Na grafiku určite používajte PROGMEM. Napr.

static const unsigned char YOUR_IMAGE_NAME PROGMEM = {}

Podľa návrhu sa obrazovka po 5 sekundách „vypne“a vráti sa k zobrazeniu času.

Väčšinu nastavení nájdete v časti Settingss.h, konkrétne názov príslušných konektorov je kódovaný tu:

#define PLUG1 "KĽÚČE"

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

Vnútri Variables.h je tiež niekoľko dôležitých častí kódu

plavák R1 = 96700,0;

plavák R2 = 96300,0; plavák R3 = 96500,0; plavák R4 = 96300,0;

Toto sú ZNAMENÉ hodnoty odporu v ohmoch každého zo 4 odporov.

R1 je pripojený k A0, R2 k A1, R3 k A2 a R4 k A3.

Odporúča sa zmerať 100k odpory pomocou multimetra a použiť presnú hodnotu odporu. Vykonajte meranie odporu, keď je všetko zapojené. (Ale nie je zapnuté).

Pri výbere rezistorov pre konektory jack dbajte na to, aby medzi nimi bola dobrá ohmová medzera, a pri ich kódovaní si dajte pekný rozsah nižší a vyšší ako zvolený odpor. Tu je to, čo som použil vo svojom kóde:

plavák P1_MIN = 4000,0, P1_MAX = 7000,0; // 5,6 tis

plavák 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; // 39K

Dôvodom je vysvetlenie analógového čítania a menších výkyvov napätia atď

Čo sa teda stane, ak je detekovaný odpor medzi 4 000 ohm a 7 000 ohmov, predpokladáme, že ste použili odpor 5,6 k, a preto kód bude tento kód vidieť ako konektor Jack 1. Ak je nameraný odpor medzi 8 000 ohm a 12 000 ohmov, predpoklad je, že je to 10k odpor a je to Jack Plug 2 a tak ďalej.

Ak potrebujete vykonať nejaké ladenie (Nenechávajte nekomentované vo „produkcii“, pretože sériové ladenie používa drahocenný baran), jednoducho odkomentujte riadky, ktoré požadujete, v hornej časti Nastavenia.h

//#definujte SERIAL_DEBUG

//#definujte WAIT_FOR_SERIAL

Ak chcete zrušiť komentár, jednoducho odstráňte //…. ak chcete komentovať riadok späť, znova pridajte // na začiatok riadka.

SERIAL_DEBUG umožňuje sériové ladenie a používanie vecí, ako sú (napríklad)

Serial.println (F („ahoj svet“));

WAIT_FOR_SERIAL je ďalším krokom, to znamená, že kým kód neotvoríte, nebude pokračovať. Pomáha to zaistiť, aby vám neunikli žiadne dôležité sériové správy. - NIKDY NENECHÁVAJTE TOTO POVOLENÉ

Ak necháte WAIT_FOR_SERIAL povolený, nebudete môcť používať držiak kľúča v žiadnom prostredí „skutočného sveta“, pretože bude zaseknutý pri čakaní na sériový monitor Arduino IDE, aby mohol pokračovať do hlavnej slučky náčrtu. Po dokončení ladenia znova odkomentujte tento riadok a znova nahrajte svoj náčrt na výrobu/dokončenie.

Pri použití možnosti SERIAL_DEBUG môj kód obsahuje nasledujúce:

#ifdef SERIAL_DEBUG

Serial.print (F ("AKTÍVNY JACK =")); Serial.println (ACTIVE_JACK); int len = sizeof (SOCKET_1234_HAS_PLUGTYPE_X)/sizeof (SOCKET_1234_HAS_PLUGTYPE_X [0]); pre (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á podobnosť:")); Serial.println (odpor); } #koniec Ak

Posledná rada Serial.print vám povie, aký je odpor posledného vloženého konektora v ohmoch. Túto skicu teda môžete použiť aj ako druh ohmmetra na kontrolu odporu konektora konektora.

Krok 6: Poznámky

Myslím, že som pokryl všetko, ale prosím, napíšte komentár a ja sa budem snažiť prečítať a odpovedať, kedykoľvek budem môcť:)

Ospravedlnenie za trochu zlé video - nemám statív, nastavenie prekrývania ani takpovediac vhodný pracovný priestor, takže toto bolo natočené (zle), ako držíte telefón v jednej ruke a druhou sa ho pokúšate predviesť.

Vďaka za prečítanie.

Odporúča: