EV3-Basic Projekte !

Modelle zum Nachbauen oder wo gibt es etwas interessantes oder Projekte?

Moderator: Moderatoren

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5399
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

EV3-Basic Projekte !

Beitragvon HaWe » 25. Mär 2015 10:48

hallo,
gibt es schon vorzeigbare EV3-Basic Projekte? Auch ganz einfache Sachen vielleicht wie Linienfolger oder Bumper-Cars, mit Code und Video?

In diesem Projekte-Topic könnt ihr komplette, bereits weitgehend fertige Projekte mit Bildern, Code und Videos einstellen, und ein paar Erklärungen, wenn sie nicht selbsterklärend sind. So, dass andere sie mehr oder weniger leicht nachbauen oder als praktische Anregungen verwenden können.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Peter28
Schreibt viel
Schreibt viel
Beiträge: 185
Registriert: 2. Nov 2013 21:44
Wohnort: Schmallenberg

Re: EV3-Basic Fahrzeug mit Schwenkradar

Beitragvon Peter28 » 25. Mär 2015 11:50

Hallo,
bin wie schon im anderen Thread angedeutet an einem Fahrzeug dran, welches die Umgebung scannt. Im Gegensatz zu sonst soll es aber bei Hinternissen nach Möglichkeit nicht stereotyp rückwärts, drehen und weiterfahren, sondern ausweichen. Quasi immer an der Wand lang. Kann noch mit Compass kombiniert werden und dadurch immer wieder um Hinternisse in eine bestimmte Richtung schwenken. Weiß zwar noch nicht genau wofür das gut sein soll, aber wenn ich damit fertig bin kenne ich mich sicher mit SB und den "cOpperschen Erweiterungen" etwas bessr aus.

Peter28
Schreibt viel
Schreibt viel
Beiträge: 185
Registriert: 2. Nov 2013 21:44
Wohnort: Schmallenberg

Re: EV3-Basic Fahrzeug mit Schwenkradar

Beitragvon Peter28 » 26. Mär 2015 15:02

Hallo HaWe,
das 1. SB-Programm mal zum auseinandernehmen. Habe schon versucht, alles so einfach wie möglich zu gestalten + Kommentare. Für Aufklärung bei typischen Anfängerfehlern wäre ich dankbar. Auf den Bildern ist ein Mast mit IR-Sen. und Kompass für weitere "Spielereien".

Habe den Code hier herausgenommen und weiter unten den aktualisierten eingefügt.


Bild Bild Bild
Zuletzt geändert von Peter28 am 2. Apr 2015 07:16, insgesamt 1-mal geändert.

Peter28
Schreibt viel
Schreibt viel
Beiträge: 185
Registriert: 2. Nov 2013 21:44
Wohnort: Schmallenberg

Re: EV3-Basic Fahrzeug mit Schwenkradar

Beitragvon Peter28 » 27. Mär 2015 18:55

Hier das Video dazu. Gegenüber dem obigen Programm ist noch dazu gekommen, dass der eigendliche Start und Stop mit der IR-Fernst. erfolgt. Auch die Geschwindigkeit läßt sich damit ohne anzuhalten steuern.


Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5399
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: EV3-Basic Projekte!

Beitragvon HaWe » 27. Mär 2015 19:16

super! :prima:

und das ist jetzt sogar eine Premiere: das weltweit erste EV3-Basic-Projekt-Video! :applaus:


cOpperdragon hat geschrieben:Das mit den schwenkenden Sensor finde ich eine gute Idee. Das wäre das selbe Prinzip wie ein Blindenstock funk
tioniert. Und das funktioniert ja seit hunderten Jahren...
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Peter28
Schreibt viel
Schreibt viel
Beiträge: 185
Registriert: 2. Nov 2013 21:44
Wohnort: Schmallenberg

Re: EV3-Basic Fahrzeug mit Schwenkradar

Beitragvon Peter28 » 30. Mär 2015 11:04

