Hi Huptim
das video passt zu dem Thema. aber wie genau das funktioniert weiß ich nicht ich habs nur zufällig mal gesehen:
http://www.youtube.com/watch?v=D-anbOj4O1c&NR=1
mfg
Erik
Grüß Euch,
wir sollenten vor einiger zeit in unsere schule ein thema angeben und wir haben uns eine asuro programmierung ausgedacht nun ist das problem das wir nur grundlagen hatten und wir aber ein asuro machen müssen der auf geräusche reagiert kennt ihr da irgendwelche Quellcods?
Hi Huptim
das video passt zu dem Thema. aber wie genau das funktioniert weiß ich nicht ich habs nur zufällig mal gesehen:
http://www.youtube.com/watch?v=D-anbOj4O1c&NR=1
mfg
Erik
nee Quellcodes hab ich keien aber ist doch simpel.. du brauchst natürlich erstmal nen mikro. Das Signal kannst ja übern AC/DC einlesen (dafür wirst du irgendeine andere funktion weglassen müssen, zum Beispiel Linienfolgen) und wenn der Pegel hoch ist gibts Geräusche![]()
o
L_
OL
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!
http://de.youtube.com/watch?v=qV1cZ6jUeGE
Die Anleitung dazu steht im Elektor-Mikrocontrollersonderheft Nr1.das video passt zu dem Thema. aber wie genau das funktioniert weiß ich nicht ich habs nur zufällig mal gesehen:
http://www.youtube.com/watch?v=D-anbOj4O1c&NR=1
robo
So kann man, aber doch nur die Lautstärke messen oder seh ich das falsch. Ich weiß ja nicht wie Umfangreich das Projekt werden soll, aber die Höhe der Töne herauszufinden wäre doch mal ne nette Herausforderung. Meinen bescheidenen Akustik kenntnissen nach würde ich mal behaupten, dass man dann die Wellenlänge messen müsste. Wäre der ATmega dafür denn schnell genug? Ich hätte nämlich ein Mikrofon zwar keine Zeit aber wenn man mal Zeit hätte könnte man sich ja mal damit beschäftigen, das hat mich sowieso immer mal interessiert. Naja soviel erstmal.Zitat von Lunarman
mfg
Erik
Er ist schnell genug. Meine ich nur oder habe ich es schon mal erwähnt:Meinen bescheidenen Akustik kenntnissen nach würde ich mal behaupten, dass man dann die Wellenlänge messen müsste. Wäre der ATmega dafür denn schnell genug?
Die Anleitung dazu steht im Elektor-Mikrocontrollersonderheft Nr1.
Die Schaltung des Mikrofonverstärkers als auch wie so ein Programm aufzubauen ist.
Hallo
Mein 8MHz-ATMega32 (auf dem RP6) liest mit dem ADC ein Audiosignal vom PC/MP3-Player und gibt den Pegel (2-bit) mit LEDs aus. Gleichzeitig wird das Signal noch an zwei DA-Pins ausgegeben. Noch in der Entwicklung mit miesem Sound, als Anregung gedacht:
Das Programm verwendet den ADC-Interrupt und gibt den gemessenen Wert in der ISR wieder aus. Die Samplerate ist der prescaler des ADC. Der Eingang hat einen 10K PullUp und das Eingangssignal sollte nicht höher als 5V sein. Ein Kopfhörerausgang sollte genügen, Lautstärke von 0 langsam steigern!Code://RP6 als Tonband Ohne Library Aufnahme: PortA4 Wiedergabe: PortC0 2.1.2008 mic #include <avr/io.h> // I/O Port definitions #include <avr/interrupt.h> // Interrupt macros #ifndef F_CPU #define F_CPU 8000000 #endif // Einstellungen für UART und LEDs aus der RP6-Lib #define BAUD 38400 // 38400 Baud #define UBRR_BAUD ((F_CPU/(16*BAUD))-1) #define SL1 (1 << PINC4) #define SL2 (1 << PINC5) #define SL3 (1 << PINC6) #define SL4 (1 << PINB7) #define SL5 (1 << PINB1) #define SL6 (1 << PINB0) // A shadow register that simplifies usage of status LEDs: union { uint8_t byte; struct { unsigned LED1:1; unsigned LED2:1; unsigned LED3:1; unsigned LED4:1; unsigned LED5:1; unsigned LED6:1; unsigned reserved1:1; unsigned reserved2:1; }; } statusLEDs; void updateStatusLEDs(void) { DDRB &= ~0x83; PORTB &= ~0x83; if(statusLEDs.LED4){ DDRB |= SL4; PORTB |= SL4; } if(statusLEDs.LED5){ DDRB |= SL5; PORTB |= SL5; } if(statusLEDs.LED6){ DDRB |= SL6; PORTB |= SL6; } DDRC &= ~0x70; PORTC &= ~0x70; DDRC |= ((statusLEDs.byte << 4) & 0x70); PORTC |= ((statusLEDs.byte << 4) & 0x70); } inline void setLEDs(uint8_t leds) { statusLEDs.byte = leds; updateStatusLEDs(); } void Init(void) { cli(); // UART: UBRRH = UBRR_BAUD >> 8; // UART 38400 Baud UBRRL = (uint8_t) UBRR_BAUD; UCSRA = 0x00; UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); UCSRB = (1 << TXEN) | (1 << RXEN) | (1 << RXCIE); // ADC interne Referenz 2,56V, Ergebniss linksbündig, Kanal ADC4 (E_INT1) ADMUX = (1<<REFS1) | (1<<REFS0) | (1<<ADLAR) | 4; // setzte free running triggern SFIOR = (0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0); // interupt, Wandler einschalten, prescaller /128 (62500Hz) ADCSRA = (1<<ADIE) | (1<<ADEN) | (1<<ADPS2) | (0<<ADPS1) | (1<<ADPS0); // Autotriggern bedeutet jetzt free running aktivieren, altes Flag löschen ADCSRA |= (1<<ADATE) | (1<<ADIF); // Initialisierung starten ADCSRA |= (1<<ADSC); // und noch die wohl eher unnötige Initiallesung while (!(ADCSRA & (1<<ADIF))); ADCSRA |= (1<<ADIF); DDRC |= 3; sei(); } int main(void) { uint8_t i; Init(); setLEDs(1); for (i='a'; i<='z'; i++) { while (!(UCSRA & (1<<UDRE))); UDR = i; } while (!(UCSRA & (1<<UDRE))); UDR = '\n'; while (!(UCSRA & (1<<UDRE))); UDR = '\r'; while(1); return(0); } ISR(ADC_vect) { static uint8_t adc_temp=0, count=0; adc_temp=(ADCH & 3); setLEDs(1); if (adc_temp >0) setLEDs(8); if (adc_temp >1) setLEDs(16); if (adc_temp >2) setLEDs(32); if (adc_temp == 0) { DDRC |= 3; PORTC &= ~3; } else if (adc_temp == 1) { DDRC |= 3; PORTC |= 1; PORTC &= ~2; } /* if (adc_temp == 2) { DDRC |= 1; PORTC |= 1; DDRC &= ~2; PORTC &= ~2; } */ else if (adc_temp > 1) { DDRC |= 3; PORTC |= 3; } if (count++ == 3) count=0; //UDR = adc_temp + '0'; //UDR = '\n'; }
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Soweit schon mal ganz gut zu dem Umfang der Arbeit ganz einfach wir sollten uns ein thema aussuchen haben Asuro genommen und speziel uns darauf geeinigt das wir ein machen der entweder sprachgesteurrt ist oda halt von geräuschen!! nun ist halt das ding das ich dachte wir finden was im inet darüber aba ist halt bißchen schwer!!! dachte halt das einer von euch da vllt irgendwo sowas schon mal gesehen hat oda selbst gemacht hat ! das wäre super ich mein man könnt natürlich auch was anderes machen aba da fehlen mir auch wieder die Ideen und die kenntnisse also ich kann nur was mit vorlagen anfangen und dann müssen wir diese auch noch erklären könn nur das würde ich mir dann schon iregendwie hinbiegen !! vllt habt ihr ja ein paar ideen die ganz umfangreich und einfach zu realiesieren sind !!
Also ein micro an einen ADC port zu schließen und den dann auszulesen wäre relativ simpel so kann man ihn dann auf Klatschen oder andere Laute reagieren lassen. Aber spracherkennung wird dann wohl etwas komplizierter.
mfg
Erik
hupti: deine ausrufezeichen-taste klemmt!!!!einseinself
nein im ernst: für eine spachsteuerung ist der prozessor nicht audgerüstet. es wäre vermutlich möglich das mikro am ADC port auszulesen, und dann tonhöhen zu bestimmen. auch klatschen wäre möglich (z.B. einmal klatschen: vorwärts, 2x klatschen: rückwärts... oder so.)
Lesezeichen