PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sound für Asuro



Asurokiller
08.09.2006, 20:42
Ich brauche Hilfe!
Wie könnte ich einen summer oder ähnliches zur akutischen Signalausgabe auf meinem Asuro anbringen?
](*,)

Ampfing
09.09.2006, 20:44
Hallo Asurokiller (der Nick ist hoffentlich nicht Programm :-),

also, grundsätzlich brauchst du dafür halt nen Port, den du als Ausgang definierst.
Da schließt du deinen Summer/Lautsprecher incl. Widerstand zur Strombegrenzung an. Wenn du dann den Port auf high setzt fließt Strom durch den Lautsprecher und er macht nen Ton. Bei low fließt kein Strom und es gibt keinen Ton.
Allerdings sind beim Asuro schon alle Ports belegt. Könntest z.B. eine der LED's auslöten und stattdessen den Summer einbauen (allerdings wohl auch den Widerstand anpassen!).

Viele Grüße

Asurokiller
10.09.2006, 12:13
Danke deine antwort hat geholfen!

stochri
11.09.2006, 20:23
Der Asuro kann schon Töne erzeugen !

http://www.arexx.com/downloads/Asuro_Henk/AsuroIdx.htm

Siehe Programm Nr.20 ganz unten.

Gruss,
stochri

RCO
11.09.2006, 21:33
also, grundsätzlich brauchst du dafür halt nen Port, den du als Ausgang definierst.

Ein par kluge Köpfe benutzen dazu den Motor, dann kann Asuro zwar nicht fahren, aber es funktioniert. Siehe z.B. auch:

