SIGNALduino Compilieren: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Verzeichnisname falsch)
(Compilieren unter Linux mit Makefile)
Zeile 1: Zeile 1:
== Inbetriebnahme ==
== SIGNALduino in die Arduino Entwicklungsumgebung einbinden ==
Zur Inbetriebnahme von [[SIGNALduino]] auf der Arduino IDE (getestet mit auf Arduino V1.6.7) müssen die Quelltexte von [https://github.com/RFD-FHEM/SIGNALDuino/ GitHub] (Stand Feb. 2017) geladen werden.
Zur Inbetriebnahme von [[SIGNALduino]] auf der Arduino IDE (getestet mit auf Arduino V1.6.7) müssen die Quelltexte von [https://github.com/RFD-FHEM/SIGNALDuino/ GitHub] (Stand Feb. 2017) geladen werden.


Zeile 13: Zeile 13:


In Der Arduino Entwicklungsumgebung unter <code>Werkzeuge</code> → <code>Board</code> <tt>'''"Arduino Nano"'''</tt> und unter <code>Werkzeuge</code> → <code>Prozessor</code> <tt>'''"ATmega328"'''</tt> angeben. Nach Einstecken des SIGNALduinos in die USB Buchse noch den entsprechenden <code>COM-Port</code> unter <code>Werkzeuge</code> → <code>Port</code> angeben, danach sollte sich der Scetch <code>RF_Receiver.ino</code> übersetzen und auf den SIGNALduino laden lassen.
In Der Arduino Entwicklungsumgebung unter <code>Werkzeuge</code> → <code>Board</code> <tt>'''"Arduino Nano"'''</tt> und unter <code>Werkzeuge</code> → <code>Prozessor</code> <tt>'''"ATmega328"'''</tt> angeben. Nach Einstecken des SIGNALduinos in die USB Buchse noch den entsprechenden <code>COM-Port</code> unter <code>Werkzeuge</code> → <code>Port</code> angeben, danach sollte sich der Scetch <code>RF_Receiver.ino</code> übersetzen und auf den SIGNALduino laden lassen.
== SIGNALduino mit Makefile unter Linux ==
Wer lieber auf der Kommandozeile arbeitet kann SIGNALduino auch mit einem Makefile übersetzen und laden.
Benötigt werden dazu:
* Der Cross-Compiler und alle Werkzeuge für Arduino bzw. AVR. Bei Ubuntu und Debian Systemen:
<source lang=bash>
# Arduino pakete installieren:
sudo apt-get install arduino arduino-core arduino-mighty-1284p arduino-mk
# AVR
sudo apt-get install flashrom gcc-avr avrdude avr-libc binutils-avr
# Die Unterstützung der Braillezeile kann zu Konflikten um den seriellen Port führen
sudo apt-get remove brltty brltty-x11
# Arduino-Makefile verwendet YAML und serialport in Perl
sudo apt-get libdevice-serialport-perl libyaml-perl
</source>
* SIGNALDuino Quelltexte
<source lang=bash>
# Hier kann man natürlich jedes beliebige Verzeichnis nehmen.
mkdir -p ~/src/arduino; cd ~/src/arduino
# SIGNALDuino von github clonen
git clone https://github.com/RFD-FHEM/SIGNALDuino.git
</source>
* Die Arduino Quellen (optional man kann auch die aus der Paketverwaltung verwenden)
<source lang=bash>
# siehe https://www.arduino.cc/en/Main/Software für neuste Version
wget https://downloads.arduino.cc/arduino-1.8.5-linux64.tar.xz
tar xvJf arduino-1.8.5-linux64.tar.xz
</source>
* Die neuste Version Arduino-Makefile
<source lang=bash>
# Neuste Version von github clonen
git clone https://github.com/sudar/Arduino-Makefile.git
</source>
Jetzt muss in <code>SIGNALDuino/RF_Receiver</code> noch ein <code>Makefile</code> erstellt werden:
<source lang=make>
# Verzeichnis in dem die Arduino-Quellen liegen
ARDUINO_DIR=$(HOME)/src/arduino/arduino-1.8.5
# Verzeichnis mit dem Arduino-Makefile
ARDMK_DIR=$(HOME)/src/arduino/Arduino-Makefile
# Basisverzeichnis unter dem die AVR-Werkzeuge liegen
AVR_TOOLS_DIR=/usr
AVRDUDE_OPTS = -v
BOARD_TAG = nano
BOARD_SUB = atmega328
USER_LIB_PATH += $(realpath ../src/_micro-api/libraries)
ARDUINO_LIBS += bitstore output signalDecoder SimpleFIFO TimerOne EEPROM
include $(ARDMK_DIR)/Arduino.mk
</source>
Mit stand vom 17.02.2018 müssen jetzt noch ein paar kleine Fehler beseitigt werden:
* <code>RF_Receiver/RF_Receiver.ino</code>
:* <code>#define CMP_NEWSD</code> statt <code>#define CMP_NEWSD;</code>
* <code>src/_micro-api/libraries/output/src/output.h</code>
* <code>src/_micro-api/libraries/signalDecoder/src/signalDecoder.h</code>
:* <code>  #include "Arduino.h"</code> statt <code>  #include "arduino.h"</code>
* in <code>src/_micro-api/libraries/signalDecoder</code> fehlt <code>library.properties</code>
:* <code>cd src/_micro-api/libraries/signalDecoder</code>
:* <code>cp ../bitstore/library.properties .</code>
:* <code>sed -i 's/bitstore/signalDecoder/g' library.properties</code>
Danach kann SIGNALDuino für den Arduino Nano übersetzt werden:
<source lang=bash>
cd RF_Receiver
make
AUfräumen mit
make clean
</source>


== Foren Links ==
== Foren Links ==

Version vom 17. Februar 2018, 17:29 Uhr

SIGNALduino in die Arduino Entwicklungsumgebung einbinden

Zur Inbetriebnahme von SIGNALduino auf der Arduino IDE (getestet mit auf Arduino V1.6.7) müssen die Quelltexte von GitHub (Stand Feb. 2017) geladen werden.

Dort Clone or download und danach Download ZIP klicken und das ZIP-Archiv auspacken oder auf der Kommandozeile git clone https://github.com/RFD-FHEM/SIGNALDuino.git ausführen.

Es werden folgende Dateien benötigt:

  • Die Datei RF_Receiver.ino in einen Ordner RF_Receiver, am besten direkt ins Arduino Verzeichnis der IDE kopieren.
  • Im libraries Ordner der Arduino IDE am besten einen Ordner mit Namen SIGNALduino anlegen, dort müssen dann die Dateien bitstore, output, signalDecoder, SimpleFIFO und TimerOne (jeweils .cpp und .h Datei) abgelegt werden.
  • Im diesem SIGNALduino Verzeichnis ist dann noch ein Unterverzeichnis config anzulegen, dort muss die Datei known_16bit_timers.h abgelegt werden.

Struktur der SIGNALduino libraries:SIGNALduino-ViaArduinoEnvironment.jpg


In Der Arduino Entwicklungsumgebung unter WerkzeugeBoard "Arduino Nano" und unter WerkzeugeProzessor "ATmega328" angeben. Nach Einstecken des SIGNALduinos in die USB Buchse noch den entsprechenden COM-Port unter WerkzeugePort angeben, danach sollte sich der Scetch RF_Receiver.ino übersetzen und auf den SIGNALduino laden lassen.

SIGNALduino mit Makefile unter Linux

Wer lieber auf der Kommandozeile arbeitet kann SIGNALduino auch mit einem Makefile übersetzen und laden. Benötigt werden dazu:

  • Der Cross-Compiler und alle Werkzeuge für Arduino bzw. AVR. Bei Ubuntu und Debian Systemen:
# Arduino pakete installieren:
sudo apt-get install arduino arduino-core arduino-mighty-1284p arduino-mk
# AVR
sudo apt-get install flashrom gcc-avr avrdude avr-libc binutils-avr
# Die Unterstützung der Braillezeile kann zu Konflikten um den seriellen Port führen
sudo apt-get remove brltty brltty-x11
# Arduino-Makefile verwendet YAML und serialport in Perl
sudo apt-get libdevice-serialport-perl libyaml-perl
  • SIGNALDuino Quelltexte
# Hier kann man natürlich jedes beliebige Verzeichnis nehmen.
mkdir -p ~/src/arduino; cd ~/src/arduino
# SIGNALDuino von github clonen
git clone https://github.com/RFD-FHEM/SIGNALDuino.git
  • Die Arduino Quellen (optional man kann auch die aus der Paketverwaltung verwenden)
# siehe https://www.arduino.cc/en/Main/Software für neuste Version
wget https://downloads.arduino.cc/arduino-1.8.5-linux64.tar.xz
tar xvJf arduino-1.8.5-linux64.tar.xz
  • Die neuste Version Arduino-Makefile
# Neuste Version von github clonen
git clone https://github.com/sudar/Arduino-Makefile.git

Jetzt muss in SIGNALDuino/RF_Receiver noch ein Makefile erstellt werden:

# Verzeichnis in dem die Arduino-Quellen liegen
ARDUINO_DIR=$(HOME)/src/arduino/arduino-1.8.5
# Verzeichnis mit dem Arduino-Makefile
ARDMK_DIR=$(HOME)/src/arduino/Arduino-Makefile
# Basisverzeichnis unter dem die AVR-Werkzeuge liegen
AVR_TOOLS_DIR=/usr
AVRDUDE_OPTS = -v
BOARD_TAG = nano
BOARD_SUB = atmega328
USER_LIB_PATH += $(realpath ../src/_micro-api/libraries)
ARDUINO_LIBS += bitstore output signalDecoder SimpleFIFO TimerOne EEPROM 
include $(ARDMK_DIR)/Arduino.mk

Mit stand vom 17.02.2018 müssen jetzt noch ein paar kleine Fehler beseitigt werden:

  • RF_Receiver/RF_Receiver.ino
  • #define CMP_NEWSD statt #define CMP_NEWSD;
  • src/_micro-api/libraries/output/src/output.h
  • src/_micro-api/libraries/signalDecoder/src/signalDecoder.h
  • #include "Arduino.h" statt #include "arduino.h"
  • in src/_micro-api/libraries/signalDecoder fehlt library.properties
  • cd src/_micro-api/libraries/signalDecoder
  • cp ../bitstore/library.properties .
  • sed -i 's/bitstore/signalDecoder/g' library.properties

Danach kann SIGNALDuino für den Arduino Nano übersetzt werden:

cd RF_Receiver
make
AUfräumen mit
make clean

Foren Links