- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 140

Thema: Meine CNC is fertig ;)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    @sebastian
    Die leiterplatte habe ich machen lassen, das kostet 30€ und ist weniger arbeit als selber ätzten, bin ich mittlerweile irgendwie zu faul dazu
    wie regelst du denn den depronschneider? ist das auch von EMC2 aus?
    über hilfe freu ich mich immer, also wenn du mcodes hast kannst die mir gerne zur analyste zur verfügung stellen.
    Bzw wenn du mir den code hättest wie ich von einer Mcode datei mit python oder so den wert über RS232 senden kann wäre das fein.
    Mein filament bekomm ich von verschiedenen shops: habe welches mal im Ebay gekauft, dann bei grrf oder auch bei watterott, da ist es grad billig, gibt es viele shops.
    ja is so schönes wetter, da sollte ich meinen Quadrocopter mal wieder raussuchen

    ps. ich komm mit dem neuen forum nicht klar, hier gabs doch mal den button "eigene beiträge" wo is der denn hin?
    Geändert von goara (01.04.2011 um 11:47 Uhr)
    meine projekte: robotik.dyyyh

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von .:Sebastian:.
    Registriert seit
    07.01.2006
    Ort
    Arkon I
    Beiträge
    203
    Moin

    Also ich hab mir auch eine kleine Controllerplatine gefrickelt.
    http://sebastians-site.de/homepage/e...schneider.html

    Die redet über RS232 mit nem EMC Hal Modul, was ich in Phyton geschrieben hab.

    Code:
    #!/usr/bin/python
    
    ###
    #
    # EMC hal modul for hot-needle-cutter
    # Sebastian Schumb 2009 (www.sebastians-site.de)
    #
    ###
    import hal, time,  serial
    
    hc = hal.component("hot_needle")
    hc.newpin("temp_setpoint", hal.HAL_FLOAT, hal.HAL_IN)
    hc.newpin("temp_value", hal.HAL_FLOAT, hal.HAL_OUT)
    hc.newpin("mc_ready", hal.HAL_BIT, hal.HAL_OUT)
    hc.newpin("temp_ready", hal.HAL_BIT, hal.HAL_OUT)
    hc.ready()
    
    ser = serial.Serial('/dev/ttyS1', 9600, timeout=0.2)
    
    try:
    
        while 1:
            hc['mc_ready'] = False
            hc['temp_ready'] = False
    
            while ser.read(4) != 'ackn':
                ser.write("init")
            
            hc['mc_ready']    = True    
    
            retries = 0
    
            while retries <= 5:
                    time.sleep(0.1)
                    sp = str(int(hc['temp_setpoint'] * 10)+1)
                sp = sp.rjust(4,'0')
                ser.write(sp)
                
                while ser.read(4) != 'ackn' and retries <= 5 :
                    ser.write(sp)
                    retries += 1
    
                if retries <= 5:    
                    retries = 0
                
                ret = ser.read(4)
                while not ret.isdigit() and retries <= 5 :
                    ret = ser.read(4)
                    retries += 1
                
                if retries <= 5:    
                    retries = 0
                
                ser.write('ackn')
                
                if ret.isdigit() :     
                    retf = float(ret) / 10;
                    hc['temp_value'] = retf
                    if retf >= hc['temp_setpoint']:
                        hc['temp_ready'] = True
                    else :
                        hc['temp_ready'] = False
                            
    except KeyboardInterrupt:
        raise SystemExit
    Ist leider nicht kommentiert (Schande über mich), aber ich denke man kann erkenne worauf es hinaus läuft.
    Mittlerweile weiß ich auch von Zustandsautomaten und wie man die für sowas benutzt.
    Von daher sollte ich es noch mal in elegant schreiben, wenn ich zeit habe.

    An sich wird so kommuniziert :
    Code:
    Modul : init    uC zurücksetzen
    uC :    ackn    acknowledge
    Modul : 2578    Soll-Temperatur (257,8°C)
    uC :    ackn    
    uC :    2380    Ist-Temperatur  (238,0°C)
    Modul : ackn    
    Modul : 2578    Soll-Temperatur (257,8°C)
    Siehe oben.
    Das wiederholt sich kontinuierlich, weil so merkt einerseits EMC sofort wenn der uC tot ist und dann wird über den mc-ready Pin der Notaus von EMC getriggert.
    Andererseits merkt uC wenn die Verbindung weg ist und schaltet erstmal die Heizung ab.
    Man hätte auch eine Art keep-Alive Paket machen können, aber so gehts auch.

    Ich hab irgendwann einmal mit M-Code-Scripten rumgespielt um die Temperatur setzen zu können.
    Aber die sind irgendwo vergaben.

    Gruß
    Sebastian

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests