Jump to content

LukasRtM

Members
  • Gesamte Inhalte

    10
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von LukasRtM

  1. Servus Zusammen

     

    Ich habe einen kleinen Programmcode gebastelt.

    Nun habe ich gemerkt, dass das ganze Skript abgebrochen wird, sobald ein Sensor fehlt (z.B. wegen Wackelkontakt oder irgendwelchen Defekten).

    Das soll mir natürlich nicht passieren. Nun war meine Idee, eine if-Abfrage zu machen, ob die Bricklets anzusprechen sind, oder nicht. Aber wie mache ich das genau?

    Ich programmiere in Python und kann mir gerade nicht vorstellen, was für eine Bedingung mit dem IF abgefragt werden soll.

    Hier der Code:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-  
    
    HOST = "localhost"
    PORT = 4223
    UID_master = "######"
    UID_dist = "###"
    UID_temp = "###"
    UID_current ="###"
    
    from tinkerforge.ip_connection import IPConnection
    from tinkerforge.brick_master import Master
    from tinkerforge.bricklet_temperature import Temperature
    from tinkerforge.bricklet_distance_ir import DistanceIR
    from tinkerforge.bricklet_voltage_current import VoltageCurrent
    
    if __name__ == "__main__":
    ipcon = IPConnection() # Create IP connection
    master = Master(UID_master, ipcon) # Create device object
    temp = Temperature(UID_temp, ipcon)	
    dist = DistanceIR(UID_dist, ipcon) # Create device object	
    vc = VoltageCurrent(UID_current, ipcon)
    
    ipcon.connect(HOST, PORT) # Connect to brickd
    
    # Don't use device before ipcon is connected
    
    # Get voltage and current from stack (in mV/mA)
    voltage = master.get_stack_voltage()/1000.0
    current = master.get_stack_current()/1000.0
    chip_temp = master.get_chip_temperature()/10.0
    # Get Temperature from Temp-Bricklet
    temperature = temp.get_temperature()/100.0 
    # Get Current and Voltage from Bricklet
    bricklet_current = vc.get_current()/1000.0
    bricklet_voltage = vc.get_voltage()/1000.0
    print(voltage)
    
    ipcon.disconnect()

     

    Danke für hilfreiche Kommentare,

    Lukas

  2. Fazit der Messung bei einer mit Sonnenlicht beschienen Fläche:

     

    Die aus allen Richtungen in die Linse gestreuten Sonnenstrahlen stören den Sensor nicht gross (max. 3cm Differenz). Gravierend ist aber der Fehler, wenn die Sonne die Fläche bescheint, die vom Sensor mit dem IR-Strahl abgetastet wird. Bei einer weissen Oberfläche kann das eine Differenz von 10cm sein!

    (Attachment: Die Sonne zeigt sich kurz und verschwindet gleich wieder hinter den Wolken)

     

    Kann mir jemand das Problem erklären, dass die Distanz bei Sonnenlich um 10cm kleiner wird? Also was macht die Sonne mit dem IR-Strahl des Sensors?

    Könnte ich einen Filter verwenden, dass das Problem eventuell minimiert wird?

     

    Danke, Gruss Lukas

    sonne.PNG.5976c1c5e928b527782ea2c8d88adbf4.PNG

  3. Hallo Zusammen

     

    Ich habe beim Testen des IR-Bricklets (15-150cm) gemerkt, dass die Distanz zur sonnenbeschienene Flächen nicht richtig gemessen wird (grosse Streuung und bis zu 10cm weniger Distanz). Natürlich kenne ich das SHARP-Datenblatt, aber dort wird nur vor dem direkten Ausrichten zur Sonne gewarnt.

    Ist nun die Sonne das Problem, weil sie die gleiche Wellenlänge wie der Sensor hat?

     

    Nun meine Frage: gibt es eine Möglichkeit, zu messen, ob sich mein IR-Sensor im direkten Sonnenlicht befindet? Denn dann würde ich einfach keine Messung machen.

    Ich hätte ans Helligkeits-Bricklet gedacht, aber das geht ja nur bis 900 lux  :(

     

    Gruss Lukas

  4. Hallo Zusammen

     

    Ich habe mir gerade den Schaltplan des Distance Bricklets angesehen:

    https://github.com/Tinkerforge/distance-ir-bricklet/raw/master/hardware/distir-schematic.pdf

     

    Könnte ich dieses Bricklet über I2C abfragen, also 5V, 3V dem Sensor zur Verfügung stellen und über SDA und SCL zu kommunizieren?

    Ich verstehe nicht ganz was der 6. Anschluss (ADDR) genau macht.

     

    Ich würde gerne den Raspberry Pi mit dem Dist-Bricklet verbinden (ohne Master)

     

    Vielen Dank, wenn ihr mir weiterhelfen könnt.

    Gruss Lukas

×
×
  • Neu erstellen...