Kurz: Minecraft-Arduino-Adventskalender (Update)

Das minecraftbegeisterte Kind (9) wollte unbedingt einen Minecraft-Adventskalender. Wir haben dann von einen Kalender von Franzis gefunden, der verspricht, die Java-Edition von Minecraft auf dem PC mit der realen Welt zu verbinden – via Arduino Nano.

Vor der Inbetriebnahme des Adventskalenders stand dann allerdings erst mal ein bisschen Installationsarbeit. Zum einen muss von arduino.cc eine IDE heruntergeladen und installiert werden, um den Mikrocontroller programmieren zu können. Zum anderen gibt es ein Archiv mit Software zu den einzelnen Türchen, einem kleinen Programm, damit Minecraft auf die Schnittstelle des Arduino zugreifen kann (ami.exe) – und einen Treiber für den Arduino Nano. Der wird über ein Mikro-USB-Kabel angeschlossen, aber braucht eine emulierte serielle Schnittstelle. Warum ein Extra-Treiber? Weil der im ersten Türchen enthaltene Arduino Nano ein Klon ist, der von der Arduino-IDE nicht ohne weiteres angesprochen werden kann – der Chip, der den USB-Anschluss ansteuert, ist ein anderer. Deswegen ist im Paket auch ch341ser.exe enthalten, besagter, etwas dubioser Treiber für diese Billigvariante des Arduino Nano.

Also: alles installieren, die Arduino-IDE starten, das erste Programm öffnen, das eine Leuchtdiode auf dem Arduino Nano blinken lassen soll, und auf den Chip hochladen – ach nee, der wird nicht erkannt? Und einen Prozessor »ATmega328″ wie in der Anleitung genannt gibt es auch nicht, nur »ATmega328p« und »ATmega328p (old bootloader)« (letzterer ist korrekt). Aber warum wird der Arduino nicht erkannt. Fehler bei der Installation? Falscher USB-Anschluss? Doch besser komplett im Admin-Mode vorgehen? Nach einigen Neuinstallationen, Websitekonsultationen und Versuchen war dann klar: Treiber und Nano sind nicht schuld – das Problem war einfach nur ein Mikro-USB-Kabel, das wohl nur zum Laden, aber nicht zur Datenübertragung geeignet ist. Nach Austausch des (nicht im Lieferumfang enthaltenen) Kabels durch ein anderes erkannte Windows ein unbekanntes Gerät, aktivierte den China-Treiber und auch die IDE fand den Port. Der blinkenden LED stand damit nichts mehr im Weg … (ich bin gespannt, wie einfach oder kompliziert die Verknüpfung mit Minecraft wird, die ab Morgen drankommt).

[Update, 09.12.2018] Wie in den Kommentaren nachzulesen, war der Anschluss nicht das einzige Problem (und ich bei weitem nicht der einzige, der damit Probleme hatte, siehe auch das Arduino-Forum). Problem Nr. 2: Die Verbindung zwischen Minecraft und Arduino Nano klappt nicht, weil das dafür verwendete ami.exe wohl grottenschlecht programmiert ist. Jetzt gibt es einen Ersatz dafür – schön, dass es eine so rege Do-It-Yourself-Szene gibt. Damit sollte dem Adventskalenderglück auch aus Minecraft heraus nichts mehr im Wege stehen. Eine Kurzanleitung gibt es auch.

Ich habe – mag etwas quick & dirty sein – amigo.exe auf den Desktop kopiert, und mit dem Windowseditor eine Datei amigo.bat auf dem Desktop angelegt, in der dann der Aufruf (ggf. noch um -verbose) zu ergänzen

amigo.exe -serial COM5 -baud 9600 -logfile "..\AppData\.minecraft\logs\latest.log"

steht. Bei mir klappt es damit, wenn ich zuerst die Arduino-IDE, dann Minecraft und dann dieses Programm starte.

Be the first to like.

Dieser Beitrag wurde unter Digitales Leben, Kinder abgelegt und mit , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

