Wie kompiliert man MicroPython vom Quellcode selbst?

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Angezeigt im Sinne von das ist das richtige. Also 2-10K, ja.

Und ein Schaltplan - anders als eine Platine - hat keine räumliche Beschränkung. Der kann so ausholend werden wie es sein muss. Klarheit trumpft dort.
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Alles klar, vielen Dank 👍

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Noch ein Tipp: in KiCad arbeite ich viel mit Netznamen. Das sind Labels, die eine Leitung benennen, und dann muss man die nicht verbinden. Das ist eine Geschmacks- und Abwaegungssache, *nur* damit zu arbeiten fuehrt zu genauso viel Unverstaendnis.

Aber es ist gut, wenn man zB Busse hat, und dann Komponenten, die an diesen Bussen haengen, einfach nur ueber deren Netznamen verbindet. Wird der Typ auch erklaeren, nur als Hinweis darauf zu achten.
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Hey,

danke für die Hinweise, habe ich mit aufgenommen und dadurch ist ein neuer Schaltplan entstanden. Ich finde er sieht wesentlich übersichtlicher aus, du auch?
Er wurde gerade erst fertig, ich muss den morgen dann mal mit meinem Aufbau vergleichen und schauen ob sich da noch ein Fehler eingeschlichen hat.

Die orangenen Pfeile sind Warnungen. An der Stiftleiste zum Beispiel weil ich Den ersten Pin als Stromversorgung gesetzt habe und den Rest als Bidirektional und an den Widerständen kommen Warnungen, weil er den Footprint nicht finden kann. (Die muss ich noch aktualisieren). Wollte den Stand jetzt trotzdem schon mal zeigen, da ich jetzt noch was anderes machen muss.

Grüße
Dennis

Edit: Ist das eigentlich als Bild gut zum anschauen oder soll ich das irgendwie anders teilen?
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

um noch einmal auf dieses Problem zurück zu kommen.
Es tritt selten auf. Wenn ich den Motor über 360 drehen lasse und er dann zurück dreht und bei 360 halten soll, dann überfährt er die ab und an und hält dann bei 0. An sich ist es ja die gleiche Position, aber es ist nicht schön wenn er meistens zum Bsp. nur 10° zurück dreht und zwischen durch mal 370°.

Ich habe einen Thread im Programm, der mein Display aktualisiert. Der wird gestartet, sobald die Maschine ihre Referanzfahren erledigt hat. Wenn ich diesen Thread auskommentiere, konnte ich den Fehler nicht mehr erzeugen. Ich habe es zumindest oft versucht und durch dass das der Fehler eher selten auftritt kann ich nur zu 90% sagen, dass der Thread einen Einfluss darauf hat.
Wenn ich mich recht erinnere, dann entscheidet Python die Priorität der Threads? Kann ich (wahrscheinlich mit eurer Hilfe) Prioritäten setzen? Das Auslesen des Encoders wäre mir wichtiger, wie die Displayaktualisierung. Während des Betriebs wird man vermutlich eher selten am Regler drehen, wenn das einmal eingestellt ist, sollte man die Serie an Bauteilen durchschweißen können.

Danke und Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Der Schaltplan ist besser, aber ein paar konfuse Dinge gibt's da noch fuer mich. Warum zweimal 5V? Und irgendwie finde ich die Zehner-Dioden + Trimmpoti-Geschichte unklar. Die Zehner sollte als unterer Teil eines Spannungsteilers nach unten mit GND verbunden sein. Und vor allem: warum ist das Poti nochmal mit GND verbunden? Wenn du das so verkabelt hast, ist das falsch - denn dann ist das untere "Bein" von OUT zu GND des Potis parallel zur Zehner, und das ist quatsch.

Was dein anderes Problem angeht: Thread-Prioritaeten kann man AFAIK so einfach nicht setzen, und selbst wenn: das ist mal wieder das boese R-Wort, wenn es denn *genau* sein soll. Denn dann muss geregelt werden, weil es zum ueberschiessen kommt. Soll es aber ja eigentlich nicht, in Grad mehr oder weniger kommt's wahrscheinlich nicht an. Du hast nur das Problem, dass du die falsche Bedingung hast. == ist halt Mist, weil es dann *genau* in dem Moment passieren muss. Stattdessen muss das ein - abhaengig von der Richtung - kleiner oder groesser-Vergleich sein. Wenn du "zurueck" drehst (also von grossen auf kleinere Gradzahlen), dann muss es eben if position < 360 or position < 0 sein. Dann stoppt der Kram auch bei -1 oder 359.
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Hi und danke für deine Antwort.