Asuro (Anhören...) (https://www.roboternetz.de/phpBB2/viewtopic.php?p=61816)

king_kaos
16.11.2006, 21:23
ich möchte auch nen kleinen pc-speaker auf meinem asuro montieren. dazu würde ich gerne eine der back-leds (d15/d16) austauschen.
jede der leds hat ja nen 1k ohm vorwiderstand - also muss der entspr. widerstand auch noch getauscht werden, right?

folgende "anleitung" hab ich gefunden (auszug aus anleitung, wie man pc speaker an soundkarte anschliesst)

Der Anschluß des Gehäusequäkers besitzt vier Kontakte, von denen nur die beiden äußeren verwendet werden. Folglich trennt man von der Buchsenleiste ein Stück mit vier Kontakten ab. Die beiden äußeren Kontakte der Buchsenleiste werden mit dem 100 Ohm-Widerstand verbunden (er entlädt den Kondensator und simuliert den Lautsprecher). An einen der beiden äußeren Kontakte kommt zusätzlich ein Anschluß des Kondensators hinzu. Der Kondensator dient in erster Linie dazu, Kurzschlüsse zu vermeiden, falls man das Kabel verpolt.

zufällig hab ich noch 100ohm r und den kondensator rumliegen. den kondensator lass ich weg, hat ja auch keinen platz auf der platine - und verpolen tu ich schon nix...

jetzt mal n paar fragen:
hat es irgendwelche auswirkungen, wenn ich den 1k ohm widerstand der led durch nen 100 ohm widerstand austausche?

könnte ich auch nen 1k ohm widerstand benutzen? testen kann ich ja mal - sollte ja nix machen, ausser, dass mein speaker leiser wird, oder?

thx, peace,
kaos.

king_kaos
16.11.2006, 22:49
also mal kleiner zwischenstand - hab eine meiner back leds durch nen kleinen lautsprecher getauscht. ich hab noch den 1k ohm widerstand drin - funzt, aber is halt leise.

komischerweise bekomme ich von SerWrite nix mehr gesendet, bzw. empfange nix mehr, flashen funktioniert aber, und empfangen tut er auch (SerRead halt).

komisch, komisch... ich bastel mal noch an ner funktion für meine töne und kuck, dass ich wieder daten empfangen kann.

funktionieren tut es auf jeden fall, und is auch total einfach...

king_kaos
17.11.2006, 03:40
yoyoyo... so ein speaker macht schon was her =D>

flösst dem ganzen teil gleich ein wenig mehr charakter ein. wenn mein asuro wo dagegen fährt, ertönt im mom ne sirene. fährt er auf die tanzfläche (ein blatt papier), beginnt er "smells like teen spirit" zu spielen und tanzt dazu :mrgreen:

ich tüftle noch an ner funktion, die mir nen pieps in ner beliebigen hertz-zahl liefert. leider scheint es aber auch vom ein/ausschalten des speakers abhängig zu sein, wie viel zeit zwischen den einzelnen rechenschritten vergeht, deswegen muss man da wohl improvisieren. aber dafür reicht es heute leider nimmer...

wie gesagt, das senden von daten per SerWrite funzt immer noch nicht. keine ahnung woran das liegt. ich hab nur mal interessehalber die verbleibende back-led und den speaker ans multimeter gehängt:
back-led: 300-500mV Leerlaufspannung
speaker: 0mV Leerlaufspannung

da stimmt doch was nicht ?!?

die front-led mess ich bei 4mV oder sowas. aber ob das was mit meinem ir problem zu tun hat, wage ich zu bezweifeln. ich kann immer noch befehle an asuro schicken - und auch flashen. und beim flashen muss er ja auch mal antworten. ich komm nich drauf.

damaltor
17.11.2006, 08:52
Ich würde ganz spontan vermuten dass der speaker zu viel strom frisst, um die sendediode noch versorgen zu können. ausserdem wirst du große probleme mit der odometrie haben, da diese ja an einem pin mit der backled (bzw dem speaker) hängt...

oder du hast beim basteln einfach irgend einen kontakt der ir-diode erwischt, eine ungewollte brücke zur amsse gebaut, eine kalte lötstelle produziert, eine kleine brücke aus den beinchen gemacht,.....

king_kaos
17.11.2006, 13:33
Ich würde ganz spontan vermuten dass der speaker zu viel strom frisst, um die sendediode noch versorgen zu können.

hmm... das könnte natürlich sein - aber wenn mein speaker nix tut, liegt auch weder spannung noch strom an. also sollte das (imho) keinen einfluss haben. genug saft zum empfangen hat sie ja auch noch, aber zum empfangen braucht man ja nicht soviel strom. und warum geht dann das flashen?
aber ich werd's mal probieren - der speaker is ja zum glück noch nicht gelötet.



ausserdem wirst du große probleme mit der odometrie haben, da diese ja an einem pin mit der backled (bzw dem speaker) hängt...
meinst du? odometrie stuff hat eigentlich gut geklappt. wenn die odo-fototransistoren benutzt werden, schalten die back-leds ja sowieso ab.



mal nochmal die frage - wenn ich den R19 (vorwiderstand zu meinem speaker - derzeit 1kohm) durch nen 100ohm widerstand ersetze, sollte das ja keine (bemerkbaren) auswirkungen auf die elektronik haben, oder?

[/quote]

damaltor
17.11.2006, 14:09
also die backleds sind leds... dioden also. und ein bissl strom fliesst immer über diese dioden, schau mal in den schaltplan. ganz aus sind die theoretisch nie.

die odometrie baut darauf auf, dass die led nur in eine richtung strom durchlässt - der speaker... naja.. ist hlt ein speaker gelle, keine diode =)

wenn du den widerstand verringerst kommt mehr strom durch. ich würde erstmal sicherstellen dass alles andere hundertprozentig funktioniert, bevor ich noch mehr strom direkt auf die masse schicke..

asuro_freak2
17.11.2006, 14:38
Hi

Ein Piezosummer wäre vll besser als ein Lautsprecher. Damit kann man sogar Töne wiedergeben: http://ag-vp-www.informatik.uni-kl.de/Lehre/Praktikum/VoiceHack/Voice.html

Der dürfte auch weniger Leistung brauchen.

mfg Asuro Freak

stochri
17.11.2006, 17:53
https://www.roboternetz.de/phpBB2/viewtopic.php?p=216025

damaltor
17.11.2006, 18:18
ich würde auch einen piezosummer verwenden... das scheint das einfachste zu sein.