5 Kommentare zu Kurz: Minecraft-Arduino-Adventskalender (Update)

  1. Ingo T. sagt:

    Hallo,
    ich habe den gleichen Kalender für meinen ebenfalls neunjährigen Sohn gekauft. Meine Erfahrungen sind ähnlich, erst mal viel Installationsarbeit und die Sache mit dem Wechsel auf den alten Bootloader. Aber schließlich hat alles geklappt, zumindest mit den ersten beiden Programmen. Allerdings hängen wir jetzt am 3. Tag fest, denn eben die im Blogpost mit Spannung erwartete Verknüpfung mit Minecraft will nicht funktionieren. Die AMI.exe greift offenbar auf die Logdatei (latest.log) und wertet diese aus, um das „Kommando“ „2“ auszulesen und an den COM-Port zu schicken. AMI.exe sagt mir zwar „Connection Established!“, allerdings kommt danach nichts mehr: egal wie oft wir in Minecraft auf den Knopf neben dem Kommandoblock drücken und „[@] !2!“ im Chat auslösen, im AMI.exe-Fenster kommt _keine_ „CMD Sent“-Meldung. In der Firewall ist AMI.exe komplett freigeschaltet und sie wird auch immer vor Minecraft gestartet, so dass ich nun nicht mehr weiter weiß. Ohne Minecraft und AMI-Schnittstelle, also per Serial-Monitor in der Arduino IDE einfach mal ne „2“ geschickt, funktioniert wunderbar: LED an, LED aus…
    Haben Sie es hinbekommen? Hätten Sie irgendeinen Tipp für uns? Vielen Dank vorab!

  2. Frank sagt:

    Hallo, ich habe leider auch das selbe Problem und habe leider immer noch nichts gefunden.

    Einzig gibt es andere Tools, die das selbe können sollen. Bei mir wird aber nicht mal mehr etwas gesagt. Ich habe wir haben zwar das Programm geöffnet und alles Korrekt eingegeben und es passiert nichts. Das Programm schließt sich einfach. Ich bin echt am verzweifeln. Könnte einer sagen, ob er irgendwas besonderes gemacht hat, oder ob er eine bessere Idee hat.

    Grüße

  3. Norbert sagt:

    Wir haben dasselbe Problem. Es liegt tatsächlich an der ami.exe
    Schaut mal in den Quellcode. Das Programm ist absolut stümperhaft gemacht.

    Fehler 1 (siehe func.h): So wie es programmiert ist, funktioniert das Öffnen der seriellen Schnittstelle nur für Com-Ports<10. Ab 10 muss man unter Windows anders vorgehen. Dieses Problem kann man natürlich erstmal mit dem Gerätemanager umgehen, indem man eine feste Portnummer kleiner 10 zuweist.

    Fehler 2 (siehe ami.cpp): Hier steht z.B.
    for(int i = 0; i < 33; i++)
    {
    bufString[i] = bufString[i+11];

    }
    Also ab Zeichen 11 werden 33 Zeichen nach vorne kopiert. Damit soll wohl die Uhrzeit entfernt werden. Was ist, wenn die Zeile gar keine 11+33=44 Zeichen hat? Bei uns trifft das auf ganz viele Zeilen im log zu! Dann wird auf Speicher zugegriffen, der dem Programm nicht gehört. Das Betriebssystem kann mit einer Schutzverletzung reagieren.

    Fehler 3: cmdString ist nicht zwingend null-terminiert und es wird kein Speicher allokiert. Absolut undefiniertes Verhalten. Über die serielle Schnittstelle wird nicht nur wie gewünscht die Zahl sondern beliebig viel anderes gesendet (zufällig, je nach Speicherinhalt bis 0 im Speicher steht).

    Fehler 4: Der genutzte Algorithmus ist echt schlecht. Warum immer 50 Zeilen lesen? Warum dauernd logfile löschen? Das geht auch pfiffiger.

    Wahrscheinlich habe ich sogar noch weitere Fehler übersehen. Falls ich am Wochenende Zeit finde, werden ich ein neues Programm erstellen.

  4. Ingo T. sagt:

    Endlich eine Lösung: im Forum auf arduino.cc gibt es Leute mit dem gleichen Problem und einer von ihnen hat das Problem gelöst, in dem er sich seine eigene AMI.exe programmiert hat. Zu finden unter: https://github.com/asig/amigo
    Hier der Link zum Thread (Post #14): https://forum.arduino.cc/index.php?topic=582827.0
    Bei uns funktioniert es jetzt. Wichtig scheint hier tatsächlich zu sein, dass man das Programm _nach_ Minecraft startet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.