sitemap link mailform link home

EV3Basic

Nachtrag vom 15. 09. 2016

Auf der Basis von Microsofts "Small Basic" hat Reinhard Grafl "EV3 Basic" entwickelt:

Externer Link https://sites.google.com/site/ev3basic/

Damit kann man recht komfortabel den LEGO Mindstorms EV3 in Basic programmieren.
Sowohl Microsoft Small Basic als auch die Erweiterung EV3 Basic sind kostenlos.

Installation auf Windows:

Externer Link Download / Installieren von Microsoft Small Basic 1.2

Externer Link Download / Installieren von EV3 Basic -> EV3BasicInstaller.msi

Danach Small Basic starten...

-> Übrigens: Small Basic kann man natürlich auch für die Erstellung grafischer Windows-Programme benutzen. Das geht auch bei installiertem EV3 Basic. Dann dürfen im Programm natürlich keine EV3-Befehle vorkommen wie z.B. LCD.Clear() usw...


Tipp: Falls es nicht ordnungsgemäß funktioniert...
Man sollte darauf achten, dass Small Basic 1.2 die Version 1.0.9 des EV3BasicInstaller.msi benötigt!

Deshalb habe ich alle Installationsdateien sowie das deutsche Handbuch/Befehlsreferenz und Code-Besipiele vorsichtshalber auf mein Google-Drive kopiert:

Externer Link Google Drive

Externer Link Eine kurze Installationsanleitung für EV3 Basic von Reinhard Grafl

Externer Link Small Basic Referenz von Microsoft (englisch)

Externer Link Artikel zum MML-Musikformat (englisch) -> SmallBasic unterstützt nämlich das MML-Format - allerdings nicht auf dem EV3! Foot in mouth


 

Sooo... also weiter... Das erste EV3-Basic-Programm könnte nun so aussehen:

LCD.Clear()
LCD.Write(40,40, "Hello EV3")
Program.Delay(10000)


Diese drei Zeilen einfach in das Programm-Fenster kopieren. Sobald der EV3-Brick über ein USB-Kabel mit dem PC verbunden und eingeschaltet ist, kann man das Programm mit dem großen blauen "Ausführen" - Knopf von Small Basic starten. Dann erscheint auf dem Display des EV3 der Text "Hello EV3".

Small Basic

-> Übrigens: Small Basic kann man natürlich auch für die Erstellung grafischer Windows-Programme benutzen. Das geht auch bei zusätzlich installiertem EV3 Basic. Dann dürfen im Basic-Programm-Code natürlich keine EV3-Befehle vorkommen wie z.B. LCD.Clear() usw...

 


 

Demoprogramme von Reinhard Grafl in EV3 Basic:

Zip-Ordner ActionLoop

Zip-Ordner Battery

Zip-Ordner BrickBench

Zip-Ordner ButtonsAndMotors

Zip-Ordner ClickTest

Zip-Ordner DaisyChain

Zip-Ordner GraphicsAndSounds

Zip-Ordner HelloWorld

Zip-Ordner MailboxReceive

Zip-Ordner MailboxSend

Zip-Ordner Melody

Zip-Ordner MotorCount

Zip-Ordner MovingCircle

Zip-Ordner SensorInfo

Zip-Ordner SensorReading

Zip-Ordner Threads

Zip-Ordner TimeMeasurement

Zip-Ordner TochSensorTest

Zip-Ordner TowersOfHanoi

Zip-Ordner TwoMotorMovement

Zip-Ordner VectorDemo

Ein einfaches Testprogramm für den EV3:

' Testprogramm für LEGO Mindstorms EV-3
'Motoren an Port A und E
'Sensor an Port 4

'LCD-Test
LCD.Clear()
LCD.Write(40, 40,"Willkommen!")
Program.Delay(1000)
'Große Schrift in schwarz
LCD.Text(1, 0, 80, 2, "Willkommen!")
Program.Delay(3000)
' Batterietest
LCD.Clear()
LCD.Text(1, 0, 40, 2, "Batt="+EV3.BatteryLevel+"%")
Program.Delay(3000)
'Töne abspielen:
Musik()
'Motoren testen
LCD.Clear()
LCD.Text(1, 0, 0, 2, "Motoren")
LCD.Text(1, 0, 40, 2, "vorwaerts!")
Program.Delay(1000)
Motor.StartPower("MotorA", 50)
Motor.StartPower("MotorD", 50)
Program.Delay(3000)
Motor.Stop("MotorAD", "False")
Program.Delay(2000)
LCD.Clear()
LCD.Text(1, 0, 0, 2, "Motoren")
LCD.Text(1, 0, 40, 2, "rueckwaerts")
Motor.StartPower("MotorA", -50)
Motor.StartPower("MotorD", -50)
Program.Delay(3000)
Motor.Stop("MotorAD", "False")
Program.Delay(3000)
'US-Sensor an Port  4
'Messwert auf LCD anzeigen
LCD.Clear()
While("True")
LCD.Text(1, 0, 40, 2, "Messw="+Sensor.ReadPercent(4)+"   ")
Program.Delay(100)
endwhile

sub Musik
'Töne abspielen - Volume, Note, Duration
Speaker.Note(80, "C4", 500)
Program.Delay(600)
Speaker.Note(80, "D4", 500)
Program.Delay(600)
Speaker.Note(80, "E4", 500)
Program.Delay(600)
Speaker.Note(80, "F4", 500)
Program.Delay(600)
Speaker.Note(80, "G4", 1000)
Program.Delay(1200)
Speaker.Note(80, "G4", 1000)
Program.Delay(1200)
endSub

.

Letzte Änderung:
June 21. 2024 19:13:39
«    top    »