king_kaos
17.11.2006, 23:40
ich hab mich gerade meinem speaker-problem angenommen. ich dachte mir, wenn das flashen geht (wobei die back-leds ja immer an sind), muss das senden ja auch gehen. also hab ich in der SerWrite funktion meinen speaker vor dem senden an und dannach wieder ausgeschaltet, und siehe da, es geht. dann nochmal ein test ohne den speaker einzuschalten - wtf - es geht auch!

strange, ich habe nix geändert. aber mir soll's recht sein :).

hmm... ich hab hier noch so ein kleines kondensatormikrofon rumliegen - ich könnte doch die 2te back-led ... *werkel*

EDH
18.11.2006, 08:54
also ob das geht...
ein mikrofon ist ja eigentlciuh ein sensor
d.h. man müsste im atmega den entsprechenden I/O port auf eingang stellen
kommt man da dann nicht mit der odometrie in konflikt?

damaltor
18.11.2006, 11:50
na das einzige was mir dazu einfallen würde, ist das mikro mit VCC und einem der ADCs zu verbinden. dan in einer endlosschleife den ADC auslesen und die werte in einem sehr langen array speichern (und recht schnell an die doch sehr engen speichergrenzen des asuro stoßen). dann könnte man eine zweite pwm (Pulsweitenmodulation, dadurch werden z.B. die Motoren gesteuert. http://de.wikipedia.org/wiki/Pwm ) mit dem Speaker verbinden... und in einer zweiten schleife die werte des arrays durch vier teilen (um als maximalwert 255 zu bekommen) und über die pwm wieder ausgeben lassen.
hmm.. das sollte gehn. aber die zweite pwm wird schwierig =)


@edh: man müsste das mikro an einen der Analog-Digital-Converter anschliessen. die möglichkeit dafür eine backled zu tauschen ist dadurch nicht gegeben.
Man muss das mikro entweder
-an den pin des linken linienverfolgers
-an den pin des rechten linienverfolgers
-an den pin des linken odo--sensors
-an den pin des rechten odo-sensors
oder
-an den pin der batteriespannungsmessung

anschliessen.

EDH
18.11.2006, 11:59
wenn dan braucht man schon beide liniensenreon und biede odosensoren. ich glaub am ehesten könnt dafür der pin für die battspannung herhalten

damaltor
18.11.2006, 12:44
jo das denk ich auch... allerdings müsste man dann einen neuen atmega mit einem neuen bootloader besorgen (den atmega gibts bei reichelt für knapp 3 euro, den bootloader... das wird schwieriger. aber es gibt einen alternativen, privat geschriebenen bootloader im netz...). denn beim einschalten des asuro wird die batteriespannung überprüft, und wenn diese zu niedrig ist dann blinkt die led und der asuro sendet nur VLVLVL anstatt sein Programm abzuarbeiten... und wenn an deisem punkt keine spannung mehr anliegt, weil ja jetzt ein mikro dran is, dann misst der asuro halt 0V, das ist zuwenig und er wird sich weigern, auch nur einen centimeter vorwärts zu fahren, geschweige denn töne aufzunehmen bzw abzuspielen. oder man müsste einen schalter anbringen, der entweder die batterriespannung oder den mikro-ausgang zum pin leitet. während der boot-phase wir der dann auf batterie, während des programms auf mikro geschaltet...

robo.fr
18.11.2006, 14:54
Roboter mit Soundchip:

https://roboternetz.de/phpBB2/viewtopic.php?t=3706

EDH
18.11.2006, 15:01
hmm...
soweit ich das erkennen kann hat diese erweiterung aber keine verbindung mitm asuro. es verschickt die daten nur über infrarot. hat man da keine probeme mit der daten übertragung?
kann eigentlcih der asuro befehle an die mikro erweiterung schicken?

mfg EDH

damaltor
18.11.2006, 15:16
sieeht lustig aus, aber eigentlich ist das nicht so ganz das was wir dachten... der asuro soll direkt eine interaktion mit dem micro und dem speaker haben. eine zweite platine, die die ganz arbeit übernimmt und nur die daten per ir wegsendet, ist eine gute idee um dem hauptprozessor die arbeit zu ersparen. Aber wäre es nciht evtl auch möglich, die komplette arbeit vom hauptprozessor übernehmen zu lassen?

