cc3d PID TUNING BOX

Dieses Projekt nutzt den 2ten Receiver-Input Anschluß eines cc3d Atom zur Einspeisung von PID-Tx Kanälen. An meinem cc3d nutze ich 6PWM Inputs für meine Fernsteuerung, der trick ist den zweiten unbenutzen PPM Input über 2 Arduinos und eine beliebige Funkstrecke als „TX-Pid Bypass“ zu nutzen.

Anleitung: https://hackaday.io/project/5212-diy-3channel-ppm-quadcopter-calibration-box

So sieht dann das Ergebnis aus:

7272241428662241465

Hier sieht man einen eigenen ProMini Clone mit nrf24l01 Platine und ppm Output am Flexiport. Dazu noch den Sender mit 3Potis der die Werte in 1100-1900 sendet.

Erklärungsvideo:

auf Wunsch kann ich das Projekt zur Weitergabe Beautifiern!

Infrarot und Arduino Codes, Pronto, Anymote und Scrutinizer

Wer einfach mal auf die schnelle mit einem Arduino (Nano,Leonardo,Uno, MiniPro mit FTDI Adapter) ein Infrarotsignal auslesen möchte und keine Lust auf viel hin und her hat dem ist hier geholfen. Mit dem netten Tool IRScrutinizer ist alles rund um Infrarot möglich. Das Tool benutzt diverse Hardware als IR-Bridge.

Anbei ein Link zu einem 1,2GB VMPlayer Image das von selbst funktioniert, Arduino-IDE, Scrutinizer,Libs und Java sind vorkonfiguriert und installiert!  https://philipp.kuhrs.eu/fedora.rar

Ganz einfach:

1. Image Starten

2. Als test mit PW test einloggen

3. Arduino-IDE Starten und das Beispiel Girslite auf den Arduino hochladen

4. IR LED und IR Empfänger wie folgt anschliessen:

SenderPin CapturePin
Uno/Nano (ATmega328P) 3 8
Leonardo/Micro (ATmega32U4) 9 4
Mega2560 (ATmega2560) 9 49

5. Über den Desktop Link IRTool den Scrutinizer starten, nach dem flashen ist der Arduino und Scrutinizer auch in Windows lauffähig.

Wenn alles geklappt hat muss man nur noch Arduino als CapturingHW und Sender HW einstellen und noch je nachdem ob man Lesen/Senden möchte im jeweiligen Tab mit Open Verbinden..

 

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