Der Quadcopter auf github

Es gibt tolle Neuigkeiten bezüglich des Quadcopter-Projekts. Den kompletten Programmcode kann man nun auf github finden. Der Code steht öffentlich zur Verfügung und wird immer weiter entwickelt. Mal kommt was neues dazu, mal werden bestehende Probleme beseitigt, mal werden ganze Klassen wieder umgekrempelt, weil man damit entweder Code sparen kann oder es anschließend einfacher komfortabler wird. Schaut es euch einfach in Ruhe an: Quadcopter auf github. Und wie immer: Bei Fragen, fragt.

Neues Design

Wir haben uns mal getraut ein neueres WordPresstheme zu installieren. Ich hoffe es gefällt euch auch so gut wie uns. Besonders toll ist daran, dass man sich die Seite nun auch endlich auf dem Smartphone anständig anschauen kann. Und außerdem hat sich die Breite der Seite geändert, sodass man nun mehr auf einem Blick hat.

Serverumzug

Wir sind jetzt mal umgezogen auf einen anderen wesentlich schnelleren Server. Beim alten Anbieter war unter anderem das Problem, dass der MySQL-Server auf einem anderen Server war als der Apache mit PHP. Da WordPress nicht gerade sparsam umgeht mit Datenbankabfragen pro Seitenaufruf, war das ein großes Problem. Jetzt sind Apache und MySQL auf einem Server und laufen wesentlich performanter.

Da lässt sich die Seite gleich viel komfortabler durchforsten, oder? ;)

Kleines Update für das Skript zum Löschen älterer Kernel

Ich habe das Skript zum Löschen veralteter Kernel mal auf Vordermann gebracht. Wegen eines Sortierungsfehlers konnte es passieren, dass das Skript z.B. meinte Kernel 3.11 wäre älter als Kernel 3.9. Das Problem ist jetzt behoben. Außerdem kann man jetzt die Kurzfassung für Parameter verwenden. In diesem Fall also zum Beispiel “-rl2″ statt “-r -l 2″. Die ganze Arbeit dafür nimmt einem das Hilfsmittel ‘getops’, was normalerweise überall schon vorinstalliert ist.

Das Beamer-Mikroskop

Vielleicht habt ihr schon einmal gesehen, wie einfach sich eine Webcam zu einem digitalen Mikroskop umbauen lässt. Meistens werden Kameraobjektive oder das originale Objektiv der Webcam verkehrt herum verwendet. Da wir die Optik des zuletzt aufgeschraubten Beamers noch im Keller hatten, wollten wir es einmal damit versuchen. Dafür haben wir eine alte ausgediente Webcam benutzt, welche wir aus ihrem Gehäuse befreit haben.

Weiterlesen

[PB] Wie arbeite ich mit dem Eventsystem in PureBasic?

Dieses mal möchte ich zeigen wie man mit dem Eventsystem von Purebasic korrekt umgeht. Da gibt es die Oldschool-Variante mit WaitWindowEvent() und Konsorten, aber auch die neuen Befehle wie BindEvent() oder BindGadgetEvent() .

Als Beispiele habe ich mir überlegt ein ‘CanvasWindow’ zu entwickeln, das ein ‘CanvasGadget’ in einem normalen ‘Window’ kapselt und beliebig oft instantiiert werden kann. Dabei verwaltet das CanvasWindow alle Events, die im Fenster geschehen, von selbst mittels  BindEvent()  oder  BindGadgetEvent(). Drum herum erstellen wir uns noch ein kleines Hauptfenster, mit dem man neue CanvasWindows erstellen kann und mit dessen Beenden sich auch alle schon offenen Fenster wieder schließen und das Programm ebenfalls beendet wird.

Weiterlesen

[PB] Wie schreibe ich eine ConcurrentQueue

Ich habe jetzt mal angefangen kleine Videotutorials zu erstellen, in denen ich in Echtzeit einen kleinen Algorithmus oder bestimmte Programmierprinzipien entwickle und erkläre.

Dieses mal geht es um einen nebenläufige Warteschlage, oder auf Englisch “Concurrent Queue”, die nach dem “First In”-“First Out”-Prinzip arbeitet und mit Threads zurecht kommt.

Weiterlesen

Kurzes Update aus dem Keller

Während Nicolas an der USB-Anbindung unseres Messprojektes arbeitet, gedeiht auch der Anschluss des Lasers. Viel Zeit hat dabei die Suche nach den Schaltplänen des Netzteiles gekostet. Aber was lange währt…

Ihr habt jetzt schon eine sehr lange Zeit nichts mehr von uns gehört, aber das nächste Video zeichnet sich an den heutigen Erfolgen schon sehr klar ab!

20131204-211612.jpg

Y-Adapter für den Logikanalysator

For english version please click here.
In diesem Blogbeitrag wollen wir Euch eine ganz einfache, aber sehr effiziente Lösung für das Debuggen von Schaltungen vorstellen. Wie Ihr vielleicht schon wisst, sind wir nun in der Lage die Signale, welche wir vom Mikrocontroller aus senden, auch mit einem Logikanalysator taktgenau zu messen. Nun möchte man manchmal auch die Antwort des angesteuerten Chips messen können, was uns auch zu der hier vorgestellten Lösung gebracht hat.
Wir bauen uns einen DIP-Y-Adapter!

So ist man in der Lage auf Platinen befindliche Steckleisten zu kontaktieren und die Signale auf zwei Geräte, in dem Fall den Logikanalysator und den Zielchip zu verteilen.

Weiterlesen

AVR-Entwicklung in Eclipse und seine Tücken

Vielleicht ist es manchen von euch schon passiert, dass Eclipse in euren Quellcodes Fehler anzeigt, wo der Compiler keine sieht.

Das hat meistens den einfachen Grund, dass der Indexer von Eclipse nicht aktuell ist oder sogar Includes für den falschen AVR indiziert, sodass dann z.B. PORTC rot unterstrichen wird, obwohl euer ATMega16 den ja unterstützt.

Um das Problem zu lösen gibt es drei verschiedene Herangehensweisen vom einfachen MCU-Typ umstellen, über den Index neu zu generieren und die Holzhammermethode, die Eclipse anweist dann wirklich das Include zu verwenden. Dewegen will ich hier mal alle Möglichkeiten aufschlüsseln und zeigen wie man es nicht macht. Der Index wird übrigens erstellt, indem Eclipse alle Include-Pfade und die Includes, die ihr in eurem Code nutzt, durchscannt, damit es weiß welche Symbole, Konstanten, Variablen und Funktionen zur Verfügung stehen.

Weiterlesen