EDH
18.11.2006, 15:57
kann man eigentlcih durch messen oder irgendwetwas anderes feststellen, ob der asuro noch in der boot phase ist?
wenn das ginge könnt man eine erweiterung bauen, die umschaltet zwischen batterie und mikrofon

damaltor
18.11.2006, 16:02
hmm... oder man baut einen elektronischen schalter (relais, transistor, irgendwas) dazwischen, an einen port des prozessors, und der erste befehl des eigenen programmes setzt diesen port high und schaltet dadurch um...

EDH
18.11.2006, 16:10
oder man bastelet eine schaltung wo die spannung von mikro un dvon batterie addiert.
am anfang des programms misst man dann die battspannung bei stille. die differenz zwischen battspannun gun d gemssener spannung, ist dann die spannung vom mikro...
es gibt tausend möglich keiten das zu machen, die frage ist nur, wie gehts am besten

damaltor
18.11.2006, 16:12
hmm... das wäre doch mal ein projekt wert =)

king_kaos
19.11.2006, 14:49
oder man schliesst das mic einfach trotzdem an die back-led an. funktioniert einwandfrei. allerdings muss der prozessor die signale "trennen". wenn man den port an dem back-led bzw. mic und odo-sensor hängen auf input schaltet bekommt man logischerweise einen addierten wert der spannung am fototransistor und der spannung am mikro.

wenn ich meine Listen() funktion aufrufe, werden zunächst die motoren abgeschalten (bewegung stört die messwerte, genauso wie die motorengeräusche) und der aktuelle durchschnittl. helligkeitsgrad gemessen. falls jetzt der rückgabewert höher als der durchschnittswert + einer kleine schwelle ist, wird dies als micro-input registriert.

es ist sogar möglich verschiedene tonhöhen (pfeifen) und klatschen voneinander zu trennen. ich habe die beiden 1k widerstände der leds durch 100 ohm widerstände ersetzt. der speaker wurde nur unmerklich lauter, aber das mikro ist jetzt empfindlich genug um nicht direkt ins mic pfeifen zu müssen. besser wäre noch weniger - am besten ein trimmwiderstand an beiden seiten.

einschränkung bei der ganzen sache ist natürlich, dass die motoren stehen müssen. aber damit kann ich ganz gut leben. aber irgendwann werd ich das mikro schon mal auf ne erweiterungsplatine löten - dann gibts auch keine beschränkungen mehr.

damaltor
19.11.2006, 15:03
na das klingt doch nich schlecht...

kannst du jetzt töne aufnehmen und dann wiedergeben? bzw. wie weit bist du?

EDH
19.11.2006, 15:09
ich schätze, das 7kb flash nicht für großartiges aufnehmen und abpsielen.
auserdem ist allein schon das programm ziemleih ckompliziert.
mit welcher frequenz müsste man denn eigentlcih aufnehmen, damit man hernach etwas eineigermasen echt realisitsch klingendes kiegt

king_kaos
19.11.2006, 16:33
na das klingt doch nich schlecht...

vor allem erst zusammen mit dem speaker ;)



kannst du jetzt töne aufnehmen und dann wiedergeben? bzw. wie weit bist du?
töne aufnehmen? an das hab ich noch nicht gedacht... aber das wird mit dem begrenzten speicher des atmega kaum möglich sein... was aber funktioniert ist:
ich klatsche vor, der asuro klatscht (besser piepst) nach. dabei wird einfach alle x ms (natürlich mehrmals) auf ein signal getastet, falls ja wird es als klatschen gespeichert und dannach mit dem speaker abgespielt - ziemlich cool wie ich finde ;)