Sooo,
ich haben fertig - das obige Programm. Das Tempo der Schwenkbewegung und die Empfindlichkeit auf Entfernung ist jetzt geschwindigkeitsabhängig. Die Ausgangsstellung des Armes ist mittig. Nach Start des Programm wird das Losfahren, Ändern der Geschwindigkeit, händisches steuern rechts/links und Stop mit der IR-Fernb. ausgelöst. Dabei fährt das Teil aber auch komplett autonom, wenn nicht eingegriffen wird.

Code: Alles auswählen

i=0                                'gemessener Schwenkwinkel
speed=10                           'normales Tempo - Antrieb
weite=100                          'Abstand zum Hindernis
Tempo=10                       'Tempo - schwenken
time=0                             'Bremszeit Motor
winkel=70                         'Schwenken Ausschlag
k1lo=0
k1lu=0
k1ro=0
k1ru=0
k1mitte=0
k2lo=0
k2lu=0
k2ro=0
k2ru=0
k2mitte=0
Thread.Run=IRSteuerung

While k1mitte<>1
'--- warten auf Mitteltaste
EndWhile
Motor.ResetCount("B")
Thread.Run=schwenken

While "true"
  Motor.Speed("AD",speed)
  Motor.Start("AD")
  If k1lo=1 Then
    speed=speed+0.1
  endif
  If k1lu=1 Then
    speed=speed-0.1
  endif
  Tempo=speed
  If  weite <3 or k2mitte=1 Then      'Stop
    Goto ende
  EndIf
  '----------- Handsteuerung ----------------
  If k2ro=1 then             'Drehen nach rechts
      Motor.Stop("A","true")
  EndIf
  If k2lo=1 then            'Drehen nach links
      Motor.Stop("D","true")
  EndIf
  '-----------------------------------------------
  If weite<5+speed/4 Then
    time=40*(75-Math.Abs(i))-25*weite 'mit 30 und 15 experimentieren
    If i<=0 then             'Drehen nach rechts
      Motor.Stop("A","true")
      Program.Delay(time)
    else                'Drehen nach links
      Motor.Stop("D","true")
      Program.Delay(time)
    EndIf
  EndIf
EndWhile
ende:
Thread.Run=mittelstellung
Motor.Stop("AD","true")
Program.Delay(2000)
'--------------Threds---------------------------------------------------------------------------------------------
Sub schwenken
  Sensor.SetMode(1,0)              'Ultraschallsensor Port 1, auch mit IR-Sensor
  Motor.ResetCount("B")            'möglich, dann aber "40" und "10" anpassen
  while "true"
    Motor.Speed("B",Tempo)
    Motor.Start("B")
    While i<winkel
      i = Motor.GetCount("B")
      Weite=Sensor.ReadPercent(1)
    EndWhile
    Motor.Stop("B","TRUE")
    Motor.Speed("B",-Tempo)
    Motor.Start("B")   
    While i>0
      i = Motor.GetCount("B")
      Weite=Sensor.ReadPercent(1)
    EndWhile
    While i>-winkel
      i = Motor.GetCount("B")
      Weite=Sensor.ReadPercent(1)
    EndWhile
    Motor.Stop("B","TRUE")
    Motor.Speed("B",Tempo)
    Motor.Start("B")
    While i<0
      i = Motor.GetCount("B")
      Weite=Sensor.ReadPercent(1)
    EndWhile
  EndWhile
EndSub
'-------------------------------------------------------
Sub IRSteuerung
  sensor.SetMode(2,2)
  While "true"
    '------- Kanal 1
    x=sensor.ReadRaw(2,1)
    if x[0]=1 Then
      k1lo=1
    Else
      k1lo=0
    EndIf
    if x[0]=2 Then
      k1lu=1
    Else
      k1lu=0
    EndIf   
    if x[0]=3 Then
      k1ro=1
    Else
      k1ro=0
    EndIf
    if x[0]=4 Then
      k1ru=1
    Else
      k1ru=0
    EndIf
    if x[0]=9 Then
      k1mitte=1
    Else
      k1mitte=0
    EndIf
    '------ Kanal 2
    x=sensor.ReadRaw(2,2)   
    if x[1]=1 Then
      k2lo=1
    Else
      k2lo=0
    EndIf
    if x[1]=2 Then
      k2lu=1
    Else
      k2lu=0
    EndIf   
    if x[1]=3 Then
      k2ro=1
    Else
      k2ro=0
    EndIf
    if x[1]=4 Then
      k2ru=1
    Else
      k2ru=0
    EndIf
    if x[1]=9 Then
      k2mitte=1
    Else
      k2mitte=0
    EndIf   
