Inhoudsopgave:

Geluidsschakelaar: 9 stappen
Geluidsschakelaar: 9 stappen

Video: Geluidsschakelaar: 9 stappen

Video: Geluidsschakelaar: 9 stappen
Video: Geneva Model S 3D - De Opera Webshop 2024, Juli-
Anonim
Geluidswisselaar
Geluidswisselaar

Heb je ooit je muziek harder gezet op je werk en had je niet door dat iemand met je probeerde te praten? Erger nog, heb je ooit op je werk willen slapen, maar had je geen goede manier om wakker te worden als iemand (zoals je baas) op het punt stond je hokje binnen te komen? Ik heb. Om deze problemen op te lossen heb ik de op Arduino gebaseerde SoundSwitcher uitgevonden. In principe gebruikt dit 6 transistors om te schakelen tussen een geluidsbron (in mijn geval een iPod) en Ladyada's Wave-schild om je te laten weten wat er aan de hand is. U kunt de Arduino vervolgens aansluiten op elk type sensor dat u maar wilt. De mijne is bijvoorbeeld verbonden met een Parallax Ping ultrasone afstandsmeter, microfoon, deurbelknop en computer (waarschuwingen bij een nieuwe e-mail). Je zou verder kunnen gaan door een fotoweerstand aan te sluiten om te detecteren wanneer je mobiele telefoon overgaat (het scherm licht op), of een Parallax CH4-sensor, zodat je een vroege waarschuwing krijgt voor het verhogen van het methaangehalte in je hokje omdat je hokgenoot te veel had kool bij de lunch. Hoe dan ook, de meesten van jullie hebben dat probleem waarschijnlijk niet (ik wou dat ik het niet had). Naast wat het project eigenlijk doet, geeft het ook instructies over het converteren van tekst naar een wav-bestand en het overzetten van bestanden naar de SD-kaart op de Arduino via Serial. Hopelijk kunnen deze nuttig zijn voor anderen in hun projecten. OPMERKING: ik ben vrij nieuw in al deze dingen, dus er is geen garantie dat ik de dingen goed doe. Dit is het eerste project dat ik ooit heb ontworpen met transistors, dus misschien mis ik ergens wat doppen en diodes… Als iemand tips heeft hoor ik het graag en neem ik het mee.

Stap 1: Onderdelen

Onderdelen
Onderdelen
Onderdelen
Onderdelen

1- Arduino1- Wave Shield (Ladyada)6 - 2n3904 transistors6 - 330 Ohm weerstanden6 - 22 Ohm weerstanden2 - 10k Ohm weerstanden (pullups voor knoppen)2 - knoppen2 - Stereo mannelijke hoofdtelefoonconnectoren1 - vrouwelijke stereo hoofdtelefoonconnector Welke sensoren u ook wilt, ik heb gedaan1 - Microfoon1 - Parallax Ping Ultrasone afstandsmeter1- Fotocel1 - Computer met een Ruby-script dat e-mail controleert en via seriële verbinding met de Arduino maakt

Stap 2: Transistors

Transistors
Transistors

Transistors worden voornamelijk gebruikt om dingen te versterken of als schakelaars. In dit geval gebruik ik de transistors als schakelaar. Wanneer ik de Arduino-pin hoog zet, laat de transistor geluid van het apparaat dat erop is aangesloten naar mijn oortelefoons komen. Met drie transistors aan elke kant kan ik de grond en de linker en rechter stereokanalen voor elke geluidsbron schakelen. Ik heb geëxperimenteerd met verschillende weerstanden en heb deze gekozen. De transistors worden niet heet en de weerstand van de transistor zelf is erg laag wanneer de Arduino-pin die erop is aangesloten hoog is. Dit is belangrijk zodat ik een goed, ongedempt geluid kan krijgen. Zoals je in het schema in de volgende stap kunt zien, zijn de transistors elk zo verbonden dat de basis naar de Arduino-pin gaat om deze te besturen (met een weerstand ertussen). De emitter is zowel op aarde (met een weerstand) als op de geluidsingang aangesloten. De collector is verbonden met de geluidsuitvoer naar de koptelefoon. Hier is een goede webpagina over het gebruik van transistors als schakelaars

Stap 3: Verbind alles samen

Verbind het allemaal samen
Verbind het allemaal samen