ich schätze, das 7kb flash nicht für großartiges aufnehmen und abpsielen.
auserdem ist allein schon das programm ziemleih ckompliziert.
mit welcher frequenz müsste man denn eigentlcih aufnehmen, damit man hernach etwas eineigermasen echt realisitsch klingendes kiegt
sag mir, wenn ich mich irre, aber den flash speicher kann man doch gar nicht als speicher das programm des asuro nutzen, oder? ich dachte, der ist nur zum beschreiben bzw. flashen da - was leer ist bleibt auch leer. aber kein plan ob das stimmt. speicher hast du imo nur 1024 bytes.
wobei auch gleich die frage aufkommt - ist es möglich dem asuro ne speichererweiterung zu bescheren?
was auf jeden fall möglich sein sollte ist nen atmega32 anstatt des atmega8 zu benutzen. damit wäre schon viel getan. man müsste ja nur nen 40-pin sockel mit dem jetzigen 28-pin sockel verkabeln, und es sollte funzen (vorausgesetzt man kriegt den bootloader auf atm32). zusätzlich dann noch viele neue i/os....

aber um zurück zur eigentlichen frage zu kommen - wie viel man denn aufnehmen könnte. (achtung diese formeln basieren auf gefährlichem halbwissen!)

ein telefongespräch hat eine abtastfrequenz von ~ 11.000 - 12.000 hz. das lässt sich mit dem atmega kaum technisch realisieren, da er zu lahm ist um 12.000 mal pro sekunde abzutasten und zu verarbeiten.

realistisch ist vielleicht 1000-2000 hz, aber das is nur ne schätzung ohne versuch. bei 2000 hz könnte man mit 1kb ram ca. 1024*8 / 2000 = ca. 4s aufnehmen - was schon beachtlich wäre. hmm... sollte ich vllt. echt mal probieren.

m.a.r.v.i.n
19.11.2006, 17:14
Hi,

Schau euch mal das an, paßt eigentlich ganz gut zu dem Thema.

http://www.roboterclub-freiburg.roboterbastler.de/Projekte/ASURO/Lichtorgel/LichtorgelAsuro.html

Auch das Video ist auch sehenswert. Der Asuro reagiert auf Pfiff. Allerdings ist dazu schon ein eigener mega8 notwendig.

Die 1kB RAM werden aber auch vom laufenden Programm benutzt für Stack, Variablen usw. Der 8kB Flash kann eigentlich nur für den Programm-Code genutzt werden. Wegen Harward Architektur, getrenntem Bus für Programm und Daten.

Asuro mit mega32 gibt es auch schon:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=11657&highlight=asuro+atmega32

Gruß m.a.r.v.i.n

EDH
19.11.2006, 17:19
also den link hatten wir in diesem thread ja sschon mal...

m.a.r.v.i.n
19.11.2006, 17:26
upps, dass hatte ich übersehen.

robo.fr
19.11.2006, 17:40
Hallo m.a.r.v.i.n,


Auch das Video ist auch sehenswert. Der Asuro reagiert auf Pfiff. Allerdings ist dazu schon ein eigener mega8 notwendig

Der Mikrofonverstärker könnte auch an den Onboard-Atmega8 angschlossen werden.

Eventuel bestünde das Problem, dass die PWM der Motoren die ADC's zu stark stören.

Viele Grüße,
robo.fr

@damaltor

die die ganz arbeit übernimmt und nur die daten per ir wegsendet, ist zwar ne gute idee, aber eigentlich zu.. öh.. trivial =)

Nun, möglicherweise ist es ja zu trivial. Aber mir will scheinen, dass durch deine Beiträge die Qualität dieses Forums nicht unbedingt gestiegen ist.

damaltor
19.11.2006, 20:31
ma nich frech werden hier... wenn du mal mehr als 200 beiträge hast wird sich zeigen welche qualität diese haben.

ich finde das toll, dass das so funktioniert, meinte damit aber dass es echt große kunst wäre wenn das alles IM asuro, ohne hilfsprozessor, gebaut wäre...

denk dran, gerade neulinge machen sich mit frechen sprüchen schnell einen schlechten ruf...

king_kaos
21.11.2006, 00:35
mann... der ein oder andere hier scheint ganz schöne komplexe zu kriegen, wenn er in seiner unfehlbarkeit kritisiert wird. eigentlich wollt ich mich ja raushalten, aber ne flasche vino zur pizza tut ihr übriges...

