Ich möchte Arduino steuern, indem ich Audiobefehle lese, die von einem Himbeer-Pi (über Javascript) gesendet werden. Ich habe den SoftModem- Code gefunden und frage mich, wie er funktioniert. Es behauptet, dass "es die Audiobuchse des Telefons und die Bell 202-Modem-ähnliche FSK-Codierung verwendet", aber ich frage mich, wie es gemacht wird. Muss der ADC nicht abgetastet und eine Filterung wie FFT angewendet werden? Ich kann nicht scheinen zu finden, wo das alles gemacht wird.
Jeder Gedanke geschätzt.
Ein Funkkommunikationssystem, das unter Randbedingungen des Signal-Rausch-Verhältnisses arbeiten musste, müsste das Signal digitalisieren, filtern, möglicherweise FFT (normalerweise nicht), die Taktphase verfolgen, Fehler korrigieren und all diese mühsamen Dinge.
Bei einer Kabelverbindung mit hohem Signal-Rausch-Verhältnis verwendet diese billige Bibliothek jedoch den analogen Komparator, um zu erkennen, wann das Signal einen Schwellenwert überschreitet, und den Timer, um stattdessen die Länge der High/Low-Perioden zu messen. Das Abtasten erfolgt implizit in den Funktionen „Warten auf Startbit“, „Warten auf Datenbits“ und „Warten auf Stoppbit“, die beispielsweise eine Datenbyte-Zustandsmaschine umfassen. Filtern? Wir brauchen keine Steenkin-Filterung!
Lesen Sie den Quellcode, es ist alles in SoftModem.cpp, auf das Sie verlinkt haben.
Daniel