Date: 2019-01-12 Contributor: FJP - pafr1014@hs-karlsruhe.de VM-OS: Linux Mint 19 (https://blog.linuxmint.com/?p=3597) Host-OS: Windows 10 8GB DDR3 RAM Intel Core i5-4590 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Einrichtung "Host-System": 1) Setup Virtual Box: - herunterladen und installieren von: https://www.virtualbox.org/wiki/Downloads (Version: 5.2.20 r125813 (Qt5.6.2) unter Windows 10) - Ggf. Guest Additons herunterladen und installieren: https://download.virtualbox.org/virtualbox/5.2.20/Oracle_VM_VirtualBox_Extension_Pack-5.2.20.vbox-extpack Software Rendering Problem: https://superuser.com/questions/640412/ubuntu-and-linux-mint-only-run-in-software-rendering-mode-on-virtualbox https://forums.virtualbox.org/viewtopic.php?f=3&t=79486 - Virtual Box Machine in Virtaul Box öffnen und ggf. Settings überprüfen (RAM, CPU, Vtx Enable (BIOS!), GPU RAM, Shared Directory...) - Empfehlung: Nach Starten der VM auf Anzeige -> "Automatische Anpassung der Gastanzeige" (nicht Vollbild oder ähnliches aktivieren) 2) Virtual Machine starten: - username: vmuser - passwort: codypp-1819 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Development: 1) Entwicklen unter Arduino IDE (C++ Code): - Unter Menü -> Entwicklung ist die Arduino IDE zu finden - aktuelles Projekt ist hier schon Standardmäßig geöffnet (ggf. neuste Version aus git herunterladen (siehe unten 8.1) )) - SPIFFS Speicher schreiben: -> Zuvor übersetze Dateien aus dem Ordner ~/workspace/atom-ide/codypp/dist in den Ornder ~/workspace/arduino-ide/ft32/ft32/makeSPIFFS/linux/data kopieren (!!! Beachte: Je nach NPM Übersetzungsprozess liegen in /dist die Dateien einmal für die Webverson auf dem HIT und einmal für den ESP32; mehr dazu siehe unter Punkt "2) Entwickeln unter Atom IDE") -> Terminal öffnen: -> cd /home/vmuser/workspace/arduino-ide/ft32/ft32/makeSPIFFS/linux -> ./makeSpiffs.sh (!!! Beachte: Serial Monitor von der Arduino IDE muss geschlossen sein) Hilfe: https://github.com/hama1067/ft32 -> Kapitel "Writing to SPIFFS Memory in Linux" -> mkspiffs ist auf unserem Repository noch die Version 0.2.1; diese hat in Verbindung mit unserem Shellskript (makeSpiffs.sh) bis jetzt keine Probleme gemacht. Damals hatten wir aber auch eine ältere Version der Arduino IDE mit einer älteren Version des ESP32 Cores. !!!: Ich habe nun - da mkspiffs mit 0.2.1 Probleme bereitet hat (Schreiben ging, Lesen nicht) - die Version mkspiffs 0.2.3 heruntergeladen (https://github.com/igrr/mkspiffs/releases) und unter /home/vmuser/bin/mkspiffs-0.2.3-arduino-esp32-linux64 und /home/vmuser/workspace/arduino-ide/ft32/ft32/makeSPIFFS/linux abgelegt. Die alte Version heißt mkspiffs_old Die neue mkspiffs Version ist noch nicht auf unserem Git-Repository -> jedesmal bei einem git-clone wird also alles überschrieben! Dies also beachten und ggf. aus /home/vmuser/bin/mkspiffs-0.2.3-arduino-esp32-linux64 sich die aktuelle mkspiffs holen! - Übersetzen & Hochladen des C++ Codes in der Arduino IDE (Port: /dev/ttyUSB0, Board: ESP32 Dev Module) 2) Entwickeln unter Atom IDE (Vue.js, CSS, Javascript, Blockly): - Unter Menü -> Entwicklung ist die Atom IDE zu finden - aktuelles Projekt ist hier schon Standardmäßig geöffnet (ggf. neuste Version aus git herunterladen (siehe unten ab 8.2) )) - Dateien nach belieben bearbeiten und speichern -> unten rechts ist eine git Integration (hierzu müsste der Rechner aber im Repo authetifiziert werden und man müsste sich als USER authentifizieren (es wird daher davon abgeraten! -> Timo, Johannes, Martin oder Joseph fragen) - Debug mode: über npm kann ein lokaler Server gestartet werden -> hierzu ein Terminal öffnen: -> cd /home/vmuser/workspace/atom-ide/cody-pp && npm run dev (Firefox öffnet sich und man kann eine Live-Preview sehen und testen) - Projekt übersetzen für den Spiffs ESP32: -> hierzu ein Terminal öffnen: -> cd /home/vmuser/workspace/atom-ide/cody-pp && npm run build -> im Ordner dist/ liegen die Dateien (im folgenden: - vendor.js -> braucht man nicht! (nicht in den SPIFFS Ordner kopieren!) - alle svgs, - index.html - alle pngs - main.css und main.js - manifest.js - Schriftart *.tff - alle gz Dateien - ) !!! -> Überprüfung: index.html öffnen -> alle Source Dateien haben ein Pfad zum Root Verzeichnis: z.B. src=/./vendor.js - Projekt übersetzen für den HIT-Server: -> hierzu ein Terminal öffnen: -> cd cd /home/vmuser/workspace/atom-ide/cody-pp && npm run demo -> alle Datein im /dist mit Microsoft Web Expression hochladen nach: hit-info/info-ws17/Fischertechnik-Software-HMI/data/webIDEwebversion-1.0/ !!! -> Überprüfung: index.html öffnen -> alle Source Dateien haben ein Pfad zum Root Verzeichnis: z.B. src=/hit-info/info-ws17/Fischertechnik-Software-HMI/data/webIDEwebversion-1.0/./vendor.js ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Einrichtung "VM-System": 1) Updates des Systems installieren 2) Guest Additons herunterladen und installieren: https://download.virtualbox.org/virtualbox/5.2.20/Oracle_VM_VirtualBox_Extension_Pack 3) Arduino IDE installieren: - https://www.arduino.cc/en/Main/Software -> /home/bin/arduino-1.8.7-linux64.tar.xz - Entpacken und Terminal öffnen: -> cd /home/vmuser/bin/arduino-1.8.7 -> sudo ./install.sh -> ./arduino-linux-setup.sh vmuser -> sudo reboot - Unter Menü -> Entwicklung ist die Arduino IDE zu finden - Arduion IDE starten und unter "Werkzeuge -> Bibliotheken verwalten" die folgenden Librarys installieren: -> Adafruit_GFX -> Adafruit_SSD1306 4) ESP32 Core installieren: - https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/debian_ubuntu.md - Terminal öffnen und die folgenden Befehle im /home/vmuser/ Verzeichnis ausführen: -> sudo usermod -a -G dialout $USER && \ -> sudo apt-get install git && \ -> wget https://bootstrap.pypa.io/get-pip.py && \ -> sudo python get-pip.py && \ -> sudo pip install pyserial && \ -> mkdir -p ~/Arduino/hardware/espressif && \ -> cd ~/Arduino/hardware/espressif && \ -> git clone https://github.com/espressif/arduino-esp32.git esp32 && \ -> cd esp32 && \ -> git submodule update --init --recursive && \ -> cd tools && \ -> python2 get.py 5) Atom IDE herunterladen von: - https://atom.io/ deb file herunterladen & ausführen - Unter Menü -> Entwicklung ist Atom zu finden 6) Setup Atom: - Edit -> Preferences -> Install: Plugins installieren: atom-ide-ui, ide-vue, Language-vue 7) NPM installieren: - https://nodejs.org/en/download/package-manager/ - Terminal öffnen: -> sudo apt-get update && sudo apt-get install build-essentials -> sudo apt-get install nodejs=8.10.0~dfsg-2 -> sudo apt-get install npm node Version: node -v -> v8.10.0 npm Version: npm -v -> 3.5.2 8) Projekt herunterladen und clonen: 8.1) ft32 -> Terminal öffnen: -> cd workspace/arduino-ide/ && git clone https://github.com/hama1067/ft32.git - Arduino IDE öffnen und ft32.ino als Projektfile starten (ESP32 per USB verbinden und über die VM Geräte -> USB -> "CP2102 USB to UART Bridge Controller" verbinden (zur Überprüfung: Terminal öffnen und dmesg eingeben -> "cp210x converter now attached to ttyUSB0") 8.2) cody-pp -> Terminal öffnen: -> cd workspace/atom-ide/ && git clone https://github.com/josephpal/cody-pp.git -> npm Abhängigkeiten installieren: -> cd cody-pp/ && npm install // takes some time.... -> npm update -> npm install scandir&& nodejs node_modules/node-sass/scripts/install.js -> npm rebuild node-sass (https://github.com/sass/node-sass/issues/1579) -> npm run dev // startet den Develoment Server -> Firefox wird geöffnet! ------------------------------------------------------------------------------------------------------------------------------------------------------------------------