Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:hardwarekiste

Dies ist eine alte Version des Dokuments!


Hardwarekiste

Für verschiedene Projekte werden immer wieder unterschiedliche Bauteile benötigt. Eine Auswahl aus meiner Hardwarekiste habe ich auf dieser Seite zusammengestellt.

Einen guten Einstieg in die unterschiedlichen Bauteile bietet die Seite Hardware101.

5 Wege Schalter - 5 Way Switch

7-Segment-Anzeige

Vier-stellige 7-Segmentanzeige mit einem TM1637 Displaytreiber. Informationen von der Herstellerseite:

The module is a 12-foot clock with 4 points of positive digital (0.36 inches) display module driver IC TM1637, only two signal lines can make SCM four 8-segment LED.

Module features are as follows:

Display of male red for the four digital tube
Adjustable digital tube 8 gray
Level control interface for 5V or 3.3V
4 M2 screws positioning holes for easy installation

Control Interface: A total of four pins (GND, VCC, DIO, CLK), GND to ground, VCC is the power supply, DIO of data input and output pin, CLK is the clock signal pin;

Digital tube: 4 common anode score points with 0.36 inches LED, red highlights;

Positioning holes: 4 M2 screws positioning hole diameter is 2.2mm, the positioning of the module is easy to install, to achieve inter-module combination;

Mit raspberry-pi-python-tm1637 existiert eine Bibliothek für die Ansteuerung mit einem Raspberry Pi und Python.

AD633 Analog-Multiplizierer

Der AD633 kann zwei analoge Eingangsspannungen miteinander multiplizieren und wird in einem Artikel bei Hackaday beschrieben.

Analog Joystick HW-504

Arduino LilyPad

Arduino Nano

Arduino Uno

Ein Klassiker unter den Microcontrollern.

auvisio Universal WLAN Fernbedienung (urc 150, NX-4519-675)

Universalfernbedienung von Pearl (~20 €), die einen ESP8266 enthält und daher mit einer alternativen Firmware bespielt werden kann. Der Artikel Frei-Funke aus der ct beschreibt die Einrichtung, welche die tuya convert Schwachstelle ausnutzt.

BBC micro:bit

Der micro:bit ist ein Einplatinencomputer, der mit LEDs, GPIO Pins, zwei Buttons, Bluetooth, einem Kompass und einem Lagesensor ausgestattet ist.

Er lässt sich mit dem Editor Mu oder über die Webseite in Micropython programmieren. Mit uFlash existiert eine Möglichkeit, Programme von der Kommandozeile auf den microbit zu kopieren. Diese werden dann direkt ausgeführt, sobald der microbit mit Strom versorgt wird. Eine REPL (read eval print loop) für den microbit erhält man über das Projekt microrepl.

Die Dokumentation des micro:bit zeigt schöne Beispiele und beschreibt die wichtigsten Klassen und Methoden. Hier ist auch ein pinout zu finden.

Hilfestellung gibt es über eine Mailingliste, ein Forum und den IRC-Kanal #microbit im Freenet.

Bus Pirate

Das Schweizer Taschenmesser für die Analyse von Leitungen, auf denen unterschiedliche Protokolle gesprochen werden. In einem Tutorial werden verschiedene Einsatzmöglichkeiten vorgestellt.

CHIP

Ein Kleincomputer für 9$. Weitere Informationen gibt es auf der Herstellerseite. Dort ist auch eine ausführliche Anleitung zu finden.

C1602A LCD-Modul

Eine ausführliche Beschreibung zur Verwendung befindet sich im hardware-101 Repo.

Digispark

Der Digispark ist ein kleiner Arduino auf einem USB-Stecker.

DHT11, DHT22 - Temperatur und Luftfeuchtesensor

DSN-MINI-360

Der DSN-MINI-360 ist ein Spannungswandler. Er wandelt eine Eingangspannung 4.75 - 23VDC in eine Ausgangsspannung 1.0 - 17VDC. Die gewünschte Spannung wird über eine Drehregler eingestellt.