'----bis Kanal 4 erweiterbar lt. Schema   
  EndWhile
EndSub
'-------------------------------
Sub mittelstellung
  If i>=0 then
      Motor.Speed("B",-Tempo)
      Motor.Start("B")   
      While i>0
          i = Motor.GetCount("B")
      EndWhile
      Motor.Stop("B","TRUE")
     else
      Motor.Speed("B",Tempo)
      Motor.Start("B")
      While i<0
          i = Motor.GetCount("B")
      EndWhile
      Motor.Stop("B","TRUE")
    endif
EndSub   



Bis dann
Peter
Zuletzt geändert von Peter28 am 2. Apr 2015 07:18, insgesamt 1-mal geändert.

maev
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 36
Registriert: 13. Apr 2013 17:57

Re: EV3-Basic Ostereierbemaler

Beitragvon maev » 31. Mär 2015 10:32

Hallo zusammen, wir (meine Kinder und ich) haben einen Ostereierbemaler gebaut.
Ein Motor dreht das Ei, ein weiterer schwenkt den Stift auf und ab.

Hier schon mal das Video, mehr heute Abend: https://youtu.be/zWs8OLeEXHM




Das Grundkonzept ist übrigens nicht von mir, die findet man im Web. Ich habe mir dann selber was gefrickelt und dazu eine Stifhalterung einfallen lassen. Mache mal ein Foto davon. Programmiert haben dann die Kinder, außer die Sinuskurve, die kommt von c0pperdragon :)

maev
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 36
Registriert: 13. Apr 2013 17:57

Re: EV3-Basic Ostereierbemaler

Beitragvon maev » 31. Mär 2015 18:47

Hallo, ... lieber keinen großen Behei darum machen. Hier aber die restlichen Angaben: Der Code der Kurven ist wie gesagt fast vollständig von c0pperdragon bis auf kleine Änderungen.


Hier ein Foto. Der Liftarm mit dem "Doppelloch" ermöglicht, dass der Stift auch einer nicht ganz runden Form (also dem Ei) folgt. Hier ein Foto dazu:
20150331_191037.jpg


Code: Alles auswählen

Y_PREV = 0          ' diese variable merkt sich, wo motor D gerade war

While "true"
For X=1 To 360      ' schritte in einzelnen graden machen
  Y = 70*Math.Sin(X/180*Math.PI)     ' Y abhängig von X berechnen
  Y = Math.Round(Y)      ' runden auf ganze grad  (motor kann es nicht genauer)

  Y_INC = Y - Y_PREV    ' berechnen, wie weit man motor D drehen muss um zu position Y zu kommen
  Y_PREV = Y            ' position für den nächsten durchgang merken

  Motor.SchedulePowerForCount("A",100,0,5,0,"true")  ' motor A ein grad weiterdrehen
 
  If Y_INC>0 Then              ' motor D entweder vorwärts drehen
    Motor.SchedulePowerForCount("D",100,0,Y_INC*3,0,"true")
  Else                         ' oder rückwärts drehen
    Motor.SchedulePowerForCount("D",-100,0,Y_INC*3,0,"true")
  EndIf

  Motor.Wait("AD")  ' warten bis beide motoren am zielpunkt sind
EndFor
EndWhile


Hier ein einfaches Treppenmuster der Kinder. Zwillinge 9 Jahre, sowas haben die aber auch schon mit 6 auf dem RCX in NQC mit mir gemacht ;)

Code: Alles auswählen

While "true"   
For x = 1 To 12
  Motor.Move("A",50,"true")
  Motor.Move("D",50,"true")