robo.fr hat vllt. ein klein wenig überreagiert - wenn man das posting vor dem editieren gekannt hat, weiss man, was ich meine. einfach drüberstehen.


ma nich frech werden hier... wenn du mal mehr als 200 beiträge hast wird sich zeigen welche qualität diese haben.

mag ja sein, dass es bei manch einem auf die quantität ankommt, aber qualität - sorry - ist bei deinen beiträgen wirklich schwer zu finden. meist rezitierst du aus beiträgen, die andere geschrieben haben oder irgend welchen manuals.
ist schon traurig, dass manche leute sich von irgendwelchen "rängen" in foren beeinflussen lassen und auch wenn sie eigentlich nix zu sagen haben irgend nen scheiss, den eh jeder kennt, daherlabern - oder denkst du wirklich, du bist jetzt roboterspezialist, weil du mehr als 200 posts hast? denkst du, andere user respektieren dich aufgrund der anzahl deiner postings?
aber aus dem selben grund werden menschen wie du auch bulle, soldat jva-beamter - oder türsteher, wenn es zu ersteren nicht reicht. aber diese menschen respektieren auch deinen rang.

spam poster hab ich gefressen!


denk dran, gerade neulinge machen sich mit frechen sprüchen schnell einen schlechten ruf...
haha! und andere leute outen sich mit anderen sprüchen (nicht nur einem) als spassten. (mist - mache ich mir jetzt einen schlechten ruf?!?)

ach ja - was das mikro betrifft. der 100 ohm widerstand ist definitiv zu groß. damit eine spannung gemessen werden kann, muss es schon richtig laut / richtig nahe am speaker sein.

aufnehmen gestaltet sich auch als schwierig, da keine 2000hz - wohl auch keine 1000(zumindest nicht mit meiner funktion) beim aufnehmen erreicht werden können. das schreiben in den speicher scheint schon etwas zu dauern...

damaltor
21.11.2006, 10:23
So ic beende diesen sinnlosen streit hier jetzt einfach mal.
1. Ich hab Zivi gemacht, und habe mit sicherheit nicht vor, Bulle, Türsteher oder Berufssoldat oder irgend was in dieser Richtung zu werden.
2. Selbstverständlich zitiere ich aus Manuals oder Ähnlichem, sofern das sinn macht. wenn zum hundertsten mal die frage kommt "Die LED blinkt und de Asuro sendet VLVLVL" dann kann ich nur zitieren, weil derjenige, der fragt zu blöd ist die suchfunktion zu benutzen. Ähnlich sieht es aus mit fragen vom Typ "Was macht OdometrieData" oder "wie kann ich eine sekunde Verzögerung erreichen". Auch hier kann ich nur sagen: in der Anleitung steht alles klar und deutlich beschreiben. da meistens die absoluten neulinge solche fragen stellen kann ich nur sagen: ja, es gibt einen unterscheid zwischen 5 und 250 posts. Das heisst nicht, dass jeder mit wenig posts ein depp ist, oder das jeder anfänger blöde fragen stellt. die einzige feststellung ist, dass die MEISTEN blöden fragen von anfängern kommen (nein, nicht alle.)
Ob ich für irgendwelche statistiken respektiert werde ist mit sch..egal, 250 beiträge sind auch nicht gerade viel. Ich glaube weder, dass ich unfehlbar bin noch dass ich hier irgend ein überragendes Wissen habe. Ich kann mich halt nur über leute ärgern, die bei google das forum finden, sich anmelden und ohne einen wirklichen satz gelesen zu haben oder die suhfunktion auch nur bedacht haben, schnell ihre frage posten. oder über leute, die den gleichen beitrag in 5 verscheidenen threads posten, "damit er besser gefunden wird, weil er ja so gut ist".

Ich habe mit sicherheiot nicht vor, anderer leute arbeit zu kritisieren, und ich vermute einfach, dass der auslöser dieses streits, das wort "trivial", falsch gewählt wurde. Dafür entschuldige ich mich selbstverständlich, und ich werde nachher diesen post entsprechend ändern.
Post wurde geändert.
Trotzdem sehe ich das eigentlich nicht als grund für so einen sinnlosen schnurz, wie er dadurch produziert wurde.