DSO138 Digitales Speicher Oszilloskop

Das DSO138 von jyetech ist ein einfaches und günstiges Oszilloskop mit einem LC-Display. Als Import aus China ist es schon für ca. 15€ verfügbar.

DS18B20 1-Wire Temperatursensor

Eine ausführliche Beschreibung befindet sich im hardware 101 repo.

ESP32

Der Nachfolger vom ESP8266

ESP8266

Mehr Informationen stehen im hardware-101 Repo.

Fernbedienung

Game Controller

HC-SR501 - Infrarot Bewegungsmelder

Ein Bewegungssensor, der bei natzmafia.de und in dem Datenblatt beschrieben wird.

Infrarot Sender-Empfänger (Sender/Receiver)

Infrarot-Module, die zum Beispiel mit dem MySensors-Projekt über einen Arduino-µC oder das Linuxprojekt LIRC angesteuert werden können.

LED Matrix (5x7 und 8x8)

Die LEDs werden mit einem Vorwiderstand von 220 Ohm betrieben. Jede LED ist über eine Zeile und Spalte ansteuerbar. Insgesamt werden 5+7=12 GPIO für die Ansteuerung benötigt. Weitere Informationen stehen im hardware-101 Repo. Die Bilder zeigen ein LED-Shield für einen Wemos D2 Mini. Für die Ansteuerung des 8×8-Shields mit Micro-Python ist eine Bilbiothek vorhanden. In dem Projekt ledbadge kommt dies etwas zum Einsatz.

Lenovo Tastatur

Die Lenovo-Tastatur wird gewöhnlich in Laptop verbaut und besitzt den von IBM eingeführten charakteristischen roten »Knuppel« in der Mitte, Dieser fungiert als Mauszeiger und ermöglicht eine Nutzung der Tastatur, ohne die Hände von selbiger zu entfernen.

LED-Taster

LM75 Temperatursensor

Eine ausführliche Beschreibung ist im hardware-101 Repo verfügbar.

Logic-Analyzer - 8-Kanal 24MHz

Ein Logic-Analyzer (vermutlich ein Clone von VKTECH), der sich über USB mit der Software sigrok bzw. PulseView betreiben lässt.

In einem repo sammelt das Projekt verschiedene dumps exemplarischer Kommunikationsprotokolle.

Magic-Home LED Controller

Da sich ein ESP8266 auf dem Board befindet, kann dieser mit einer alternativen Firmware geflasht werden. Das Projekt Sonoff-Tasmota bietet eine solche Firmware an.

MIDI Controller Korg nano Kontrol

Ein MIDI-Controller wird zwar primär zur Steuerung von Synthesizern und elektronischen Musikinstrumenten genutzt, kann aber auch für Bastelprojekte zum Einsatz kommen. Bei MIDI werden die Signale in Kanälen übertragen. Jede Note wird mit eine Anschlagstärke in einem Wert zwischen 0 und 127 übermittelt.

Der folgende Ausschnitt aus dem Datenblatt zeigt, welche Noten jeweils übertragen werden.

1-1 Channel Messages            [H]:Hex,  [D]:Decimal
+--------+----------+----------+-----------------------------------------------+
| Status |  Second  |  Third   | Description         (Transmitted by )         |
|  [Hex] | [H]  [D] | [H]  [D] |                                               |
+--------+----------+----------+-----------------------------------------------+
|   8n   | kk  (kk) | 40  (64) | Note Off            (Switch A/B)              |
|   9n   | kk  (kk) | VV  (VV) | Note On             (Switch A/B)              |
|   Bn   | cc  (cc) | vv  (vv) | Control Change      (Panel Controls)          |
+--------+----------+----------+-----------------------------------------------+
 n  : MIDI Channel = 0~15
 kk : Note# 0~127
 VV : Velocity = 1~127
 cc : Control Change# = 0~127
 vv : Value = 0~127

Mit der Bibliothek rtmidi lässt sich ein Device einfach auslesen.

Die Bibliothek kann z.B. mit pip installiert werden.