Het schema is vrij eenvoudig. Een ding om in gedachten te houden is dat het golfschild een aantal pinnen op de Arduino gebruikt, dus blijf daar uit de buurt (ik heb ze met soldeer op mijn bord ingevuld). Ik gebruikte pinnen 8 en 9 voor transistors (8 speelt golfschild, 9 speelt externe geluidsbron). Analoge pin 0 werd gebruikt voor de microfoon (het werkt echter niet zo goed, ik ben hier mee bezig). Analoge pin 1 wordt gebruikt voor de knop "Negeren". Wanneer deze knop wordt ingedrukt, worden alle sensoren gedurende een vooraf gedefinieerde tijd genegeerd. Analoge pin 2 is een "deurbel". Er zijn nog wat gratis pinnen voor andere dingen. Ik ben van plan een fotoweerstand toe te voegen die ik tegen het scherm van een mobiele telefoon plaats om te detecteren wanneer deze overgaat op analoge pin 3. Ik zal dat hier toevoegen zodra ik het heb uitgeprobeerd.

Stap 4: Sensoren

Sensoren
Sensoren

Op dit moment gebruik ik de volgende "sensoren" (waarschijnlijk zijn de ingangen nauwkeuriger) om gebeurtenissen te activeren: - Drukknop voor deurbel - Dit is vrij eenvoudig, zodat iemand op een knop kan drukken en het een geluid door je oortelefoons zal afspelen laten weten dat er iemand in de buurt is. De knop die ik gebruikte, sloot standaard het circuit en opende het circuit toen de knop werd ingedrukt (ik had deze gewoon in de buurt). Vergeet de pullup-weerstanden niet (meestal een weerstand van 10k Ohm die naar de Arduino-pinzijde van de draad gaat om een goed hoog signaal te geven wanneer het circuit open is). De mijne is verbonden met Arduino Analog Pin 2.-Parallax Ping Ultrasone afstandsmeter - Laat me weten wanneer er iemand in de buurt is (d.w.z. iemand staat op het punt uw hokje binnen te gaan). De mijne is verbonden met Arduino Pin 6 (op de witte draad van de sensor). De rode draad van de sensor gaat naar 5 volt en de zwarte draad gaat naar aarde.-Microfoon - Deze is bedoeld om te detecteren wanneer iemand tegen je praat. Je kent die jongens die niet beseffen dat je een koptelefoon op hebt en beginnen te praten. Ik ben deze nog aan het uitwerken, het lijkt erop dat ik een voorversterker nodig heb om goed te kunnen lezen met de microfoon die ik van sparkfun heb gekregen. Een interessante volgende stap zou zijn om een paar seconden van het geluid op te nemen in een bestand op het golfschild en het vervolgens af te spelen zodat je weet of het iets is dat je belangrijk vindt voordat je je muziek uitzet. Computer - Op dit moment gebruikt dit een Ruby script om te controleren op nieuwe e-mail en stuurt een signaal naar de seriële poort waar de Arduino is om te laten weten dat er een nieuwe e-mail is ontvangen. Je zou hier natuurlijk veel meer mee kunnen doen. Eigenlijk alles waar de computer op kan waarschuwen, zou je kunnen laten waarschuwen via je koptelefoon. Het zou cool zijn als ik de computer automatisch een wave-bestand kon laten genereren met behulp van enkele van de AT&T-stemmen, en het vervolgens via serieel naar de Arduino zou sturen. Dat is echter een uitweg. - Sensor voor het rinkelen van een mobiele telefoon - ik heb hiervoor een fotocel van Radio Shack (The Shack) gebruikt. Ik heb hem aangesloten op analoge pin 4 en vervolgens op 5 volt. Je moet ook een weerstand van 10k Ohm doen vanaf de zijkant die verbinding maakt met pin 4 op de Arduino naar aarde (anders verandert het signaal niet). Voor mijn telefoon als de fotocel die ik gebruik boven de 400 gaat op de analoge uitlezing op de Arduino, dan is het scherm verlicht. Afhankelijk van de telefoon zijn er waarschijnlijk verschillende manieren om dat te doen. Ik moet hier nog even over nadenken om te zien of ik een oplossing voor algemene doeleinden kan bedenken. - Laser en een fotoweerstand - Je zou een laserpointer over de opening van je cel naar een fotoweerstand kunnen richten. Als het licht kapot is omdat iemand uw hokje binnenloopt, kunt u een alarm laten horen.-CH4-gasdetector - Detecteer een verhoogd methaangehalte in uw hokje. Dit kan helpen als een systeem voor vroegtijdige waarschuwing tegen gas dat in de buurt wordt gepasseerd.

