Zitate Nr. 385 – Das unterhaltsamste Spielzeug eines Kindes ist …
Das unterhaltsamste Spielzeug eines Kindes ist ein anderes Kind.
Das unterhaltsamste Spielzeug eines Kindes ist ein anderes Kind.
Mit dem Chip MCP23017 ist es sehr einfach möglich, eine Porterweiterung (Port Expander) des Raspberry Pi vorzunehmen. Dafür wird der I2C-Bus (Inter Integrated Circuit) des Raspberry Pi verwendet, um mit dem Baustein MCP23017 zu kommunizieren.
Setup
Komponenten | Beschreibung |
---|---|
Raspberry PI | Raspberry Pi 2 Model B v1.1 |
Betriebssystem | Raspbian Stretch |
Chip | MCP23017 |
Datenblatt | microchip.com/wwwproducts/en/MCP23017 (Documents) |
Software | fritzing.org |
Vorbereitung
Vor dem Einsatz sollte das System des Raspberry Pi aktualisiert werden. Dafür die folgenden Befehle eingeben:
apt-get update apt-get upgrade
Daraufhin die Verwendung von I2C in der Datei “/boot/config.txt” aktivieren (Zeile einfügen oder auskommentieren).
dtparam=i2c_arm=on
Als nächstes in der Datei “/etc/modules” zwei Module einfügen.
i2c-dev i2c-bcm2708
Bei neueren Pi Versionen müssen die Module noch aus der Blacklist Datei entfernt werden:
sudo vi /etc/modprobe.d/raspi-blacklist.conf
Vor den beiden Einträgen eine Raute (#) setzen.
#blacklist spi-bcm2708 #blacklist i2c-bcm2708
Damit der I2C Bus angesprochen werden kann, folgende Pakete installieren:
sudo apt-get install python-smbus i2c-tools
Anschließend den Pi neu starten.
Verkabeln
Der MCP23017 besitzt den folgenden Aufbau, wie auf dem Bild ersichtlich. Weitere Information können dem Datenblatt entnommen werden.
Um sich mit der Funktionsweise des MCP23017 vertraut zu machen, wurden 3 Dioden angeschlossen.
Folgende PINs sind belegt:
Pin (MCP23017) | Pin (Pi) |
---|---|
Pin 9 (VDD) | Pin 1 (Power 3.3V) |
Pin 10 (VSS) | Pin 30 (GND) |
Pin 12 (SCL) | Pin 5 (GPIO3 – SCL1) |
Pin 3 (SDA) | Pin 3 (GPIO3 – SDA1) |
Pin 18 (Reset) | Power 3.3V |
Pin 15 (A0) Pin 16 (A1) Pin 17 (A2) |
GND |
Aufbau
Testen
Die Adresse einen angeschlossenen I2C-Bausteins kann mit dem Programm “i2cdetect” geprüft werden:
sudo i2cdetect -y 1
Befehl | Beschreibung |
---|---|
ic2detect | Der Befehl aus i2c-tools zum “Auffinden” von I2C Peripherie |
-y | Parameter zum Ausführen ohne Nachfrage |
1 | Nummer des Busses; Die Nummer kann 1 oder 0 sein, je nachdem, ob der I2C0- oder I2C1-Port verwendet wird. |
Die Ausgabe des Befehls sollte sich so darstellen:
Werte schreiben
Nachdem die Baustein-Adresse ablesbar ist, kann jetzt mit dem Schreiben von Werten begonnen werden. Dafür müssen alle Pins der Bank A (GPA) als Ausgang deklariert werden:
i2cset -y 1 0x20 0x00 0x00
Es wird in jedes der 8 Bits eine “0” geschrieben. Eine 1 würde den entsprechenden Pin als Eingang deklarieren (Default). Daraufhin können einzelne Pins oder alle angesprochen werden. Danach können mit dem Befehl “i2cset” einzelne Pins geschaltet werden.
i2cset -y 1 0x20 0x14 0xff
Befehl | Beschreibung |
---|---|
i2cset | Der Befehl aus i2c-tools zum “Setzen” von Werten |
-y | Parameter zum Ausführen ohne Nachfrage |
1 | Bus Nummer |
0x20 | Bausteinadresse |
0x14 | Zeile (GPA = 0x14; GPB = 0x15) |
0xff | Der jeweilige Wert (Pin) in hexadezimal. In diesem Fall werden alle PINs gesetzt. |
Folgende PINs können je Bank (GPA/GPB) belegt werden:
Pin (Wert) |
Hex |
---|---|
7 | 0x80 |
6 | 0x40 |
5 | 0x20 |
4 | 0x10 |
3 | 0x08 |
2 | 0x04 |
1 | 0x02 |
0 | 0x01 |
all | 0xff |
off | 0x00 |
Wenn z.B. der PIN 0 und 2 gleichzeitig gesetzt werden soll, dann muss der Hex Wert 0x05 (Binär 101) vergeben werden.
0x01 + 0x04 = 0x05
Werte lesen
Zum Auslesen wir der Befehl “i2cget” verwendet.
i2cget -y 1 0x20 0x14
Befehl | Beschreibung |
---|---|
i2cget | Der Befehl aus i2c-tools zum “Auslesen”von Werten |
-y | Parameter zum Ausführen ohne Nachfrage |
1 | Bus Nummer |
0x20 | Adresse des Bauteils |
0x14 | Auszulesende Zeile |
Wenn über das Grundsätzliche keine Einigkeit besteht, ist es sinnlos, miteinander Pläne zu machen.
von Konfuzius
Autor: Niki Lauda, Conny Bischofberger
Taschenbuch: 203 Seiten
Verlag: edition a; Auflage: 2 (8. Oktober 2015)
Sprache: Deutsch
ISBN-10: 399001143X
ISBN-13: 978-3990011430
Das Hörbuch “Reden wir über Geld” von Niki Lauda ist ein spannender und lehrreicher Genuss. Die Laufzeit beträgt 4 Stunden und 34 Minuten. Der Titel lässt mutmaßen, dass Herr Lauda Patentrezepte zum Geld verdienen erläutert, dem ist nicht so. Vielmehr werden Ausschnitte aus seinem beruflichen Leben beschrieben. Bei der Beschreibung der verschiedenen Lebensabschnitte werden zwischen den Zeilen interessante Prinzipien zum besten gegeben:
Nach dem Hörbuch hat sich meine Wahrnehmung der Person Lauda komplett geändert und der ein oder andere Schmunzler kommt einem definitiv über die Lippen.
Einen Grundtenor lautet: “Je mehr Geld im Spiel ist, desto besser ist es, auf dem Boden zu bleiben.”
Wertung: absolut hörenswert
Eines Tages werden Maschinen vielleicht denken können, aber sie werden niemals Phantasie haben.
von Theodor Heuss
Der Schienenreinigungswagen (Spur: TT; Maßstab: 1:120) von KPF-Zeller funktioniert leider nur, wenn dieser gezogen wird. Aufgrund dessen wurde das Modell mit einer Kupplung erweitert.
Dafür wurde der Normschacht von PEHO angebaut.
Dadurch kann der Wagen jetzt auch geschoben werden.
Der komplette Wagen von unten.
Für das Reinigen der Schienen kann das Schleifpapier von Proxxon für MICROMOT 180 Korn oder 240 Korn verwendet werden.
Für ein besseres Design wurde das Oberteil des Packwagens von BTTB verwendet. Die Breite des Reinigungswagens musste um 0,5 mm mit einer Feile entfernt werden.
Die Philosophen verdammen den Reichtum nur, weil wir ihn schlecht gebrauchen.
Um die Spracheinstellungen der Software Oracle SQL Developer zu ändern, einfach in den Ordner des Programms wechseln und die Datei
..sqldeveloper\ide\bin\ide.conf
mit einem Text-Editor öffnen.
Daraufhin die Zeile
AddVMOption -Duser.language=en
hinzufügen. Jetzt den SQL Developer neu starten und die gesetzte Sprache, hier Englisch, wird angezeigt.
Was der Sinn des Lebens ist, weiß keiner genau. Jedenfalls hat es wenig Sinn, der reichste Mann auf dem Friedhof zu sein.
von Peter Ustinov
Wenn im SQL Developer beim Betrachten von Datenbanktabellen der Fehler
ORA-00904: "ORA_ROWSCN": invalid identifier
auftritt, dann ist eine Anzeige der Tabelleninhalte nicht mehr möglich.
Eine Abhilfe kann im Menü unter „Tools – Preferences… – Database – Object-Viewer” konfiguriert werden.
Hier das Kontrollkästchen “Use ORA_ROWSCN for DataEditor insert and update statements” deaktivieren und danach sind die Daten wieder sichtbar.
Die größte Sehenswürdigkeit, die es gibt, ist die Welt – sieh sie dir an.
von Kurt Tucholsky
Eine JavaScript-Engine ist ein Programm oder Interpreter, welches JavaScript-Code ausführen kann. Anwendung finden JavaScript-Engines meistens in Webbrowsern.
Einige der bekanntesten sind in der Tabelle aufgeführt:
Engine | Entwickler | Browser | Programmiersprache |
---|---|---|---|
V8 | Chrome, Opera | C++ | |
Rhino | Mozilla Foundation | Firefox | Java |
SpiderMonkey | Netscape | Netscape Navigator | C/C++ |
JavaScriptCore | Apple | Safari | C++ |
KJS | KDE Projekt | Konqueror | C++ |
Chakra | Microsoft | Internet Explorer | C++ |
V8
Die Chrome V8 oder einfach ausgedrückt V8, ist eine von Google entwickelte JavaScript-Engine. V8 kompiliert JavaScript direkt in nativen Maschinencode, bevor dieser ausgeführt wird. V8 ist für die Plattformen x86, ARM oder MIPS Architekturen ausgelegt (32- und 64-Bit).
Rhino
Rhino ist vollständig in Java geschrieben und wurde von der Mozilla Foundation entwickelt. Rhino kompiliert JavaScript in Java-Bytecode, kann diesen aber auch zur Laufzeit interpretieren.
SpiderMonkey
SpiderMonkey ist in C/C++ geschrieben und wurde von Netscape entwickelt. SpiderMonkey diente der Mozilla Foundation als Grundlage zur Entwicklung von Rhino.
JavaScriptCore
JavaScriptCore ist eine Abspaltung von KJS und wird von Apple weiterentwickelt. Vor der Ausführung wird JavaScript in Bytecode übersetzt, welches direkt zur Maschinensprache kompiliert.
KJS
KJS wurde ursprünglich von Harri Porten für den KDE Webbrowser Konqueror entwickelt.
Chakra
Chakra (JScript9) ist eine JavaScript-Engine, welche von Microsoft entwickelt wurde. ChakraCore (JavaScript) ist ein Teil von Chakra und ist eine JavaScript-Engine für den Microsoft Edge Browser. Chakra ist für die Plattformen x86/x64/ARM Architekturen ausgelegt.
Weiterführende Links
https://en.wikipedia.org/wiki/List_of_ECMAScript_engines
https://en.wikipedia.org/wiki/Chakra_(JScript_engine)
https://github.com/Microsoft/ChakraCore
https://developers.google.com/v8/
https://developer.apple.com/documentation/javascriptcore
https://en.wikipedia.org/wiki/Comparison_of_web_browser_engines
https://de.wikipedia.org/wiki/Rhino_(Programmierung)
https://developer.mozilla.org/de/docs/Rhino
https://github.com/alrra/browser-logos
Wenn du kritisiert wirst, dann musst du irgend etwas richtig machen. Denn man greift nur denjenigen an, der den Ball hat.
von Bruce Lee
Ich versuche alle gerecht zu behandeln. Aber wenn jemand mit mir kämpfen möchte, dann gebe ich ihm den Kampf, den er haben möchte.