pip install python-rtmidi

Das folgende Script reagiert auf Aktionen am Controller und gibt den Wert aus.

class MidiInputHandler:
    def __init__(self, port):
        self.port = port
        self.vs = collections.OrderedDict()
 
    def __call__(self, event, data=None):    
        message, _ = event
        chan, note, val = message
        print("Channel", chan, "note", note, "value", val)
 
if len(sys.argv) > 1:
    port = sys.argv[1]
else:
    print("Give me an input port")
    midi.list_input_ports()
    exit(1)
 
midiin, port_name = midi.open_midiinput(port)
midiin.set_callback(MidiInputHandler(port_name))
 
try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    pass
finally:
    midiin.close_port()

Weitere Beispiele befinden sich im Verzeichnis examples bei github.

Mit Hilfe des Projektex midi2mqtt lassen sich MIDI-Signale an einen MQTT-Broker senden.

MCP23017 Portexpander

Der MCP23017 ist ein Portexpander, mit dem Anzahl der verfügbaren GPIOs an einem Raspberry Pi vergrößert werden kann. Das Datenblatt des MCSP23017 beschreibt die Belegung der Pins. Er wird über einen I²C-Bus angesprochen.

Über verschiedene Registeradressen können unterschiedliche Funktionen angesteuert werden.

Wichtig sind die mit einem roten Punkt markierten Register. Für Pins aus der Bank A bzw. B stehen jeweils eigene Befehle zur Verfügung. Mit den Registern IODIRA und IODIRB können die Pins als Eingabe- oder Ausgabe-Pins konfiguriert werden (0=out, 1=in). Mit den Registern OLATA und OLATB kann auf den Pins eine Ausgabe erzeugt werden. Die Register GPIOA und GPIOB können schließlich verwendet werden, um von den Pins zu lesen.

Zugriff mit i2ctools

Um den Baustein mit dem Raspberry Pi zu verwenden, muss zunächst der I²C-Overlay aktiviert werden in den Einstellungen von raspi-config. Evt. muss mit modprobe i2c-dev noch ein Kernelmodul geladen werden.

Nun wird das Paket i2c-tools installiert, um mit i2cdetect auf den Bus zugreifen zu können.

$ i2cdetect -y 1

scannt den Bus nach verfügbaren Geräten ab. Dort sollte der Baustein auftauchen - z.B. an Adresse 0x20. Diese Adresse werden wir in den folgenden Befehlen jeweils mitsenden.

$ i2cset -y 1 0x20 0x00 0xFE

konfiguriert mit i2cset den Pin IO0 (0xFE ist binär 1111 1110) als Ausgang. Nun können wir ein Signal senden.

$ i2cset -y 1 0x20 0x14 0x01

sendet eine 1 an den Pin IO0.

$ i2cget -y 1 0x20 0x12

liest mit i2cget die Eingänge in Bank A aus. Aus dem Hexwert lässt sich dann der Status eines Pins herauslesen, wenn man den Wert als Binärtwert betrachtet.

Zugriff mit Python

Für den Zugriff mit Python wird das Paket python3-smbus benötigt.

import smbus
 
bus = smbus.SMBus(1)
adresse = 0x20
 
bus.write_byte_data(adresse, 0x00, 0xFE)
 
bus.write_byte_data(adresse, 0x14, 0x01)
 
wert = bus.read_byte_data(adresse, 0x12)

NE555 Timer

Der Klassiker unter den ICs. In Engineer's Mini-Notebook – 555 Timer IC Circuits werden viele Grundschaltungen beschrieben. Einige Schaltungen können in einem Simulator nachvollzogen werden.

MPU6050 Beschleunigungssensor und Gyrometer

Der MPU 6050 ist ein Beschleunigungssensor und Gyrometer, der sich über I²C auslesen lässt. Eine Beschreibung befindet sich im hardware-101 Repo.

NRF24L01+PA+LNA

Funksender mit und ohne Antenne - Datenblatt. Der Funksender wird z.B. im Projekt MySensors verbaut.

