slengo

... computer chess and games

Die Technik Teil 1: Der Prozessor

Viele Bastler oder Hobbyisten die sich heute als Maker bezeichnen fragen sich, „Wo fange ich an?“, „Für welche CPU entscheide ich mich“? Wenn man wirklich seinen Garten mit Sensorik ausstatten möchte, oder sein Eigenheim steuern, dann sollte man sich mit dieser Frage etwas länger beschäftigen.

Es gibt hier zahlreiche Wege. Man kann am Ende alles mischen und es zur Funktion bringen, zur Not mit jeder Menge herunter geladenen Code aus jeder Menge Foren. Aber wenn mann damit seine Rasenbewässerung steuern möchte, dann könnte es sein, dass man schnell zu einem erträglichen Reisfeld gelangt und seinen Monatslohn direkt an die Wasserwerke überweisen sollte. Ob das dann der Ertrag für den Reis wieder wett macht?

Also etwas nachdenken sollte man sich und seiner Flora schon gönnen.

Wie sieht nun ein kleines „Rechnersystem“ mit dem man sich Gartenarbeit bequem abnehmen lassen kann?

Für die Hardware sehe ich hier eine klare Verteilung:

Outdoor: Sensoren, die stromsparend Feuchte, Temperaturen usw. messen. Aktoren, die die Ventile für das Sprengwasser öffnen und schließen.

Indoor: Die Steuereinheiten, die Daten von sämtlichen Sensoren abholen und damit die Aktoren steuern. Wettergerüchte und Warnungen vor Unwettern werden gleich mit verarbeitet.

Die Outdoor Technik ist möglichst klein und stromsparend. Die Indoortechnik darf schon etwas Energie verbrauchen muss aber günstig, lautlos und effizient ihr Werk verrichten und möglichst noch Licht und Heizung im Haus mitsteuern.

Für die Indoortechnik eignet sich hervorragend ein RaspberryPi. Dieser lässt sich ohne Probleme mit sämtlicher drahtloser Technologie ausstatten (darauf gehe ich in einem späteren Artikel ein), macht die Stromrechnung nicht fett und das Konto nicht leer. Eines sei jedoch erwähnt, der RaspberryPi ist nicht Anfänger kompatibel! Es gibt viele Homeautomation Projekte, die man direkt von einem Git-Server schleckern kann und die sich dann auch mit etwas Glück und dem gleichen Setup wie der Blogger zum laufen bringen lassen.

Jeder, der also in diese Welt einsteigen möchte, sollte sich darüber im Klaren sein. Mit runterladen und einem Klick ist es nicht getan, man sollte zumindest den Willen haben zu verstehen, was da passiert, hin und wieder mal ein Skript schreiben, dass die Technik steuert und die Daten sammelt. Am Ende macht das sogar Spass und man lernt eine Menge.

Während der RaspberryPi aus meiner Sicht inhäusig alles andere in den Schatten stellt und wirklich alles bietet, was man benötigt und es eine riesige Gemeinschaft an Gleichgesinnten gibt, sind die äußeren Sensoren und Aktoren etwas spärlich beschrieben und im Netz eher misshandelt als behandelt. Dabei ist gerade die Technik in den Außengeräten sehr einfach.

Prozessor, Sensor, Wirelessmodul und eine Batterie. Fertig. Nun gut, einfach alles zu kaufen und in ein Leergehäuse zu schütten bringt es auch nicht, aber fast.

Heute geht es um den Prozessor. Es gibt unzählige CPUs (Central Prozessing Unit) am Markt ich möchte hier die AVRs und ARM Prozessoren näher erähnen. Gegen PIC habe ich eine unbegründete Abneigung und werde kein weiteres Wort darüber verlieren.

AVR

Der AVR, ein Urgestein unter den Prozessoren, ist schon durch den Arduino sehr beliebt geworden. Er ist bei Weitem auch sehr viel einfacher zu bearbeiten als ein ARM Prozessor. Es gibt auf dem Markt viele AVR Prozessoren in Dual Inline Packages DIP Gehäusen, die sich in die beliebten Steckbretter stecken lassen oder auf Lochraster Platinen einfach verdrahten lassen.

Die abgebildete Schaltung diente dazu etwas mit LC Displays und Tasten zu experimentieren und war schnell an einem Nachmittag zusammengelötet. Als Herz der Schaltung schlägt ein ATMEGA644 AVR mit 20 MHz Takt. Der ist schon viel größer, als für viele Sensoranbindungen benötigt.

Man kann viele schöne Dinge mit dem AVR machen und sollte ohne Grund nicht andere Prozessoren verwenden. Der AVR ist für die Gartensensorik schnell und stromsparend genug. Es gibt kaum Sensoren oder Aktoren, die den AVR – in der richtigen Größe gewählt – überfordern würden. Man sollte in jedem Fall bei den 8-Bit AVRs bleiben. Alles, was Atmel (jetzt Microchip) in Richtung 32-Bit unternommen hat ist in irgend einer Weise und mit berechtigten Gründen gefloppt.