Die 5V kommen von einem Stepdown, der max. 1A kann und ich wollte nicht das Display, den ESP und den Motortreiber über einen Stepdown versorgen, deswegen habe ich zwei drin. Ich dachte mir, dass ich dadurch auf der sicheren Seite bin, was die Stromversorgung an geht.
Die Z-Diode habe ich so verkabelt wie im Schaltplan. Ich kann nicht begründen wieso ich den Poti nochmal mit GND verbunden habe. Ich dachte mir vermutlich "Eingang, Ausgang und GND". Aber wenn ich mir darüber Gedanken mache, dann bin ich damit einverstanden, dass das Mist ist.
Ich ändere das morgen ab und zeig es dann noch mal.

Die Abfrage im Programm werde ich auch ändern. Ich habe nur nächste Woche keine Möglichkeit das zu testen, aber ich bin ja mit dem Schaltplan und der Platine noch beschäftigt.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da es ein PNG und kein PDF war, konnte ich nicht nach der zweiten Stromversorgung schauen. Wenn die zweite 5V einfach andere Komponenten versorgt, sollte das ok gehen. Schlecht ist nur ein kurz schließen, dann fuhrwerken die Konverter sich gegenseitig in die Regelung.
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Okay, das hört sich gut an, Danke.

Dann lade ich die nächste Version als PDF hoch 🙂

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Guten Abend,

Der geänderte Schaltplan als PDF. Die GND-Anschlüsse der Trimm-Widerstände sind weg und die Z-Dioden habe ich nach "unten" gedreht.

Die Platine ist meiner Meinung nach auch schon ziemlich weit. Ich muss im nächsten Schritt die Bezeichnungen ordentlich hinziehen, damit man auch was lesen kann, an ein paar Stellen habe ich noch Überschneidungen die ich anpassen muss und ein Anschluss für die 24V fehlt mir noch. Da will ich eine Klinke-Steckverbindung nehmen. Und Befestigungslöcher müssen noch rein.
Da ich aber schon etwas eine Freunde am Stand der Platine habe, hier eine Vorschau davon. Ich habe die Massen-Flächen mal eingeblendet gelassen. Wenn ich damit fertig bin, in welchem Format soll ich das hochladen?

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Also die Spannungsteiler für die 24V Encoder Eingänge sind immer noch Quatsch. Der Eingang muss doch an IN, und Zehner und GPIO-Zuführung an OUT.

Die Platine muss ja ein Bild sein. Das war schon ok.
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Ah Mist, ja die Z-Diode muss an OUT, da war ich etwas zu schnell, dabei habe ich extra ein Bild vom Aufbau gemacht.
Die A- bzw. B-Leitung die vom Encoder mit 24V kommt, geht ja aber an IN und wäre die Z-Diode jetzt an OUT, dann würde die geteilte Spannung (3,3V) an den GPIO gehn. Ich habe ja jetzt "nur" die Z-Diode falsch angeschlossen, wenn ich es richtig verstanden habe.


Vielen Dank und Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ja, die 24 Volt laufen in den veränderlichen Widerstand (also IN -> OUT), und an OUT kommt sowohl die Zehner, um den Spannungsteiler auf 3V3 runter zu bilden, als auch der GPIO Eingang. Und dann würde ich aber auch die Potis im Schaltbild um 180 grad drehen, damit IN oben ist, da kommt die 24V rein, und Poti + Z sind dann ein klassischer Spannungsteiler, den man ja auch übereinander malt.
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

So, vielen Dank für die Erklärung. Dieser Schaltplan ist dabei rausgekommen.
Hoffentlich passt es jetzt, ich habe nebenher gleich noch die Positionen etwas anders angeordnet. Das sollte ich in Zukunft lieber erst mal sein lassen.
Den Spannungsteiler vom Näherungsschalter habe ich auch untereinander angeordnet.

Vielleicht wäre es noch schöner wenn ich für die A- und B-Leitung Labes verwende, anstatt die zwei eng aneiner laufenen Leitungen.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Und meine Platine sieht jetzt so aus