Odroid Go

Der Odroid-Go ist eine kleine Konsole auf der Basis eines ESP32. Drückt man beim Start die Taste B, so wird eine Art BIOS angezeigt, über das eine Firmware geflasht werden kann: z.B. Micropython.

Orange Pi Zero

Der OrangePiZero ist eine ist die kleine an den Pi Zero angelehnte Version des Orange Pi. Eine Beschreibung befindet sich im Hardware 101-Projekt. Handbuch und Schaltpläne

Philips Hue Bridge

Die Philips Hue Bridge kann Lampen ansteuern, die das ZigBee-Protokoll sprechen - also nicht nur Produkte von Philips, sondern z.B. auch die recht günstigen TRÅDFRI-Lampen von IKEA. Die Bibliothek phue ermöglicht die Steuerung der Bridge mit einem Python-Programm. Sie lässt sich einfach mit pip install phue installieren. Danach muss das Programm mit der Bridge „gepaired“ werden. Dies wird auf der verlinkten Webseite beschrieben. Dann kann die Lampe leicht angesteuert werden.

from phue import Bridge 
 
b = Bridge("philips-hue")
# turn it on
b.set_light(1, "on", True)
# turn if off
b.set_light(1, "on", False)
# dim it - values 0..255
b.set_light(1, "bri", 110)
# dim it with transition time (in 1/10 seconds)
b.set_light(1, "bri", 255, transitiontime=10)

Die Bridge selbst kann über die Philips hue API mit HTTP-Requests angesteuert werden.

PirateBox

piratebox1.jpg

Die PirateBox besteht aus einer angepassten Firmware für Router wie den TP-LINK TL-MR3020 (die Sticker sind beim Original nicht enthalten. :-)). Diese stellen ein WLAN zur Verfügung, über das auf einen Dateiserver und ein Forum, das auf dem Router läuft, zugegriffen werden kann.

Ein ähnliches Konzept verfolgt der Server Serviette, der jedoch eine leistungsfähigere Hardware voraussetzt. Leider scheinen beide Projekte nicht mehr akut betrieben zu werden (Stand Jan. 2020).

Pi Zero

Der Pi Zero ist der kleine Bruder des Raspberry Pi. Es kostet mit ca. 6€ deutlich weniger als der große Bruder, hat dafür aber auch weniger Anschlüsse. Das oben abgebildete Essentials Kit wird mit einigen Adaptern geliefert, die Micro-HDMI und -USB auf größere Anschlüsse konvertieren. Mit einem Ethernet-USB-Adapter konnte ich tatsächlich via ssh auf den Pi zugreifen. Die GPIO-Leiste muss ebenfalls noch verlötet werden.

Power Converter DC 0,8-3,3V zu DC 3,3V

Power Converter, der Signale unterhalb von 3.3V auf 3.3V hoch regelt. Datenblatt bzw. Shop-Beschreibung

Projectbox

RFID

Ein RFID-Lesegerät, das die gelesene Seriennummer über die serielle Schnittstelle ausgibt.

RGB-LED

Jeder Farb-Pin muss über einen Vorwiderstand angeschlossen werden. Die Farben können über PWM kombiniert werden. Eine Beispielbeschaltung zeigt eine mögliche Verwendung.

Servomotor

Eine Beschreibung zur Verwendung befindet sich im hardware-101 repo.

Scrollbot

(Video bei archive.org)

Der Scrollbot ist ein Bastelset, das bei pimoroni bestellt werden kann und sich über die python-Bibliothek scrollphathd ansteuern lässt. Es besteht aus einem Raspberry Pi Zero W und einer LED-Matrix. Eine Übersicht über die Befehle zeigt, wie sich das Modul ansteuern lässt.

Das Projekt scrolly bei github zeigt eine Beispielverwendung.

SN74HCT245N - 8-fach Sende-Empfänger

sn74hct245

Der SN74HCT245N ist ein 8-fach Sende-Empfänger für eine Zwei-Wege-Kommunikation.