So, zum eigentlichen thema dieses topics:
Versuch doch mal, an das Mikro ein poti zu bauen. dann kannst du solange rumdrehen, bis die lautstärke (bzw. die aufnahme) ok ist (evtl ab einem bestimmten pegel die LED aufleuchten lassen).
Das gleiche am Lautsprecher, dann hast du ne Lautstärkeregelung =)

Aber Müsste nicht eigentlich der Speaker auch als Mikro Funktionieren? Ne Spule mit nem Magnet als Kern, was anderes isses ja nich. vielleicht schaffst du es damit sogar, einen genügend hohen Pegel zu bekommen um einen interrupt auslösen zu lassen, so dass du in der main funktion nur die zeit messen musst und per interrupt die schwingungen zählen kannst. dann lässt sich die Frequenz recht leicht berechnen.

würde es eigentlich gehen, dass der asuro frequenzen erkennt? das mit dem klatschen ist schonmal extrem cool, aber bringst du ihn dazu, pfeiftöne nachzuahmen? die müssten ja nicht aufgenommen werden, sondern nur die frequenz gefunden werden... ich stelle mir was vor wie eine schnellstmögliche abfrage des pegels des mikrofons. (oder, wie oen, eine interruptgezählte messung des speakers, wenn das möglich ist). daraus müsste sich dann die frequenz berechnen lassen, und wenn man fertig ist mit pfeifen, wird mit dieser frequenz (evtl sogar über die sleep-funktion oder über eine angepasste interruptroutine des 36kHz-Timers) der lautsprecher ein-und ausgeschaltet werde. dann müsste doch in etwa der ton zurückkommen der gepfiffen wurde, oder?

king_kaos
21.11.2006, 21:55
@damaltor

du hast recht. ein streit ist sinnlos. ich hätte mich gestern auch ein wenig gewählter ausdrücken können, aber ich war einfach auch trunken. viele meiner äußerungen waren schon ganz schön weit hergeholt, und ich entschuldige mich auch aufrichtig dich mit türstehern und cops in einem satz genannt zu haben.

du hast recht, viele fragen werden wirklich 1000 mal gestellt, und irgendwer muss sie ja beantworten. auch ich hab vor n paar tagen noch die "VL-Frage" gestellt.
ich war lange zeit nicht in internetforen, da bei vielen wenn sie groß wurden die qualität der posts gewaltig zurückging. es gab (und gibt immer noch) einfach viele user, die zu jedem beitrag irgend nen (meist sinnlosen) kommentar abgeben mussten, nur um ihr virtuelles ego zu stärken und mehr posts als alle anderen zu kriegen. dieser alte hass ist gestern halt wieder hochgekommen und du hast ihn abgekriegt, weil gerade zufällig hinter jedem thread dein name als letzter poster stand, und du explizit auf die anzahl deiner posts verwiesen hast.

wie du sagst, das wort "trivial" war wohl der auslöser. in dem zusammenhang konnte man es leicht missverstehen. ich finde die idee mit der ir-übertragung eigentlich nicht schlecht. ist ein einfacher weg zusätzliche komponenten zu integrieren, ohne dass man nen port verbraucht. wenn man es damit vergleicht einfach ein mikro an nen existierenden port des asuro anzuschliessen ist diese lösung alles andere als trivial - wenn dann etwas aufwendig, aber dafür ist sie portierbar.


So, zum eigentlichen thema dieses topics:
jo, is bessa!