Für das Testen der Sensorik sollten man AVRs in der Darreichungsform als Arduino nutzen. Die Programmierung dieser Boards ist so einfach, dass man sie sogar einem Hamster beibringen könnte. Hat man keinen programmiert man eben selbst. Da es für fast alles Beispiele gibt, braucht man meist nicht viel mehr als zehn Zeilen Code, der zwischen den eigenen Ohren entstehen muss.

[amazon_link asins=’B008GRTSV6,B01IHCCKKK‘ template=’ProductAd‘ store=’wwwmilasode-21′ marketplace=’DE‘ link_id=’7795c069-23cd-11e7-a94c-1524f9c01eb0′]

Die Arduinos haben nur einen Nachteil, die Programme auf ihnen lassen sich kaum auf eine handverdrahtete Schaltung exportieren. Es gibt jedoch neben den im Bild gezeigten Arduinos auch Varianten, die eigentlich nur noch den AVR enthalten und sich Prima auch für kleine Sensoren verbauen lassen.  Diese Arduinos mit einem ATmega328 (wie die größeren UNOs auch) werden unter dem Namen Arduino Pro Mini direkt aus China für 8,59 € für fünf Stück !! über Ebay vertrieben. Wer also einen Monat Zeit zum warten hat sollte sich das Schnäppchen nicht entgehen lassen, zumal die ICs alleine in Deutschland schon teurer sind. Man muss nur bedenken, dass man einen billigen Programmieradapter dazu kaufen muss oder einen „richtigen“ Ardunio zum programmieren verwendet.

Ansonsten verwendet man zur Programmierung seiner Programme für den AVR in C, C++ oder Assembler das kostenlose AVR Studio, dass auch sehr schnellen Erfolg verspricht und tiefere Einblicke in den Prozessor erlaubt.

ARM Cortex

Der AVR ist eine eigene kleine Famile eines einzigen Herstellers, aber noch lange nicht vom Aussterben bedroht. Die ARM Architektur hingegen wird von vielen Herstellern verwendet und arbeitet mit 32 Bit Datenbreite genauso stromsparend, wie der AVR mit nur 8 Bit. Der ARM Prozessor ist also um ein vielfaches leistungsfähiger, was aber nicht wirklich benötigt wird. Es ist eben so wie mit den Autos, ein Nissan Micra ist in der Stadt genauso wendig wie ein Porsche 911, aber eben nicht so cool. Der Unterschied zwischen dem AVR und den ARM Derivaten ist aber Preislich kaum relevant, wäre schön, wenn das bei den besagten Autos auch so wäre.

Es den ARM Prozessor leider nicht (kaum)  in kleinen handlichen DIP Gehäusen. (Der LPC810 bildet hier eine rühmliche Ausnahme, der ich einen extra Artikel widmen werde.) Die Programmierung der ARM Prozessoren ist auch komplexer, da fragt sich warum der Aufwand.

Wenn man einen ARM Prozessor einmal im Griff hat, dann bietet er neben der hohen Geschwindigkeit auch sehr viel mehr Anschlussmöglichkeiten.

Als Einstieg empfiehlt sich der angesprochene LPC810 o.ä. hier gibt es eine sehr schöne Entwicklungsumgebung LPCXpresso. Diese Prozessorserie hat jedoch nur sehr wenige verschiedene ICs zur Auswahl und wird meiner Meinung nach kaum weiterentwickelt.

Ich persönlich bin ein Freund der STM32 Reihe. Hier gibt es zahlreiche sehr günstige Boards, wie die Nucleos, die auch über Arduino ähnliche Anschlüsse verfügen oder die Discovery Boards mit und ohne Display. Allerdings sei hier zu bedenken zu geben, dass die Entwicklungsumgebung hier um einiges komplexer ist. Es soll jetzt aktuell auch die ersten STM32 Arduinos auf dem Markt geben, die dann die gleiche einfache Entwicklungsumgebung nutzen.

Fazit

Der AVR bietet den einfacheren Einstieg, irgendwann sind die Grenzen jedoch erreicht. Der ARM Prozessor sei den jenigen Enthusiasten empfohlen, die auf Dauer tiefer in Mikroprozessortechnik einsteigen wollen. Und keine Angst, mit 20 € oder weniger bekommt man sehr viel Hardware.

Dieser Artikel war nun erst mal sehr oberflächlich, aber ich werde ihn mehr und mehr aufbauen und genügend Wissen vermitteln, um eigene Hard- und Software zu gestalten.

slengo © 2015 Frontier Theme