Ja die Befestigungslöcher sind im Vergleich zum Rest schon groß, ich wollte aber wenigstens M5 Schrauben verwenden. Der Platz "unten" bekommt vermutlich noch zwei Löcher, da kann ich dann mit zwei Distanzen die Platine des Motortreibers anschrauben. Ansonsten habe ich beidseitig eine Massefläche gezogen und alles so ordentlich wie möglich angeordnet. Die Stromversorung findet über den 24V-Pin statt, dort löte ich einen Stecker fest fest, ebenso wie am GND-Pin.
Wenn ich morgen den Motortreiber ausmesse, dann messe ich auch noch einen Widerstand nach. Da habe ich jetzt zwar einen vorhanden Footprint dafür ausgesucht, aber es kann sein dass der auch zu groß ist. (Es gibt ja verschiedene Größen zur Auswahl, einer wird dann bestimmt passen) Ich habe für die Strombahnen jetzt kein breiteren Bahnen gewählt, da ich mir dachte, dass das bei mir unkritisch ist.

Wenn die Platine Ähnlichkeit mit der ersten hier gezeigten hat, dann ist das Zufall. Ich habe dafür noch einmal auf einem leeren Blatt angefangen. Ich bin für mich mit dem Ergebnis zufrieden, habe ja aber auch keine Ahnung davon.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo zusammen,

gestern kam ein Paket und nach etwas Lötarbeit kam das dabei raus.
Bitte die rießen Stecker ignorieren, falls das möglich ist. Das habe ich total verpennt, dass ich da noch kleinere Alternativen reinmachen wollte.

Auf jeden Fall habe ich mal alles angeschlossen, was ohne Maschinen möglich war und getestet und Strom gemessen und es hat alles funktioniert 🙂

Es wäre ja aber nicht mein Projekt wenn nicht ein "aber" kommen würde. Nach dem ich den Motortreiber anschloss und wieder Strom auf die Platine gab, gab der ADC Rauchzeichen von sich. Vermutlich wollte er mir sagen, das es ihm zu heiß ist 🙄
Ich sehe leider keinen Zusammenhang zu Motortreiber und ADC.
Ich habe dann alles abgebaut und auf der Platinenunterseite fiel mir eine Beschädigung auf. Das ist der A0 des ADC. Also der erste Eingang. Meine Vermutung ist jetzt, dass das die Ursache für die Rauchzeichen ist. Allerdings hatte ich immer eine Gummimatte auf dem Tisch liegen als ich an der Platine gearbeitet habe und kann mir nicht erklären, wie das passieren konnte.

Auf der Heimfahrt fiel mir ein, das ich vielleicht doch was dummes gemacht habe. Um das Lötfett auf der Platine zu entfernen habe ich etwas Verdünnung genommen, könnte dass die Oberfläche beschädigt haben?


Viele Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

An sich nett geworden. Was ich nicht gemacht haette (weil ich es mal gemacht habe....): den ESP ungesockelt aufgeloetet. So zumindest sieht's aus. Der sollte auch auf Buchsen sein. Auch bei den Chips und dem ADC waere das ggf. zu erwaegen.

Und den Barrel-Connector wuerde ich am Rand positioneren, damit man da vernuenftig ran kommt.

Das du die Platine beschaedigt hast, kann ich mir schwer vorstellen. Bzw, dass das die Ursache ist. Wenn unterbricht man da was, aber leitet Strom nicht falsch. Ich wuerde erstmal alles sauber nachmessen. Versorgungsspannung da wo sie sein soll, richtige Polaritaet, Spannung, etc pp.
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Danke für die Antwort und das Kompliment (Das ist aber zum Großteil dein Verdienst).
Den ESP habe ich auf einem Sockel, die anderen Sachen leider nicht.

Dann setze ich mich morgen noch einmal in Ruhe hin und schaue ob ich einen Fehler finde. Ich hatte auch eigentlich keine offenen Kabelenden oder ähnliches, die einen Kurzschluss hätten erzeugen können.
Aber bis zu diesem Moment, haben die drei Potis wunderbar funktioniert ink. der Darstellung auf dem Display. Ich berichte was die Messungen ergeben haben.

Wie machst du nach dem Löten deine Platinen sauber? War Verdünnung etwas zu "übertrieben"? Mich hat das gleich gestört, das ich die Platine in die Hand nehme und schon das Lötfett an den Fingern hatte.
Der Connector ist doch am Rand? Weiter links und er sitzt neben der Platine oder was meintest du damit?

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Aber kein Geraet hat doch die Oeffnung des Barrelconnectors ueber der Platine. Dann kann man doch kaum ein Gehauese drum bauen.

Platinen reinige ich mit Isopropanol.
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Achso, ich verstehe was du meinst. Mein Plan ist dass das Netzteil, das die 24V liefert im gleichen Gehäuse sitzt. Dann muss der Bediener nur ein Kabel von einer 230V Steckdose an das Gehäuse stecken. Als Anschluss habe ich so eine 3er Dose wie man sie an vielen PCs findet.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Antworten