SN74HC595N 8Bit Shiftregister

Ein Schieberegister, über das mehrere Werte gleichzeitig ausgegeben werden können, nachdem sie in das Register geschoben wurden. Im hardware-101 Repo existiert eine ausführliche Beschreibung.

Smartphone

Jedes Smartphone hat eine ganze Menge Sensoren, die sich über Apps anzeigen und auslesen lassen. Die App Sensor Node Free kann die Sensordaten einem MQTT-Broker übergeben. Clients, die sich dort registriert haben, können sodann auf die Ereignisse reagieren. Mit der Pro-Version können die Entwickler durch eine kleine Spende unterstützt werden.

Eine Suche nach "sensor mqtt" in Googles PlayStore liefert auch andere vergleichbare Apps zutage.

Sound Detector

Sound Detector, der über einen analogen Pin (AO) einen Schallpegel ausgibt und über den digitalen Pin (DO) die Überschreitung eines mit einem Potentiometer einstellbaren Schwellwertes signalisiert.

SSD1306 128x64 OLED-Display

Das Display kann über eine high-level Python-Bibliothek für den Raspberry Pi1) oder eine low-level Bibliothek für den ESP8266 angesteuert werden. Da die Displays auch von Adafruit vertrieben werden, gibt es dort eine ausführliche Anleitung.

Die Adresse auf der Rückseite des Displays zeigt zwar 0x78 an (vgl. das obige Bild), die I²C-Adresse ist jedoch 0x3C oder 0x3D. Eine Erklärung habe ich hier gefunden:

The back of the PCB shows that the 0x78 jumper has been soldered. The sheet says that the slave adress is a 7-bit code that can be either 0x3C (011-1100) or 0x3D (011-11001), based on the SAO bit (LSB of the adress). The SAO bit can be controlled by the D/C# pin of the SSD1306 (not to be confused with the D/C# bit of the control byte in the above image!). I guess, heltec must have soldered the pin to GND. Moreover, since, the OLED will always be interfaced in WRITE mode, the I2C First Byte will be the 7-bit SLA and the WRITE mode bit (0) - which becomes the byte, 0x78. Ha!

Bei Problemen mit Timeouts auf dem I²C-Bus hilft folgender Hinweis:

If you get I2C timeouts, you may need to add two 4.7 kOhm resistors, one from SDA to 3.3v, and one from SCL to 3.3v.
Quelle

ThinClients

Trinket Pro

Einfacher Kleincomputer für 9$. Viele Informationen liefert die Herstellerseite.

USB-Seriell Adapter

Für den Anschluss von seriellen Schnittstellen an einen USB-Port. Der Artikel Mit dem RaspberryPi über eine serielle Schnittstelle verbinden beschreibt, wie man sich mit einem Raspberry Pi über die serielle Schnittstelle verbinden kann.

WS2811 LED-Controller

Eine ausführliche Beschreibung befindet sich im hardware-101 Repo.

Shard

Der Shard von Gerber ist ein Schlüsselanhänger mit nützlichen Zusatzfunktionen. Er gehört in die Kategorie der sogenannten EDC (Every Day Carry): also nützliche Dinge, die man immer dabei haben sollte.

Der Shard ist mit einem Kreuz- und zwei Schlitzschraubenziehern ausgestattet. Es kann zum Abisolieren und durch den kleinen Winkel zum Anheben oder Öffnen von Dosen oder Büchsen genutzt werden. Ein Flaschenöffner ist auch noch dabei. Die Edelstahlausführung ist mit Titan beschichtet und hält hoffentlich ein Leben lang.

In Deutschland wird das simple aber nützliche Werkzeug viel zu teuer angeboten. Als Import aus Asien kostet er nur wenige Euro.

USB Spannungs- und Strommesser

Wire-Wrapping Tool

1)
Leider liegt die Bibliotheken nur für Python2 vor.
schule/hardwarekiste.1578946892.txt.gz · Zuletzt geändert: 2020-01-13 21:21 von marco.bakera