Trick für automatische Benachrichtigung bei DNS Change

Wer hat nicht schonmal A-Records auf eine andere IP geändert oder gesetzt und lange gewartet..

Die folgenden 2 Scripte für Windows und Linux checken über Ping die IP des Hostnamens auf Änderung zur neuen IP und versenden eine Email mit einem Googlemail Account.. auf vielen NAS geht das in Linux bei Konfigurierung eines SMTP Relay über sendmail (wie man den jeweiligen Agent auf Google einstellt gibts genug Anleitungen ) und bei Windows muss die kleine sendmail.exe (von http://caspian.dotconf.net) in das Scriptverzeichnis gelegt werden.

Windows Batch Datei:

 

Linux Shell Script (nachricht.txt muss angelegt werden, und dann ein cronjob mit zB. /usr/bin/sh /Pfad/check.sh angelegt werden):

 

 

Arducopter Usercode für z.B. WS2811 (Eigener Code) Flugmodus anzeigen

Grundidee:
Arduino Pro Micro als ws2811 Steuerung zur Vorder/Rückseitenbestimmung -> Vorne 3 Rote Leds und hinten 3 Blaue Leds mit kurzem Flash auf grün bei Flugmoduswechsel durch Ansteuerung vom MegapirateNG Arducopter.

Wenn man die Arducopter Firmware schon selbst kompiliert kann man durch die schon fertig integrierten Routinen sehr einfach eigenen Code einschleusen. Das wichtige hier is das der Code Lightweight bleibt damit andere wichtige Hauptroutinen zur Flugsteuerung  nicht verlangsamt werden.

(Mit dem WS2811 nur durch einen 2. Arduino, das wird hier das Beispiel)

Durch das entkommentieren der gewünschten USERHOOK Funktion in der APM_Config.h wird die Routine in der usercode.h aktiviert. Die Init sollte man auch entkommentieren da hier der Serialport RX1TX1 als uartD aktiviert wird.

Beispiel für einen Mediumloop@10Hz:

Jezt kann man in „usercode“ in der Mediumloopfunktion eigenen Code integrieren, ich bringe hier einen Code ein der eine Unterfunktion für den Flugmodus abfragt. Im Prinzip gibt die Funktion nur aus welcher Flugmodus gewählt ist, bei einer Änderung des Flugmodus wird einfach das Wort „CHANGEMOD“ über uartD gesendet. Der Clou is nun einen zB. Arduino Micro Pro oder Mini an diesen Port anzuschliessen.

Zuguterletzt noch ein kleines Beispiel das am Copter vorne 3 blaue Leds und hinten 3 Rote Leds eines WS2811 Verbundes immer leicht glimmen lässt und das dann bei ändern des Flugmodus kurz grün blinkt. Diese Funktion sollte mir erleichtern zu erkennen in welchem Flugmodus ich bin.

Arducopter Troubleshooting und bekannte Probleme bei der Installation

Board: AIOP V2 RCTimer

Fragen:
1. Das Accelerometer lässt sich nicht kalibrieren
2. das ESC lässt sich nicht wie beschrieben kalibrieren.

Antworten:
1. Hier muss man leider die Firmware Selbst kompilieren und vorher eine Zeile ändern.. durch Bauart des Boards oder des Bauteils liegen die Werte des Accelerometers zu hoch. Erstmal kurz gehalten: von der Arducopter Seite das Spezial-Arduino-IDE Package Downloaden .. die aktuelle Arducopter RC4 von Github clonen und in der AP_InertialSensor die x.xF Werte in Zeile 480 ähnlich diesem Code ändern:
if( accel_offsets.is_nan() || fabsf(accel_offsets.x) > 3.5f || fabsf(accel_offsets.y) > 3.5f || fabsf(accel_offsets.z) > 4.5f ) {success = false;}

2. ACHTUNG OHNE MONTIERTE PROPELLER!!! Man ändert über den MissionPlanner die Variable „ESC“ auf 1 oder 2 (Bei 1 muss beim nächsten Schritt Throttle auf Voll stehen, bei 2 nichts weiter)..

Das geht in dem man auf Config/Tuning klickt und dann in der „Full Parameter List“ über  „Find“ , „ESC“ eintippt und dann auf die null klickt und den neuen Wert hineinschreibt, zuguterletzt auf „Parameter Speichern“..

MPsettings

Jetzt kommt der eigentliche Trick.. Lipo anschliessen, in den Terminal und Connecten, wenn dort jetzt noch keine ESC Calibration Statusmeldung erscheint „Reboot“ eintippen.. wenn die Motoren so oft gepiept haben wie der Akku Zellen hat Throttle Down und ein langer Piepton müsste zu hören sein. Fertig.

AVR/Arduino Serial Flash Programmer für Flashrom

Es ist möglich mit einigen kniffen auf die schnelle aus einem Arduino einen Serial-Flash Programmer für alle SPI und flashrom unterstützten Chips/Bios zu bauen.

Das ganze Projekt Hardwareseitig nennt sich Serduino, ein Serprog Klon der mit kompletter Anleitung hierunter verlinkt ist.
Damit kann man aus jedem Arduino in den das Programm passt mit geringer Geschwindigkeit (Seriell 512000/1M/2M Baud) schnell mal ein Flash programmieren. https://flashrom.org/Serprog/Arduino_flasher

Das kann bei einem 16MB Flash schonmal eine 3/4 Stunde dauern da ein Image immer so groß wie der Flash sein muss und durch die Baudrate bedingt nicht viel mehr drin ist. Für das auffüllen/vergrößern des Images habe ich ein kleines Javatool erstellt.

Bash:

Hier ein Foto mit FDTI/USBSerial->Arduino Mini->5V/3V Levelschifter->Flashadapter
IMG_20140923_152439

 

 

Multiple php-Uploads mit eigenen Ordnern

Vorteil hier ist das für jeden gesamten Upload mehrer Bilder ein Ordner mit eindeutiger ID-Bemerkung
angelegt wird indem diese dann abgespeichert werden.

So könnte jeder im WLAN schnell via Handy, lappie oder sonst einem Medium Fotos auf einen lokalen Server hochladen.

DOWNLOADPACKAGE

Arduino Pro Mini 12MHz/3,3V Umbau (RDS-Temp für 5€ realisieren)

Um wirklich beim RDS-Temperatur-Sender auf 5€ zu kommen kann man einen Arduino-Pro-Mini für 1,94€ bei ebay auf 3,3V/12Mhz umbauen.
Benötigt mit Kosten:
1,94€ Arduino Pro Mini (Braune Platine)
1€ DS18B20
0,50€ Spannungsregler 3,3V max. Vin 11V, 12MHz Quarz
1,45€ MMR-70

Zur Spannungswandlung unter 11V empfiehlt sich ein 12V-USB Zigarettenanzünderadapter für 1,30€.

Das ganze benötigt 4 Schritte:

1. Bootloader kompilieren
2. Arduino IDE anpassen
3. Bootloader installieren
4. Spannungswandler und Quarz tauschen

1.
Als erstes muss man im Ordner C:\Programme(x86)\Arduino/hardware/bootloader/optiboot/ das MAKEFILE mit einer neuen Konfiguration ergänzen.
Dann kann man über die Eingabeaufforderung in diesem Verzeichnis mit dem Befehl „omake atmega328_12“ einen neuen Bootloader erstellen.
Das bedeutet das der Bootloader und die Fuse-Settings für 115200Baud, 12MHz Takt und 3,3V eingestellt werden.

2. Die Arduino IDE muss jetzt nur noch angepasst werden, das heisst das ein neues Board mit 12Mhz,115200Baud und atmega_328_12.hex Bootloader in der C:\Program Files (x86)\Arduino\hardware\arduino\boards.txt eingefügt werden muss.

3. Wenn alles geklappt hat kann man jetzt das Board über einen Serial-USB-Adapter und der Option „Bootloader Installieren“ neu flashen.
Bei mir hat das nicht so einfach funktioniert, war dann aber über 4 Pins und einen USBASP Adapter oder via ISP over Arduino möglich.

4. Jetzt muss man nur noch den Quarz und Spannungswandler tauschen damit alles wie immer funktioniert. Anbei 2 Bilder wie ich das mit einem LF33-DPAK gelöst habe.

IMG_20140709_064645 IMG_20140709_064538

Avr Rds Sender mit Temperaturanzeige für das Auto

Bau eines kleinen RDS-Senders mit Hilfe eines alten SonyEriccson Autoradio Adapters.
Hier noch günstiger mit 3,3V MCU https://philipp.kuhrs.eu/?p=230
Kosten:
1,49€ mmr70
1,29€ i2c Signal Converter
0,50€ 16Mhz Quarz+Kondensatoren 22pF
1,40€ DS18B20 Temperatursensor
2,20€ Atmega328p MCU
0,10€ Widerstände
———
7€

In einer 3,3V Version mit 12Mhz Bootloader und Quarz kann man weitere 2€ einsparen. (durch 3V wird der Bus-Konverter nicht mehr benötigt)
Mit einem Atmega8A auf unkalibriertem internen Oscillator oder 8Mhz externen Quarz auf 3V sogar bis zu 4€. (Atmega8A kostet die hälfte eines Atmega328p, durch 3V wird der Bus-Konverter nicht mehr benötigt)

Erklärung Vcc/Takt: Wenn ein AVR unterhalb von 4.5V arbeiten kann, einige V-Modelle sogar bis runter zu 1,7V dann muss je nach Modell der Takt der niedrigen Spannung angepasst werden. (1Mhz 1.7V , 3V 8Mhz, 3.3V 12Mhz , 16Mhz 4.5V, 20Mhz 5V,)

Quelltext oder Hex auf Anfrage.

SchaltplanRDSFinal

Raspbmc NAS System über ssh automatisch Ein/Ausschalten

Shutdown

Einleitung: sollte irgendwo im geringsten nur eine einzige fehlrmeldung erscheinen alles von vorn..

1. Auf dem NAS Userdaten für ssh finden/ ssh aktivieren..
1.1 Es kommt auf das Derivat und die jeweilige Systemstruktur an, z.B. Poweroff, shutdown oder auch reboot
1.2 Dazu kommt noch ob für den Shutdown Befehl ein sudo,su oder auch garnichts nötig ist
2. Auf dem raspberry muss „sudo apt-get install sshpass“ installiert werden
3. Befehl im raspberry ausprobieren(komplette Zeile kopieren und schauen was beim NAS passiert, ggf halt manuell in der Shell nachschauen, hier sollte man mindestens einmal eingeloggt gewesen sein):

oder für SU

4. Raspbmc shutdownscript einrichten
4.1. cd /etc/init.d
4.2. sudo nano rechnersd (wenn kein nano dann vorher „sudo apt-get install nano“)
4.3. sudo chmod a+x rechnersd
5. Diesen text einfügen:

9. JETZT STRG+O (O=Out/Schreiben) ENTER, und STRG+X
10. Abschluss: sudo update-rc.d rechnersd start 1 0 6 .
in die Konsole eingeben..

11. ShutdownScript fertig
Wakeup

1. Auf dem Rasperry wakeonlan installieren.

2. Manuell überprüfen das das Signal den ZielRechner / Nas erreicht.
2.1 bei Speedports und anderen Routern kann es beim MagicPacket zu problemen kommen, hier soll helfen die einzige einzelumleitung UDP Port 9 auf die Ziel IP Weiterzuleiten.
3. Nochmal ausführen:

4. anschliessend:

5. Text einfügen:

6. JETZT STRG+O (O=Out/Schreiben) ENTER, und STRG+X
7.

8. Noch zum Abschluss:

9. Fertig und Reboot 😉

Arduino Waschmaschine Funscript

Wir haben hier eine einfache Waschmaschine als Darstellung vereinfachter Logik und Grundfunktionen von Programmiersprachen.

Im oberen Teil ersetzen wir uns die Pin Nummern des Compilers welche ursprünglich sogar PD0 und ähnlich heissen durch das Logische Bezugswort um damit weiterzuarbeiten.
Danach geht es schon los.. Der kleine Block oben entprellt einen taster und schaltet das Programm 1 aus und wieder ein. Wenn eingeschaltet ist bedeutet das das die Variable Running TRUE ist, True bedeutet hier auch 1 oder High. In der Switch Case Anweisung wird die Variable zustand überprüft und das programm je nach dem Wert in das CASE geführt oder auch direkt ab switch gesprungen. Wenn hier kein zustand passt wird switch und alles in seinen eckigen Klammern ausgelassen.