Forum: Mikrocontroller und Digitale Elektronik Basic Stamp Programm einer Murmelsortiermaschine


von Main M. (main88)


Lesenswert?

Hallo Leute.

Ich habe da so ein Problem. Ich muss für die Schule eine Murmel 
Sortiermaschine machen und ich weiß einfach nicht wie ich die Programme 
dazu schreiben soll.

Ps: Ich muss mit einem Basic Stamp Controller Arbeiten.

Es sollte dann ungefähr so aussehen und Funktionieren:

https://www.youtube.com/watch?v=F9h75kcUYdk

Ich habe schon verstanden das es so Funktionieren soll:

   1. LED anschalten.
   2. Sensor messen.
   3. LED ausschalten.
   4. Motor zur Öffnung ausrichten.
   5. Je nach Messergebnis nach im oder gegen den Uhrzeigersinn drehen.
   6. Wiederholen.

Aber wie soll ich dadurch ein Programm schreiben und was für einen 
Servomotor muss ich mir dazu kaufen ?

Danke im Voraus.

: Bearbeitet durch User
von Udo S. (urschmitt)


Lesenswert?

Main M. schrieb:
> Ich muss für die Schule

Definiere das mal bitte genauer.

Main M. schrieb:
> Ich habe schon verstanden das es so Funktionieren soll:

Dann fang damit an. Schreibe kleine Testprogrämmchen die jeweils einen 
dieser Punkte können.
Wenn du das hast dann kann man diese Programmteile mit der 
entsprechdenden Logik verbinden und ... voila hat man ein 
funktionierendes Programm.

von Main M. (main88)


Lesenswert?

Ja okay, aber wie Verbinde ich sie mit einander ?

von Udo S. (urschmitt)


Lesenswert?

Zeig doch erst mal deine kleinen Progamme.
Heisst du zufällig Robin?

von Main M. (main88)


Lesenswert?

Nein, mein Name lautet Martin und bin aus Berlin. Ich kann nur die LEDs 
Programmieren das sie Blinken und dann dieses Wiederholen auch, aber die 
ganzen anderen Sachen verstehe ich nicht, oder wie man sie Verbinden 
sollte. Ich kann es schon machen aber wahrscheinlich total Falsch ...

von Udo S. (urschmitt)


Lesenswert?

Wir können dir hier nicht das Programm schreiben.
1. wissen wir nicht wie das aufgebaut ist und welche Bauteile du benutzt 
und wie die mit deinem µC verkabelt sind.
2. Haben (fast alle) keine Basic Stamp Umgebung oder Doku
3. "musst" du normalerweise in der Schule nichts machen, was du nicht 
soweit beigebracht bekommen hast das du es auch können müsstest.

Wenn es trotzdem irgendwo hängt dann wird dir hier gerne geholfen, aber 
die meisten hier haben eine Allergie gegenüber Schüler/Studenten die 
sagen "ich muss, habe aber keine Ahnung, also macht das bitte für mich"

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Main M. schrieb:
> 4. Motor zur Öffnung ausrichten.

Wieviele Sorten Murmeln gibt es denn? Wenn es nur 2 sind, würde ich mir 
den Motor sparen und einen Elektromagneten nehmen. Der wird wie eine LED 
angesteuert, nur mit einer Treiberstufe dazwischen (und einer 
Freilaufdiode). Es bleibt nur noch, den Sensor sinnvoll abzufragen und 
das Ergebnis (0 oder 1) auf den E-Magneten zu schicken.

von Main M. (main88)


Lesenswert?

Ja ich verstehe, meine Wortwahl habe ich unpassend gewählt. Im 
Nachhinein sehe ich das genauso. Ich möchte wirklich mein Problem lösen 
und nicht einfach nur das schnell hinter mich bringen. Ich gehe das 
Thema wirklich mit Leidenschaft an und möchte das auch in der Zukunft 
vertiefen. Ich möchte auch viele weitere Projekte während meinem Abitur 
und auch im Berufsleben angehen. Darum bräuchte ich hier Starthilfe, da 
ich in der Schule das Wissen nicht gut genug aufgenommen habe.

von Main M. (main88)


Lesenswert?