EndFor
For x = 1 To 12
  Motor.Move("A",50,"true")
  Motor.Move("D",-50,"true")
EndFor
EndWhile

Benutzeravatar
c0pperdragon
Schreibt viel
Schreibt viel
Beiträge: 231
Registriert: 9. Feb 2015 00:29

Re: EV3-Basic Projekte !

Beitragvon c0pperdragon » 4. Apr 2015 07:16

Das mit den schwenkenden Sensor finde ich eine gute Idee. Das wäre das selbe Prinzip wie ein Blindenstock funk
tioniert. Und das funktioniert ja seit hunderten Jahren...

Peter28
Schreibt viel
Schreibt viel
Beiträge: 185
Registriert: 2. Nov 2013 21:44
Wohnort: Schmallenberg

Re: EV3-Basic Projekte !

Beitragvon Peter28 » 5. Apr 2015 21:53

Hallo,
hier die Sache mit dem Blindenstock. Z.Z. ein Testaufbau mit kl. Motor und schwenkendem Lichtsensor,unter dem ein ca. 10 cm breites Papierband mit Wellenlinie gezogen wird. Dabei reicht für die Linie tatsächlich eine Dicke von ca. 2-3mm !! Nach einem großen Ausschlag beginnt das "schnüffeln" auf der Linie mit einstellbarem Ausschlag. Falls die Spur verloren geht, sofort große Ausschläge bis zum Wiederfinden. Verhält sich also wie ein Hund.
Fortführend soll das Fahrzeug, welches damit ausgestattet wird, so angesteuert werden, dass es quasi Schwenkrichtung und Fahrzeugachse in eine Linie bringt. Da das nicht abrupt, sondern je nach Auslenkwinkel exakt angesteuert werden kann, erhoffe ich mir eine sehr saubere Linienführung ohne PID-Steuerung und dem damit trotz allem verbundenem schwingen um die Linie.

Code: Alles auswählen

'-- Start in Mittelstellung -----
Sensor.SetMode(4,0)
wert=Sensor.ReadPercent(4)
Tempo=15
winkellinks=70
winkelrechts=-70
winkel_strich=0
i=0
Motor.ResetCount("C")
while "true"
  wert=80
  Motor.Speed("C",Tempo)
  Motor.Start("C")
  While i<winkellinks
    wertneu=Sensor.ReadPercent(4)
    i = Motor.GetCount("C")
    If wertneu<wert Then
      wert=wertneu
      winkel_strich=i
    EndIf
  EndWhile
  Motor.Stop("C","TRUE")
  Motor.Speed("C",-Tempo)
  Motor.Start("C")   
  While i>winkelrechts
    wertneu=Sensor.ReadPercent(4)
    i = Motor.GetCount("C")
    If wertneu<wert Then
      wert=wertneu
      winkel_strich=i
    EndIf
  EndWhile
  Motor.Stop("C","TRUE")
  Motor.Speed("C",Tempo)
  Motor.Start("C")
  If wert>70 Then
    Motor.Stop("C","TRUE")
    If i>=0 then
      Motor.Speed("C",-Tempo)
      Motor.Start("C")   
      While i>0
          i = Motor.GetCount("C")
      EndWhile
      Motor.Stop("C","TRUE")
     else
      Motor.Speed("C",Tempo)
      Motor.Start("C")
      While i<0
          i = Motor.GetCount("C")
      EndWhile
      Motor.Stop("C","TRUE")
    endif
    winkellinks=70
    winkelrechts=-70
    Else
    winkellinks=winkel_strich+10
    winkelrechts=winkel_strich-10
  EndIf
EndWhile

Der Testaufbau ist in wenigen Minuten erstellt. Vielleicht hat jemand Spaß zur Steigerung der Effizienz etwas beizutragen.
Schöne Restostern
Peter

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5399
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: EV3-Basic Projekte !

Beitragvon HaWe » 9. Okt 2016 16:25

Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E


Zurück zu „Projekte, Showcase, Bauanleitungen“

Wer ist online?

Mitglieder in diesem Forum: Exabot [Bot], Google [Bot] und 21 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss