433 MHz Sender - klare Flanken

OP #6011814
Lesenswert?
• ▲
▼
Hallo,

ich habe eine Intertechno Funkfernbedienung ausgelesen. (Nach einigen 
Problemen die Lösung hier: 
Beitrag "433 MHz SDR Signal dekodieren").

Nun möchte ich das Signal replizieren.

Im Anhang sind beide Signale (ausgelesen mit Universal Radio Hacker) 
dargestellt. Oben das Signal der Fernbedienung und unten das replizierte 
Signal.

Ich bekomme leider die Flanken nicht richtig gesendet. Wie kann man ein 
klares "1-Bit" bzw. An-Signal senden?

Hier der Python Code (realisiert über Raspberry PI 3):
1
import time
2
import sys
3
import RPi.GPIO as GPIO
4

5
a_on = 's1001111101011111000010010010000'
6
a_off = 's1001111101011111000010010000000'
7
b_on = 's1001111101011111000010010010001'
8
b_off = 's1001111101011111000010010000001'
9

10
#1 = short_on + short_off
11
#0 = short_on + long_off
12

13
short_on = 0.00025
14
short_off = 0.0003
15
long_off = 0.00132
16
s_bit_off = 0.00295
17
extended_delay = 0.1
18

19

20
NUM_ATTEMPTS = 5
21
TRANSMIT_PIN = 23
22

23
def transmit_code(code):
24
  '''Transmit a chosen code string using the GPIO transmitter'''
25
  GPIO.setmode(GPIO.BCM)
26
  GPIO.setup(TRANSMIT_PIN, GPIO.OUT)
27
  for t in range(NUM_ATTEMPTS):
28
    for i in code:
29
      if i == 's':
30
        GPIO.output(TRANSMIT_PIN, 1)
31
        time.sleep(short_on)
32
        GPIO.output(TRANSMIT_PIN, 0)
33
        time.sleep(s_bit_off)
34
      if i == '0':
35
        GPIO.output(TRANSMIT_PIN, 1)
36
        time.sleep(short_on)
37
        GPIO.output(TRANSMIT_PIN, 0)
38
        time.sleep(long_off)
39
      elif i == '1':
40
        GPIO.output(TRANSMIT_PIN, 1)
41
        time.sleep(short_on)
42
        GPIO.output(TRANSMIT_PIN, 0)
43
        time.sleep(short_off)
44
      else:
45
        continue
46
    GPIO.output(TRANSMIT_PIN, 0)
47
    time.sleep(extended_delay)
48
  GPIO.cleanup()
49

50
if __name__ == '__main__':
51
    for argument in sys.argv[1:]:
52
        exec('transmit_code(' + str(argument) + ')')

Mein anderes Anliegen: Die Fernbedienung sendet auf 433.868170 MHZ. Das 
ausgelesene Signal meines Senders erscheint bei 434 MHZ. Wird der 
Bandbreitenabstand mir ein Strich durch die Rechnung machen?
Angehängte Dateien:
Gast #6011978
Lesenswert?
• ▲
▼
>Würdest du bitte kurz erläutern, warum das ein Rasp nicht kann und an was das 
liegt?
Das Problem ist nicht der Raspi, sondern das Betriebssystem Linux. Es 
ist nun mal kein Echtzeitsystem, jeder laufende Prozess kann 
unterbrochen werden, um andere Aufgaben zu erledigen. Die 
"sleep"-Funktion garantiert nur eine Mindestwartezeit, die Nachtruhe 
kann aber auch deutlich länger dauern.
Shcau mal hier: 
https://www.mikrocontroller.net/article/Hardwarenahe_Programmierung_am_Raspberry_Pi
Vielleicht hilft es schon, die Priorität Deines Prozesses auf einen 
möglichst hohen Wert zu setzen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.