Versuch doch mal, an das Mikro ein poti zu bauen. dann kannst du solange rumdrehen, bis die lautstärke (bzw. die aufnahme) ok ist (evtl ab einem bestimmten pegel die LED aufleuchten lassen).
Das gleiche am Lautsprecher, dann hast du ne Lautstärkeregelung =)
das mit dem poti hab ich schon geschrieben (oben) - ich nannte es aus unwissenheit einfach nur "trimmwiderstand". von technik an sich hab ich wenig ahnung, vom coden dagegen schon. leider hab ich kein geeigetes poti da, nur so 10kohm teile.
die frequenz berechne ich im prinzip so wie von dir beschrieben - es scheitert aber im moment wie gesagt an 2 faktoren:
1. das mikro ist nicht empfindlich genug
2. der atmega ist imo zu langsam für höhere frequenzen - die aufnahmefunktion müsste ausserdem schön gleichmäßig laufen - abre durch ein wenig tüfteln krieg ich das schon hin. im moment hab ich leider kaum zeit für mein' asuro. der asuro darf ausserdem keine andere aufgabe haben - mit dieser modifikation ist es unmöglich den asuro DIREKT durch töne zu steuern, wie im video von robo.fr zu sehen. das ist auf jeden fall gleich mal ein vorteil der "externen lösung". aber "frequenz erkennen - bewegen - frequenz erkennen - bewegen ..." sollte möglich sein (ne "klatschsteuerung" hatte ich bereits)






Aber Müsste nicht eigentlich der Speaker auch als Mikro Funktionieren? Ne Spule mit nem Magnet als Kern, was anderes isses ja nich. vielleicht schaffst du es damit sogar, einen genügend hohen Pegel zu bekommen um einen interrupt auslösen zu lassen, so dass du in der main funktion nur die zeit messen musst und per interrupt die schwingungen zählen kannst. dann lässt sich die Frequenz recht leicht berechnen.


ja, speaker und mikro sind technisch identische bauteile. nur ist der speaker wesentlich weniger empfindlich und das mikro wesentlich leiser als der speaker (interner widerstand?!?).


würde es eigentlich gehen, dass der asuro frequenzen erkennt? das mit dem klatschen ist schonmal extrem cool, aber bringst du ihn dazu, pfeiftöne nachzuahmen? die müssten ja nicht aufgenommen werden, sondern nur die frequenz gefunden werden... ich stelle mir was vor wie eine schnellstmögliche abfrage des pegels des mikrofons. (oder, wie oen, eine interruptgezählte messung des speakers, wenn das möglich ist). daraus müsste sich dann die frequenz berechnen lassen, und wenn man fertig ist mit pfeifen, wird mit dieser frequenz (evtl sogar über die sleep-funktion oder über eine angepasste interruptroutine des 36kHz-Timers) der lautsprecher ein-und ausgeschaltet werde. dann müsste doch in etwa der ton zurückkommen der gepfiffen wurde, oder?

ja, frequenzen erkennen geht. bei mir zwar nur unter laborbedingungen (d.h. das mikro des asuro ist weniger als 2cm von meinem mund entfernt), aber mit einem guten mikro am besten noch an nem eigenen port, nicht so wie bei mir, dürfte das kein problem sein. auch aufnehmen müsste sich realisieren lassen (zwar keine gute quali, aber gehen müsste es imo).
und um pfeiftöne zu erkennen muss aber definitiv auch "aufgenommen" werden. wenn der asuro sich nicht merkt, wann das mic ein/aus war, wie soll er dann die frequenz berechnen? aber sonst ist deine theorie richtig, soweit ich das beurteilen kann.

wenn ich mal wieder zeit hab (so in 2-3 tagen), mach ich mich da nochmal dran.

damaltor
22.11.2006, 08:20
Die Aufnahme Funktion könnte evtl über einen der TImer Laufen. du könntest die Interruptroutine von Sleep() enpassen, das müsste evtl gehen.

Was passiert, wenn die ASuro eine bestimmte Zeit, sagen wir 5 sekunden, in einer schleife festhängt (experimentell bestimmen, möglichst keine sleep Funktion nutzen), und während dieser Zeit durch das Mikro interrupts ausgelöst werden? evtl könnte man das dann über den Erweiterungseingang int0 steuern. dann ist anzahl der interrupts/zeit die frequenz, mit der der speaker ain und ausgeschaltet wird.

ich habe glaube ich auch maximal 10k potis da, muss ma schaun was sich im keller noch so findet.