ja genau, ich müsste 2 Verschiedene Murmelarten automatisch Aussortieren 
lassen. Meine Vorstellung darüber sah aber so aus:

 https://www.youtube.com/watch?v=F9h75kcUYdk

Okay und wie Kann ich es abfragen lassen mit diesem If und Then ?

von Peter D. (peda)


Lesenswert?

Variante A)
Du läßt Dir den ADC-Wert anzeigen und legst den Schwellwert in die Mitte 
der Werte für schwarz und weiß.

Variante B)
Das Programm ist selbst lernend. Es ließt die Werte ein und merkt sich 
min und max. Dann legt es die Schwelle dazwischen.
Es kann dann sein, daß die ersten Murmeln falsch einsortiert werden, bis 
beide Farben die Lichtschranke passiert haben.

Ein Servomotor ist die einfachste Lösung. Dessen Position läßt sich 
einfach über einen PWM-Ausgang setzen.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Main M. schrieb:
> Youtube-Video "Murmelsortieranlage mit BASIC Stamp 1"

Ja, tolle Mechanik, aber eher langsame Verarbeitung. Der YTer verwendet 
ein Fernsteuerservo, das dann jeweils rechts und links dreht. Meine 
Lösung wäre eine Kugelbahn mit Weiche, bei der die Kugel über zwei 
Sensoren rollt (einmal 'Da kommt eine Kugel' und zum zweiten 'Die Kugel 
ist weiss') und dann die Weiche entsprechend stellen, die ein paar cm 
danach kommt.
Dann entfällt die Ansteuerung des Servos, die mögl. in Basic etwas 
kompliziert ist, sondern es ist eine reine Abfrage auf digitale Eingänge 
und Ausgänge.

von Frank G. (frank_g53)


Lesenswert?

Main M. schrieb:
> wie Kann ich es abfragen lassen mit diesem If und Then ?

Seite 18: 
https://lehrerfortbildung-bw.de/u_matnatech/nwt/gym/weiteres/fb1/mikro/anleitunga_mikrocontroller210v4.pdf

Seite 20: Analogwerte einlesen und verarbeiten

von Main M. (main88)


Lesenswert?

Okay, vielen Dank für Ihre großzügige Hilfe. Ich werde morgen ein 
Programm Formulieren und hier dann Entsprechend berichten.

von Main M. (main88)


Lesenswert?

Hallo ich bin es wieder und habe da jetzt was ausprobiert.
Ich habe von einem Ferngesteuertes Spielzugauto den servo Motor raus 
genommen und werde ihn benutzen.
Ich komme gar nicht weiter...

' {$STAMP BS1}
OUTPUT 4
OUTPUT 5
MAIN:
PIN5 = 1
PAUSE 500
PIN5 = 0
PAUSE 500
POT 5, 127, B0
DEBUG B0
GOTO MAIN
END

Wie soll ich da jetzt weiter Arbeiten ?

von Wolfgang (Gast)


Lesenswert?

Main M. schrieb:
> Wie soll ich da jetzt weiter Arbeiten ?

zielorientiert

Vielleicht solltest du im Programmcode Kommentare verwenden, um zu 
erläutern, was du mit den Befehlen bezweckst.

von Main M. (main88)


Lesenswert?

Ich versuche diesen Verlauf zu Bezwecken:

   1. LED anschalten.
   2. Sensor messen.
   3. LED ausschalten.
   4. Motor zur Öffnung ausrichten.
   5. Je nach Messergebnis nach im oder gegen den Uhrzeigersinn drehen.
   6. Wiederholen.

Scheitere aber jedes mal oder komme nicht weiter ...

von Otto (Gast)


Lesenswert?


von Narfie (Gast)


Lesenswert?

Die Ansteuerung eines Modelbauservos ist hier im Wiki beschrieben: 
https://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung.

Leider kennt sich mit den Basic-Stamps wohl niemand hier wirklich aus, 
aber du suchst nach dem Begriff PWM für die Generierung des 
Ansteuerungssignals des Servos. Eine kurze Suche erbracht zumindest mal 
dieses Ergebnis (http://emesystems.com/OLDSITE/BS2PWM.htm). Mein Tipp, 
erzeuge erst mal mittels PWM ein Signal, schau dir das Signal mit einem 
Oszi oder Logic-Analyzer an (sofern in der Schule vorhanden) und 
vergleiche es mit der Signalform, welche im Wiki-Artikel beschrieben 
ist.

von Stefan F. (Gast)


Lesenswert?

Eins nach dem anderen. Fange damit an, eine LED einzuschalten.

Hast du eine LED und einen Vorwiderstand?
Ist Dir klar, wie man diese Teile anschliesst?
Ist Dir klar, wie man die LED einschaltet?
Welche Unterlagen liegen Dir dazu vor?

von Main M. (main88)


Lesenswert?

Ich habe alles was ich benötige dafür und des sollte dann so 
Funktionieren.

https://www.youtube.com/watch?v=F9h75kcUYdk


also das ist auch meine Vorstellung.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Main M. schrieb:
> Ich habe alles was ich benötige dafür und des sollte dann so
> Funktionieren.

Du hast meine Fragen nicht beantwortet. Du musst lernen, die Aufgabe in 
kleine Teilschritte zu zerlegen, sonst kommst du nicht voran.

> Ist Dir klar, wie man diese Teile anschliesst?
> Ist Dir klar, wie man die LED einschaltet?
> Welche Unterlagen liegen Dir dazu vor?

von Main M. (main88)


Lesenswert?

Ja, mir ist klar das wie man die LED Anschliesst mehr aber auch nicht da 
ist es mehr so wie ich denke. Durch ein Programm mit PIN6 = 1 und PAUSE 
500 und so etwas. Bei den anderen bin ich mir sehr unsicher.

von Dieter S. (Gast)


Lesenswert?

Okay, ich helfe dir mit dem Zerlegen:
- LED ansteuern (kannst du anscheinend)
- Servo ansteuern (kannst du noch nicht)
- Sensor auslesen (kannst du anscheinend auch noch nicht)

Schreibe also drei Programme:
Für jeden dieser Teil-Aufgaben ein Programm. Nichts dolles, einfach nur 
Motor dreht sich nach links, mal nach rechts. Wenn die alle 
funktionieren, meldest du dich nochmal und wir können wir dir helfen, 
diese Teile zu kombinieren.

von Sven S. (boldie)


Lesenswert?

Vielleicht eine andere Idee, da es sehr schwer ist, wirklich Grundlagen 
über ein Forum zu vermitteln: Besuche doch einfach Leute, die sich mit 
solchen Sachen gerne beschäftigen. Du wohnst ja in Berlin, da gibt es 
viele Möglichkeiten, besuche doch einmal einen Hackerspace 
https://wiki.hackerspaces.org/Berlin und da bekommst du sicher Hilfe 
oder dir erklärt jemand ein paar Grundlagen, die du benötigst.

Ansonsten finde ich es eine coole Aufgabe, wo man einiges lernen kann. 
Bei den Murmeln nimmst du am Besten durchsichtige und undurchsichtige, 
dann wird es erstmal einfach :)

von Main M. (main88)


Lesenswert?

Ja für euch klingt das Einfach und ist wahrscheinlich sogar witzig das 
ich es nicht alleine meistern kann, aber für mich ist das eine 
Riesengroße Aufgabe.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

RC Servo: Nehmen wir mal an, das das Servo an deinem Pin 6 hängt.
Dann sollte dieses Unterprogramm es in die eine Richtung drehen:
1
PIN6 = 1
2
PAUSE 1
3
PIN6 = 0
4
PAUSE 19
5
RETURN
Vorrausgesetzt, PAUSE hat als Argument die Wartezeit als Millisekunden - 
dafür weiss ich zu wenig über den BASIC Stamp.
Und dieses Unterprogramm gibt einen Puls für die andere Richtung:
1
PIN6 = 1
2
PAUSE 2
3
PIN6 = 0
4
PAUSE 18
5
RETURN
Diese Unterprogramme solltest du ein paarmal hintereinander aufrufen 
oder in einer FOR-NEXT Schleife, denn die Servos mögen einen 
kontinuierlichen Signalstrom.

: Bearbeitet durch User
von michael_ (Gast)


Lesenswert?

Narfie schrieb:
> Leider kennt sich mit den Basic-Stamps wohl niemand hier wirklich aus,

Kaum.
Vor 20 Jahren habe ich so einen Set geschenkt bekommen und schnell 
wieder weggelegt.

> aber du suchst nach dem Begriff PWM für die Generierung des
> Ansteuerungssignals des Servos. Eine kurze Suche erbracht zumindest mal
> dieses Ergebnis (http://emesystems.com/OLDSITE/BS2PWM.htm). Mein Tipp,
> erzeuge erst mal mittels PWM ein Signal, schau dir das Signal mit einem
> Oszi oder Logic-Analyzer an (sofern in der Schule vorhanden) und
> vergleiche es mit der Signalform, welche im Wiki-Artikel beschrieben
> ist.

Nach meiner Erinnerung macht das keine echte PWM.
Sondern die Frequenz wird irgendwie geändert.
PWM habe ich dann mit dem AVR gemacht.

von leo (Gast)


Lesenswert?

michael_ schrieb:
> Nach meiner Erinnerung macht das keine echte PWM.

Mit Google-Suche "basic stamp pwm" findet sich genug.
1
Syntax: PWM Pin, Duty, Duration
Ob das passt mag wer beurteilen, der die Hardware hat.

leo

von Forist (Gast)


Lesenswert?

Main M. schrieb:
> Ja für euch klingt das Einfach und ist wahrscheinlich sogar witzig das
> ich es nicht alleine meistern kann, aber für mich ist das eine
> Riesengroße Aufgabe.

Die geordnete Nutzung der Shift-Taste wäre auch noch so ein Ding.

von michael_ (Gast)


Lesenswert?

leo schrieb:
> Mit Google-Suche "basic stamp pwm" findet sich genug.Syntax: PWM Pin,
> Duty, Duration
> Ob das passt mag wer beurteilen, der die Hardware hat.
>
> leo

Eben, ich hab die Hardware. Werd aber den Teufel tun, diesen Mist wieder 
zu aktivieren. Und vor allem in der 1. Generation. Wie kommt man heute 
noch darauf, das zu verwenden? Lehrer eben.
Und nicht nur Google-Theorie machen.

Vor 20 Jahren brauchte ich PWM.
Es sah gruselig auf dem Oszi aus.
Eigentlich ist es ein PIC mit BASIC-Interpreter.

Das Problem des TO wird nicht PWM sein.
Es kann also gehen.

von Main M. (main88)


Lesenswert?

Leute,
könnte jemand mir die einen Programme schreiben, weil ich glaube das des 
alles gar nicht viel ist und für euch einfach Kinderkram ist. Ich komme 
damit einfach gar nicht klar. Soll ich dann irgendwelche angaben noch 
berichten oder ?

von Stefan F. (Gast)


Lesenswert?

Schicke mir die fertig aufgebaute Hardware, dann programmiere ich es Dir 
für 200€ ohne Gewährleistung.

Mal im ernst: Wenn du es nicht kannst, dann breche das Projekt ab und 
melde den Misserfolg. Das gehört zum Erwachsen-werden dazu. Niemand muss 
alles können.

von Schlumpf (Gast)


Lesenswert?

Lieber Martin,

Wenn das ein Projekt für die Schule ist, dann wurden euch sicher die 
Grundlagen vermittelt.

Wie man das Problem in überschaubare Teilprobleme zerlegt, wurde dir 
hier gesagt.

Aber du willst diese Hilfe nicht annehmen, sondern willst, dass dir 
jemand das fertige Ergebnis liefert.
Sollen wir vielleicht auch deine nächste Mathearbeit für dich schreiben?

Du bist in der Schule, um was zu lernen.

Und offenbar bist du nicht mal im Stande, dein Problem so darzustellen, 
dass ein Außenstehender dir helfen kann.

Wenn du mit dem ganzen Thema völlig überfordert bist, dann bitte deinen 
Lehrer um Hilfe.
Dazu sind sie da!

Oder mach das, was Stefanus dir vorgeschlagen hat.
Melde den Misserfolg.
So ein Projekt dient dazu, den Lernerfolg der Schüler zu prüfen. Der 
scheint bei dir quasi Null zu sein.
Und dafür gibt es dann auch zurecht ne 6.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.