Stap 5: Opdrachtregel tekst naar spraak

Hier is een klein hulpprogramma dat ik heel snel heb geschreven om tekst naar spraak te verbergen. Het is geschreven in C# met de freeVisual C# 2008 Express Edition. Je hebt waarschijnlijk. Net 3.5 nodig om dit uit te voeren. De code is inbegrepen, maar als je alleen de exe wilt, kun je deze krijgen in CommandLineText2Speech/CommandLineText2Speech/bin/Release in het zip-bestand. Om de tool te laten werken, opent u gewoon een opdrachtprompt, navigeert u naar de map waar u de exe plaatst en typt u CommandLineText2Speech.exe. Het zal dit uitvoeren: Gebruik: Om geïnstalleerde stemmen weer te geven: CommandLineText2Speech.exe whatvoices

Om tekst naar een wav te converteren:CommandLineText2Speech.exe [stem] [snelheid - standaard 0 (-10 tot 10)] [volume - standaard 80 (0 tot 100)] "[te converteren tekst]" [uitvoerbestand] Met andere woorden u zult waarschijnlijk eerst willen uitvoeren:CommandLineText2Speech.exe whatvoicesDit zal een lijst geven van welke stemmen u op uw computer hebt geïnstalleerd. U hebt de naam van een stem nodig om de tool uit te voeren. De stemmen die bij Windows worden geleverd zijn niet geweldig, AT&T heeft er enkele die behoorlijk goed zijn. Doe dit naast het converteren van tekst naar een wav-bestand CommandLineText2Speech.exe "Microsoft Sam" 0 80 "This is a test" test.wavDit is wat het allemaal betekent: "Microsoft Sam" - de stem, dit is er een die bij Windows wordt geleverd, je hebt om het tussen aanhalingstekens te plaatsen omdat er een spatie is0- Normale snelheid (kan van -10 tot 10 gaan)80- Normaal volume (kan van 0 tot 100 gaan)"Dit is een test"- De tekst die wordt omgezet in een wav-bestandstest.wav- hoe het wav-bestand zal heten

Stap 6:

De bijgevoegde Ruby-code voert de volgende controles uit om te zien of er nieuwe e-mail is en als die er is, wordt deze naar de Arduino overgebracht via de USB-naar-serieel-interface die in de Arduino is ingebouwd. Ik heb problemen gehad met het maken van snelle verbindingen via serieel (waarschijnlijk de grootte van de buffer). De instellingen voor het bestand staan allemaal bovenaan het bestand. Dit gebruikt mijn C#-programma om een wav-bestand te maken. Ik zou dit waarschijnlijk allemaal naar één taal moeten converteren, ik ben een grote fan van Ruby, maar het zag er niet naar uit dat het de wav van tekst heel gemakkelijk kon maken, dus schreef ik de kleine C#-app. Je hebt ook de ruby nodig seriële edelsteen, ik heb dat ook opgenomen. Om het te installeren (nadat je Ruby hebt geïnstalleerd) typ je "gem install win32-serial-0.5.1-x86-mswin32-60.gem" in de opdrachtprompt van de map waar je het juweeltje naartoe downloadt. Dat is alles wat je nodig hebt om dit programma te laten werken.

Stap 7: Coderen

Ik heb mijn Arduino-schets bijgevoegd. Er staan veel opmerkingen in om te helpen. Het blijft in feite alle ingangen controleren, als een van hen afgaat, schakelt het het geluid van het Wave Shield en speelt het het wav-bestand af dat bij die waarschuwing hoort.

Stap 8: Voer de programma's uit

Oké, nu heb je alle onderdelen. Om dit correct te laten werken, moet u 1. Installeer Wave Shield op Arduino2. Sluit Arduino aan op computer (of gebruik XBee) -- ik neem aan dat je de firmware al hebt geïnstalleerd3. Voer het Ruby checkEmail.rb script4 uit. Geniet van je muziek, de Arduino onderbreekt je wanneer hij je e-mail moet lezen of wanneer hij iets in je omgeving waarneemt.

Stap 9: Video van het eindproduct

Hier is de geluidswisselaar aan het werk

Aanbevolen: