Archiv der Kategorie: Neues

ABS Steuergerät und der Wackelkontakt

In den modernen Kraftfahrzeugen ist ja massenweise Elektronik verbaut, die über unterschiedliche Bussysteme miteinander kommuniziert. Zahlreiche Steuergeräte verarbeiten Sensordaten und führen damit Regel- und Steueraufgaben durch und senden diese an Aktoren und Geber. Doch leider ist viel Elektronik, vorallem die hochintegrierte, auch fehleranfällig. Die rauhen Umgebungsbedinungen, die in einem Fahrzeug herrschen, insbesonders im Motorraum, lassen diese Komponenten schneller altern. So treten immer wieder Ausfälle von Komponenten auf. Manchmal sind es nur Kleinigkeiten, wie Kontaktfehler durch zum Beispiel kalte Löstellen. Diese Fehler lassen sich oft auch einfach reparieren, ohne gleich ein neues Teil kaufen zu müssen. Oder zumindest provisorisch reparieren, um das Fahrzeug im betriebsfähigen Zustand zu halten, bis ein Neuteil verfügbar ist.

Dieses Mal habe ich ein Auge auf ein Steuergerät eines BMW geworfen, das für die Bremsdruckunterbrechung im Radblockier-Fall zuständig ist – also ein ABS – Steuergerät. Die ABS-Kontrolleuchten im Tachomodul signalisierten durch ein Dauerleuchten, dass hier ein Defekt vorliegt. Die Radsensoren und Verbindungsleitungen zum Steuergerät kamen als Fehlerursache nicht in Betracht – es konnte dann nur das Steuergerät sein. Vom Hydraulikblock getrennt landet es auf meinem Tisch.

Bosch ABS-Steuergerät 34.52-6750345

Die Elektronik verbirgt sich unter einer verschweissten Kunststoffabdeckung. (im Bild direkt vor dem Stecker zu sehen). Diese lässt sich nur mit gröberer Gewalt öffnen. Ich wählte hier eine kleine Trennscheibe für den Drehmel, mit dem ich die Klebestellen an drei Kanten vorsichtig auftrennen konnte.

Schnitt entlang der Klebeschweissstelle

Im Bild kann man die Schnittstelle erkennen. Die hintere Seite unter dem Stecker ist für die Trennscheibe nicht zugänglich. Das ist aber auch nicht notwendig, da der Deckel so zum Stecker hin hochgebogen werden kann und nicht vollständig entfernt werden muss.

Deckel ist hochgeklappt

Nun kann der Deckel hochgeklappt werden. Darunter kommt die Elektronik zum Vorschein. Hier ist nun höchste Vorsicht geboten. Die Trägerplatine (vermutlich Rogers-Material) ist lediglich mit Silikongel geschützt. Und darunter befinden sich nicht nur einige SMD-Komponenten, sondern auch direkt die DIEs (also die Siliziumhalbleiter – so wie sie vom Waver geschnitten werden, bevor sie in einem Gehäuse vergossen und gesichtert werden) Diese wiederum sind auf die Platine geklebt und mit Bonddrähten zu dieser verbunden. Die Drähte haben teilweise einen Durchmesser von 25µm und man kann sich vorstellen, die sind auch ziemlich empfindlich. Geschützt sind sie lediglich durch das Silikongel, das immer extrem dauerelastisch ist. Diese Konstruktion macht den extremen mechanischen Materialstress, der durch die thermischen Gegebenheiten im Motorraum und Vibrationen besteht, vermutlich am besten mit…

Betrachtet man die Platine genauer, so ist zu erkennen, dass auch die Verbindungsleitungen zur Aussenwelt (Stecker und Elektromagnete) mit unterschiedlich dicken Bonddrähten ausgeführt sind. Und hier ist in den meisten Fällen auch der Fehler zu suchen. Manche Bondstellen brechen.

Die ersten fünf dicken Leitungen von links sehen unter dem Mikroskop wie folgt aus:

Bruchstellen an den Bondstellen

Wenn man ganz genau hinsieht kann man die Bruchstellen erkennen. Mit einer Pinzette lassen sich die defekten Leitungen einfach herunterziehen.

defekte Bonddrähte sind entfernt

Sind die defekten Bonddrähte entfernt, dann muss das Silikongel vorsichtig zur Seite geschoben werden. (Ideal wäre an dieser Stelle, das gesamte Gel zu entfernen – das würde eine professionelle Reparatur unter dem Wirebonder ermöglichen) Da ich die Möglichkeit zur Gelentfernung leider nicht habe, muss hier gelötet werden. Aber auch hier ist doch ein wenig Geschick von Nöten.

Neue Verbindungsleitungen

Es sieht zwar nicht perfekt aus, aber die Lötverbindungen halten und haben Kontakt. Ich habe hier lackierten Kuperdraht mit 100µm Durchmesser genommen, da die Silberbonddrahtbestände in dieser riesigen Dimension nicht vorrätig sind…

Jetzt kann das fehlende Silikongel ersetzt werden. Ein vorsichtiges Verstreichen des umliegenden ist bedingt ebenfalls möglich. Der Deckel kann nun mit Kleber wieder verschlossen und versiegelt werden. Hier bietet sich der KFZ-Scheibenkleber an.

Wenn alles geklappt hat und keine weiteren Bonddrähte (auch auf dem Board selbst) beschädigt sind, dann sollte das Steuergerät wieder arbeiten.  Hier ein kurzes Video zur Reparatur:

 

 

 

Raspberry PI – OS tuning

Der Raspberry PI wird mittlerweile ja in vielen Anwendungen im Dauerbetrieb eingesetzt und hat dort unterschiedlichste Aufgaben zu erfüllen. Manchmal ist er ein Webserver, eine Wettersensorstation, ein NAS, oder eine Steuerung. Was auch immer. Doch meist hat ein Raspberryboard nur eine dieser Aufgaben zu erfüllen. Die Betriebssysteme bieten jedoch wesentlich mehr Funktionen und Features an, die nicht unbedingt für alle Anwendungen benötigt werden, aber trotzdem mitlaufen und Prozesszeit benötigen, oder die SD-Karte mit unnötigen Schreibzyklen belasten. Das lässt sich aber ändern.

Mein Kollege Mario Wehr hat eine Sammlung an Optimierungen zusammengestellt, die ich hier mit seiner Genehmigung veröffentlichen darf.

Xserver/Windomanager disablen
cmd: raspi-config Menp -> Boot Optins -> Desltop/CLI -> Console only with Login

GPU Shared MEM auf 16MB
cmd: raspi-config Menü -> Advanced Config -> Memory Split ->16MB

Interfaces Disable
cmd: raspi-config Menü -> Interfaced -> Alle Interfaces disablen

Entfernen nicht benötigter Kernelmodule
Bringt: Mehr Speicher für Userspace.
Schnellerer Boot.

Kernel module werden unter:
/etc/modprobe.d/{files}
ge-Blacklistet.

IPV6 disable

File: ipv6.conf
alias net-pf-10 off
alias ipv6 off

File: raspi-blacklist.conf
blacklist ipv6

Sound disable

File: raspi-blacklist.conf

blacklist snd_bcm2835
blacklist snd_soc_bcm2708_i2s
blacklist snd_soc_core
blacklist snd_compress
blacklist snd_pcm
blacklist snd_page_alloc
blacklist snd_seq
blacklist snd_seq_device
blacklist snd_timer
blacklist snd

Bluetooth disable

File: raspi-blacklist.conf
blacklist btbcm
blacklist hci_uart

File: /boot/config
dtoverlay=pi3-disable-bt

cmd: systemctl disable hciuart

UIO disable

File: raspi-blacklist.conf
blacklist uio_pdrv_genirq
blacklist uio

Verschieben von /Temp /Log ins Ram
Bringt: Die SD hält um einiges länger Schnellerer Boot

File: /etc/fstab
tmpfs /tmp tmpfs defaults,size=8M 0 0
tmpfs /var/tmp tmpfs defaults,size=8M 0 0
tmpfs /var/log tmpfs defaults,size=8M 0 0

Log anpassen
Bis auf Kernel/Daemon können alle Logs abgeschalten werden.
File: /etc/rsyslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
#lpr.* -/var/log/lpr.log
#mail.* -/var/log/mail.log
#user.* -/var/log/user.log
#mail.info -/var/log/mail.info
#mail.warn -/var/log/mail.warn
#mail.err /var/log/mail.err

Log-Rotating
Da der tmpfs Space klein ist -> logrotate auf 1 bzw daliy
File: /etc/logrotate -> /etc/logrotate.d/{files}

Social Media – muss wohl sein …

Jeder spricht heute von Social Media und dank Smartphone und mobilem Internet kann auch jeder daran teilnehmen. In Wikipedia ist unter „Social Media“ folgende Definition zu finden:

Social Media (auch soziale Medien) sind digitale Medien und Technologien, die es Nutzern ermöglichen, sich untereinander auszutauschen und mediale Inhalte einzeln oder in Gemeinschaft zu erstellen. Der Begriff „Social Media“ wird aber auch für die Beschreibung einer neuen Erwartungshaltung an die Kommunikation genutzt und zur Abgrenzung von dem Begriff soziale Medien im Singular verwendet, da es sich um mehr handelt als um einzelne Medienkanäle.

Soziale Interaktionen in sozialen Medien gewinnen zunehmend an Bedeutung und wandeln mediale Monologe(one to many).

Zudem sollen sie die unbehinderte Verbreitung von Wissen und Informationen unterstützen und den Benutzer von einem Konsumenten zu einem Produzenten entwickeln. Demnach besteht weniger oder kein Gefälle zwischen Sender und Rezipienten (Sender-Empfänger-Modell). Als Kommunikationsmittel werden dabei Text, Bild, Audio oder Video verwendet. Das gemeinsame Erstellen, Bearbeiten und Verteilen von Inhalt, unterstützt von interaktiven Anwendungen, betont auch der Begriff Web 2.0.

quelle: wikipedia

Na dann… wird´s ja Zeit, da auch mit zu machen 🙂 Googles youtube und google+ verwende ich ohnehin, um videos zu den Blogbeiträgen zu verlinken. Und mit der Platform Instagram lässt sich ein kurzes Intro zum Blog verlinken. Das sollte dann mit den gewohnten Buttons zu realisieren sein …

Hameg Oszilloskop HM1508

Ein besonderes Dankeschön möchte ich in diesem Beitrag an die Firma Rohde und Schwarz Österreich GmbH für die kostenlose Überlassung eines Hameg Mixed Signal CombiScope HM1508 aussprechen. Vielen Dank für diese Spende.

Das Hameg HM1508 ist ein Vier-Kanal Oszilloskop mit zwei analogen Kanälen und zwei Logic-Eingängen. Die Samplerate beträgt 1GS/s bei einer Speichertiefe von 106 Punkten pro Kanal. Die analoge Bandbreite beträgt 150MHz. Das Gerät ist noch mit einer klassischen Monochrom-Anzeigeröhre ausgestattet und bietet etliche Funktionen der modernen Speicheroszilloskope.

So sind beispielsweise Messungen am Signal im Amplituden- und Zeitbereich per Cursor und auch automatisch möglich.

Die Datenpunkte werden per Interpolation (sinx/x, pulse, bzw. linear) verbunden. Die Dataaquisition kann in den Modi: single, average, envelope, roll und refresh erfolgen. Die vertikale Darstellung ist in den Bereichen von 1mV bis 20V pro Division einstellbar. Weiters bietet das Hameg einige Math-Funktionen sowie die Moglichkeit, die erfassten Daten zu speichern und exportieren.

Eine USB-Schnittstelle, sowie eine RS232 DB9 Buchse dienen als Schnittstelle zur Aussenwelt.

Ebenso im Lieferumfang enthalten: Die Signalprobes (eine pro Channel)

Die Abmessungen betragen: 285 x 125 x 380 mm 
Gewicht: 5,6kg
Leistungsaufnahme: 35W bei 240VAC und 50Hz

 

Retrocomputer in neuer Technik: MIST FPGA

 

Commodore C16 am MIST FPGA

In den Sommermonaten und vor allem mit meinem kleinen Sohn, ist die Zeit, hinter dem Rechner zu sitzen und über die „Projekt’chen“ zu schreiben, doch sehr dünn gesät. Schon etwas länger beschäftige ich mit den Retrocomputern, wie den Commodore C16, C64, Amiga etc. Mittlerweile ist auch schon eine kleine Sammlung an originaler Hardware zusammengetragen. Um die alten Customchips in den „Brotkisten“ zu schonen, ist es interessant auf alternative Hardware auszuweichen. Für jeden modernen Rechner und auch die kleinen Computer der Raspberry-Foundation ist es kein Problem, einen C64 oder Amiga zu emulierten. Dafür gibt es viel Software (Vice, Yape, Mame, ePSXe, Stella, etc.), die auch ausgezeichnet funktioniert. Bei den Emulatoren wird die Funktionalität der alten Maschinen per Software nachgebildet. Programme und Spiele, die früher per Datasette oder Floppydisk geladen wurden, werden beim Emulator einfach als „Imagedatei“ geladen und gestartet. Das klappt zum größten Teil. Es gibt aber auch Spiele, die so trickreich programmiert worden sind, dass sie das Maximum aus der Hardware herausholen und dafür beispielsweise Bereiche im Speicher für Gamecode verwenden, der für ganz andere Dinge vorgehen war… In solchen Fällen kann es dann vorkommen, dass der Emulator hier versagt.

Noch viel exklusiver und weniger umständlich in Betrieb zu nehmen, um schnell mal einen alten „Rambo“ zu spielen, ist ein Retrocomputer in einem FPGA. Den Elektronikern unter den Lesern ist FPGA sicher ein Begriff. FPGA bedeutet Field-Programmable-Gate-Array. Das Wiederum bedeutet, man hat hier einen Chip, dessen Logikgatter per Softwarebeschreibung erstellt werden. Mann stelle sich zum Beispiel einen TTL Baustein  7408 vor. Er beinhaltet vier unabhängige UND-Gatter mit je zwei Eingängen und einem Ausgang. Solche einfachen und viel komplexere Bausteine bilden von der Funktionalität her, die Basis jeden Computers. Solche „Bausteine“ lassen sich auch in einem FPGA erstellen. Man „beschreibt“ quasi mit einer Hochsprache die Funktion, synthetisiert diese und erstellt einen Programmingcode, der im FPGA dann die Gates zu den gewünschten Gattern zusammenschaltet.

HDL nennt man diese „Hochsprache“ (HardwareDescriptionLanguage). Ein solch ein FPGA enthält nun wirklich sehr, sehr viele GateArrays, die alle zu einer gewünschten Funktion geschaltet werden können. Man baut sich quasi seinen eigenen Chip. Der grosse Vorteil ist natürlich, dass alle Schaltvorgänge in Echtzeit und je nach Beschattung parallel ausgeführt werden. FPGAs von den Herstellern Altera oder XILINX sind mittlerweile in der Lage im Higspeedbereich zu operieren mit zig Megagates, IO-Buffers für SingleEnded und LVDS Signalen  geliefert zu werden.

Mit solchen FPGA´s ist es natürlich auch gar kein Problem einen alten 8 oder 16Bit Computer aus den 80igern nachzubilden. Und zwar in Hardware – das bedeutet die Funktion aller Chips die auf einem C64 Board montiert waren (CPU, RAM, PLA, ROM, SID, VIC, CIA ) wird per VHDL beschrieben und  die Gates des FPGA dann so zusammenschaltet, dass er dann sozusagen ein C64 Chip ist, der alles kann was ein echter C64 kann.    

Altera Cyclon III FPGA
Microcontroller Atmel

Ein solches Projekt wurde im Rahmen des MIST (aMIga atariST) realisiert. Die MIST Community hat hier ein Board entwickelt, dessen Kern ein ALTERA Cyclon III ist.  Ein SD-Kartenslot dient als Datenquelle. Über die SD-Karte wird zum einen das FPGA bin-file (also der Core, der den FPGA zum Computer macht) und zum anderen die Daten für den entsprechenden nachgebildeten Computer, wie Spieleimages. Das Management und übernimmt ein kleiner Atmel-Microcontroller. Die Community hat mittlerweile eine ganze Reihe von Rechnerkernen (Cores) gebastelt, die Rechner wie Atari XL, ZX81, ZX Spectrum, C64, Atari VCS, Atari 5200, Apple II, Sega Master System, NES, Odyssey2 und viele mehr nachbilden.

MIST Board Vorderseite

Das Mist-Board bringt eine Reihe von Schnittstellen mit. Eine MicroUSB-Buchse dient als Eingang für die Energieversorgung. Der MIST kann mit einem normalen USB-Handy Steckernetzteil versorgt werden.

MIST Board Hinterseite

Zwei 9 polige SUB-D Male-Buchsen ermöglichen das Anschliessen der originalen Retro-Joysticks, wie Quickshot etc.  Vier USB-Hostbuchsen, nehmen Datenträger wie USB-Sticks und auch HIDs wie Maus, Keyboard oder auch Game Controller auf. Eine Klinkenbuchse gibt den Ton der Rechner aus und das Bild kommt über eine VGA-Buchse. Hier liegt auch ein kleiner Haken. Denn das Videosignal kommt mit der Frequenz aus der Buchse, mit der auch der originale Rechner gelaufen ist. Wenn ein C64 PAL also mit 50Hz Bildwechselfrequenz arbeitet gibt die Buchse das V-Sync auch mit 50Hz aus. Bei NTSC wären es dann 60 Hz usw. Und das ist schon das Problem. Die meisten neuen LCD Monitore können mit einem 50Hz Signal nicht umgehen. Hier kommt meist eine Meldung wie: „Signal out of range“ Ich habe nur einen alten HP1955 und einen noch älteren IBM Bildschirm zum Laufen gebracht.

MIST – MIDI Buchsen

Wer sich mit Retro Computern und Musik, vor allem mit MIDI beschäftigt, der kann auch mit dem MIST und den Atari ST Sequencern arbeiten. Das Board hat auch zwei Midi DIN Buchsen.

Wenn man seine SD-Karte nun vorbereitet, also einen Core von GitHub geladen, als core.rbf umbenannt hat, dann gehts auch schon los. Ich habe als Beispiel einen Commodore C16 Core gewählt und als Spiel das Jump an Run Spiel „Big Mac“ als .prg Datei auf die SD-Karte gelegt. Wenn´s auch viele nicht kennen, mein Bruder dürfte sich daran erinnern, falls er sich in den Blog hierher verirrt 🙂 

Commodore C16 BASIC Einschaltbildschirm

Nach dem Startbildschirm des C16, kann mit einem angeschlossenen Keyboard mit F12 per Imageinjection das File in den C16-Speicher kopiert werden. Das geht so schnell, dass man nicht merkt, ob zwischen der Enter Taste und dem Ready am Commodore Basic Bildschirm, etwas passiert ist. Mit RUN startet man das Spiel und es kann losgehen 😀

C16/Plus4 Game: BigMac

 

 

 

USB Camera an Raspberry PI mit OSD

In diesem Projekt stelle ich eine Anwendung des Raspberry PI im Bereich Bilderfassung vor. Es gibt zu diesem Thema etliche Foren und Beiträge im Internet, doch eine direkt geeignete Lösung war nicht zu finden. Darum poste ich hier meine Lösung.

Als Aufgabenstellung  soll eine Platinenbohrmaschine der Firma Lemmen von der optischen Version (Bohrlochzentrierung per Lupe) in eine opto-elektronische Version (Bohrlochzentrierung auf Bildschimmonitor) kostengünstig umgebaut werden.

Lemmon „Variodrill“ Bild: Herstellerwebsite

Die Bohrmaschine soll dahingehend modifiziert werden, dass die zur Sichtkontrolle verwendete Lupe mit sechsfacher Vergrößerung durch eine Kamera ersetzt wird. Das Kamerabild soll auf einem LCD Computermonitor dargestellt werden. Eine geeignete Kamera war schnell gefunden. Hier gibt es günstige Mikroskopkameras, die eine variable Vergrößerung bis 200fach erreichen. Eine solche Kamera ist beispielsweise die DigiMicro Scale von „dnt“. Allerdings ist das eine USB-Kamera, die einen PC und eine geeignete Software benötigt, um ein Bild anzuzeigen. Und ein PC ist wiederum nicht unbedingt eine kostengünstige Lösung. Weiters käme auch eine CVBS Kamera (also eine analoge Videocamera) in Frage, die einfach an einen geeigneten Bildschim (oder PC-Monitor mit Upscaler/Converter) geschaltet werden müsste. Aber das ist nicht zeitgemäß … Weiters soll das Bild ja nicht nur das Bohrloch vergrößern, sondern auch noch die Vorzüge eines Zielvisieres, also eines Fadenkreuzes oder Kreisabsehens implementieren. Dafür bräuchte man im analogen Bereich wieder einen OSD- (OnScreenDisplay) Generator oder zumindest einen Edding, der das Kreuz gemalt auf dem Bildschirm darstellt 🙂

USB Microskopkamera

Also die Varianten PC oder analoges Kamerasystem fallen durch. Aber es gibt ja noch den Raspberry PI, den kleinen Einplatinencomputer mit einem integrierten USB-Host und wunderbaren Grafikfähigkeiten.  Das Projekt wird also mit einem Raspberry PI 3 realisiert.

 

Als Betriebssystem kommt das Raspian-Jessi zur Anwendung. Das Image kann hier heruntergeladen werden. Nach dem Entpacken der ZIP Datei und dem Beschreiben der MicroSD Karte mit dem Win32DiskImager, kann der Rasbperry gebootet werden. Jetzt gibt es zwei Möglichkeiten an den Raspberry eine Camera anzuschliessen: 

 

-mittels Flachbandkabel an den Cameraport (hier kann nur die PI-Camera angeschlossen werden)

 

-oder über den USB-Port jede USB2.0 Camera.

 

Voraussetung hierbei ist, dass die Cam auch erkannt wird. Hier kann mit >lsusb in der Linuxconsole nachgesehen werden, ob die angeschlossene Cam auch in der Deviceliste erscheint. Als einfaches Tool, um am Desktop das Camerabild zu sehen, kann guvcview verwendet werden. Das würde jetzt auch schon genügen, wenn man nur das Bild sehen will. Unser Ziel ist jedoch, in das Camerabild ein Overlay mit Fadenkreuz einzublenden.

 

Das lässt sich in Python mit der PI-camera und der der picamera Library wunderbar lösen. Die Library besitzt eine integrierte Overlayfunktion. Es geht aber auch mit der USB-Kamera. Hierfür müssen ein paar Module installiert werden. In der Linuxkonsole sind folgende Zeilen einzugeben:

 

zuerst einmal die üblichen Aktualisierungen:

 

>sudo apt-get update >sudo apt-get upgrade

dann installieren wir numpy >sudo apt-get install python-numpy und danach das Bildverarbeitungstool schlechthin: OpenCV >sudo apt-get install install python-opencv

Jetzt kann ein Pythonscript erstellt werden, das die USB-Camera initialisiert, und in einer Endlosschleife die Bilder an ein Desktopfenster übergibt. Mit den Bildbearbeitungsfunktionen in opencv lässt sich auch das Erstellen eines Fadenkreuzes realisieren. Auch das Fixieren des Ausgabefensters am Desktopbildschirm ist möglich. Siehe folgendes Script:

 

 

 

</p>
<p style="text-align: justify;">#usb camera mit osd für platinenbohrsystem
#version 1.0 03/2017 by bihlo


import numpy as np
import cv2


cam = cv2.VideoCapture(0)
cam.open(0)

cam.set(3,800)
cam.set(4,600)

while(True):

# bei jedem schleifendurchlauf wird ein frame genereriert

# frame von der camera holen
ret, frame = cam.read()

# fadenkreuz mit der funktion line zeichnen mit 2 pixeln linienbreite
cv2.line(frame,(0,300),(800,300),(255,0,0),2)
cv2.line(frame,(400,0),(400,600),(255,0,0),2)

# zwei kreise zeichnen
cv2.circle(frame,(400,300), 50, (255,0,0), 2)
cv2.circle(frame,(400,300), 100, (255,0,0), 2)

#text ins bild einblenden
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(frame,'Platinenbohrsystem V1.0',(10,50), font, 1,(255,255,255),2)

# ausgabe des frames in fenster/ beenden mit taste "q"
cv2.nameWindow('Platinenbohranlage CAM')
cv2.moveWindow('Platinenbohranlage CAM',0,0)
cv2.imshow('Platinenbohranlage CAM',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

# nach beendigung das device freigeben und das fenster schlissen
cap.release()
cv2.destroyAllWindows()</p>
<p style="text-align: justify;">

 

Nach Starten des Scripts sollte am Bildschirm das Camerabild und das Fadenkreuz zu sehen sein:

Will man, dass das Pythonscript (in meinem Fall habe ich es "camtest9.py" genannt) nach dem Hochfahren und Laden des Desktops automatisch gestartet wird, so kann man am einfachsten im LXSession Configurationsfenster einen Eintrag hinzufügen. Dazu ist  im Desktopmenu unter >Einstellungen >Default applications for LXSession anzuklicken.

Im LXSession Menue ist dann unter "Autostart" der folgende Eintrag hinzuzufügen:

@python /(pfad zum pythonscript)/camtest9.py

Jetzt muß nur mehr neu gestartet werden und das Script sollte nach dem Start direkt ausgeführt werden. Die folgenden Bilder zeigen den umgebauten Variodrill...

SDR – Software Defined Radio

Wer schon immer einmal auf kostengünstigste Weise eine Spektralanalyse im Frequenzband bis knapp 1GHz durchführen will, oder einfach sehen möchte, welche Trägersignale vorhanden sind, der kann sich des SDR (SoftwareDefinedRadio) bedienen. Die günstigste Variante einen entsprechenden Empfänger zu bekommen, ist es, einen DVB-T Stick auf Basis des Realtek Chip RTL2832 zu erstehen. Diese Sticks sind im Internet für wenige Euros zu erstehen.

Die technischen Facts des Sticks und die darin verwendeten IC´s:

Zum einen kommt hier der RTL2832U von Realtek zum Einsatz. Das ist ein quadratischer 6mm Chip (QFN-Package) mit zwölf Pins pro Seite. Er wird mit einer Spannung von 3.3V versorgt und mit einem Takt von 28.8 MHz betrieben. Der IC ist ein DVB-T COFDM Demodulator. (Coded Orthogonal Frequency-Division Multiplexing). Das „U“ in der Bezeichnung definiert das Interface des Chip, das ein USB 2.0 Interface ist. Hier wird im Datenblatt angegeben, den RTL2832U unbedingt über ein USB-Verlängerungskabel anzuschliessen, um die Empfindlichkeit des Empfängers nicht durch die Störaussendungen des Computers zu beeinträchtigen. Weiters besitzt der RTL2832U auch acht GPIO Ports sowie einen Infrarot remote control Port.

Der mit dem RTL2832U meist verwendete Tuner-Chip ist der R820T von Rafael Micro. Der Tuner hat einen Frequenzbereich von 42-1002MHz, die Noise figure liegt bei 3.5dB @ RFin. Die Stromaufnahme liegt bei kleiner 178mA bei 3.3V. Der Eingang darf mit einer Leistung von maximal +10dBm beaufschlagt werden. 

Ein anderer Tunerchip, der auch oft in den DVB-T Sticks zum Einsatz kommt ist der E4000 von Elonics. Er hat im Vergleich zum R820T einen Frequenzbereich von 64MHz bis 1.7GHz.

Der RTL2832U besitzt einen 8Bit ADC und einen DSP. Er beherrscht Digitale Down Conversation (DDC) von IF zum Basisband via I/Q Mixern, digitales Low-pass Filtering, I/Q resampling und sendet die 8Bit I/Q Daten über den USB Port. Ein weiteres Feature des RTL2832U ist  die FFT (FastFourierTransformation), sowie der COFDM Demodulator, der per Software gesteuert werden kann und in den SDR-Applikationen zu Einsatz kommt.

RTL2832U Blockschaltbild (Quelle: Herstellerdatenblatt)

 

Die Software um den DVB-T Sticks SDR-Radio zu entlocken:

Hier gibt es mittlerweile eine riesige Community und ebenso für fast alle Systeme Lösungen um SDR zu betreiben. Eine Ausnahme ist hier  Apple mit seinen iPhones und iPads.

Für den Mac ist hier die Applikation GQRX die erste Wahl. Unter dem folgenden Link: http://gqrx.dk/download ist auch eine Version für den RaspberryPI2 und 3 und für Ubuntu Linux zu finden.

Screenshot von GQRX

Die Software ermöglicht die Darstellung des Frequenzbandes in einstellbarer Bandbreite. Es zeigt die Träger auf der y-Achse in dBuV an. Ebenso kann ein Averaging eingestellt werden. Per einstellbarem Wasserfalldiagramm können auch nur kurzzeitig auftretende Trägersignale sichtbar gemacht werden. Etliche Parameter, wie Sampletrate, FFT-Size, Demodulation, etc. sind konfigurierbar.

Natürlich sind auch für Windows-Systeme geeignete Tools verfügbar: Hier beispielsweise die freie Software SDR# (SDR sharp) von Airspy. Sie bietet dieselben Features wie die GQRX Version für den MAC.

Screenshot von SDRsharp

Wem jetzt auch noch die portable Version fehlt, der kann sein Tablet oder Smartphone mit Android Betriebssystem als „mobiles Messsystem“ aufbauen. Hierzu wird lediglich eine Treibersoftware und das Analyzertool benötigt. Im APP-Store muß hierzu folgendes heruntergeladen werden:

RTL-sdr-driver von Martin Marinov (es ist kein root für das Android Betriebssystem notwendig)
RF-Analyzer oder SDR-TOUCH

Screenshot RF-Analyzer Android

Zusammenfassend noch einmal die Linksammlung:

MAC, Linux und Raspberry:  GQRX
Windows: SDRsharp
Android: RF-Analyzer, RTL-SDR-Driver

 

Raspberry Pi – mechanische Beanspruchung extrem

Der Raspberry Pi ist als universell einsetzbarer Einplatinencomputer in vielen Hobby- und Heimanwendungen zu finden. Ob als Webserver, TV- oder Radio-Streamingserver, Spielekonsolenemulator oder Steuerungen im Bereich Robotik und Automation, der Raspberry PI kann diese Aufgaben erfüllen. Auch als mobiler Datenlogger lässt er sich aufgrund der kompakten Bauform und geringen Stromaufnahme ideal nutzen. In einem früheren Blogbeitrag habe ich ein Beispiel mit Wetterdatensensoren, angeschlossen an einen batterieversorgten Raspberry Pi, aufgebaut. Der „Logger“ zeichnete die Daten der Sensoren auf einer Speicherkarte auf. So ein Logging-System lässt sich auch wunderbar in ferngesteuerte  Fahr- oder Flugmodelle einbauen. 

Was jedoch passiert wenn so ein Flug- oder Fahrmodell von seiner Momentangeschwindigkeit in einem sehr kurzen Moment auf Geschwindigkeit Null verzögert wird, kann man sich vorstellen. Wie jedoch das Logging-System darin dann aussieht, vielleicht nicht. Aber ich kann hier mit Bildmaterial helfen.

Hier war einst die CPU

Die USB-Buchsen sind noch vorhanden. Der LAN-Anschluß fehlt.

Die Zweiteilung des Raspberry Boards haben die ihn überholenden, schwereren Komponenten (Batterien), die hinter ihm angeordnet waren verursacht. 

Selbst der Mini-USB Stick verformte sich so stark, dass der Speicherchip in zwei Teile zerbrach. Ein Auslesen der Daten war somit auch nicht mehr möglich.

3D-Druck: ein schneller Test und gleichzeitig praktisch

dsc_2935Einfach praktisch ist er schon, der 3D-Drucker. Ein Kunststoff-Filament bis zum flüssigen Zustand erwärmen und mit einem Drei – Achsen – Positionierer den Kunststoff schichtweise auftragen. Das ist ganz das grob beschriebene Prinzip eines 3D-Druckers.  Und mit genau so einem Drucker habe ich schlussendlich das hier beschriebene Objekt ausgedruckt. Bei dem verwendeten Drucker handelt es sich um einen Ultimaker 2+, der mit ABS-Filament mit 2.85mm Durchmesser als Druckmedium befüllt ist.

Doch vor dem Ausdrucken muss erst einmal ein Druckmodell her. Hier gibt es im Netz eine Vielfalt an fertigen herunterladbaren Modellen, die direkt gedruckt werden können. Eine Website ist hier zum Beispiel  thingiverse. Hier können die Community – Mitglieder ihre Designs und Objekte veröffentlichen und frei zugänglich machen. Doch ich wollte kein fertiges Modell nehmen, sondern den gesamten Designflow einmal von Beginn an durchmachen und testen, ob die, hier bei uns in der Arbeit verwendeten Tools auch zuverlässig funktionieren. Für dieses Testobjekt, einen Telefonaufsteller – oder „Handyhalter“ habe ich folgende Tools verwendet:

acadmodelDie 3D – Konstruktion habe ich mit AutoCad 2013 von Autodesk gezeichnet. Hier kamen einfach nur 3D Körper wie Quader und Zylinder zum Einsatz, die durch Addition, Subtraktion und extrudieren von Objekten das gewünschete Ergebnis liefern. Das fertige Objekt wird dann als Stereo-Lithografie-Datei (.stl) exportiert.

Jetzt kommt die sogenannte Slicer – Software zum Einsatz. Slicer bedeutet sinngemäß soviel wie zerscheneiden, aufscheiden. Und nichts anderes macht diese Software. Das dort geladene Druckmodell wird in Schichten zerlegt, so wie sie der Drucker später auch als Kunststoffebene schichtenweise auftägt. Auch hier gibt es einiges an open-source und freeware Software. Ich habe Cura verwendet. Dieses Slicer-Tool wird auch von Ultimaker angeboten und kann auch direkt mit deren Hardware arbeiten. Im Slicer werden dann einige Parameter festegelegt, die für den Druck dann wichtig sind. Das sind die Temperatur auf die das Filament erwärmt wird, die Plate Temperatur, die Materialvorschubgeschwindigkeit (ist abhängig von der Druckdüse und dem Material selbst), die Druckgeschwindigkeit usw. Hier sind etliche Dinge zu beachten und definieren, die schlussendlich erhebliche Auswirkung auf die Qualität, den Materialverbrauch und die Druckzeit haben…

dsc_2933
Der Ultimaker bei der Arbeit
curabild
Das Modell im Cura-Slicer

 

dsc_2937
Frisch aus dem Drucker

 

tvheadend – Aufnehmen über´s Netzwerk

IMAG1150Diese kurze Anleitung beschreibt wie Fernsehaufnahmen, die mit dem tvheadend-Server empfangen werden, auf ein Share im Netzwerk aufgenommen werden können: (da in vielen Haushalten auch NAS Server zum Speichern der Familiendaten herumstehen, kann man sich einen USB Speicher am Raspberry sparen und auch die Fernsehsendungen auf dem gemeinsamen Speicher ablegen)

Voraussetzung:

Ein Netzwerk, in dem ein Share über ein NAS oder eine andere Netzwerkfreigabe existiert, die, wie im Beispiel hier das Sambaprotokoll  beherrscht. Nehmen wir als Beispiel an, die Netzwerkfreigabe lautet wie folgt:

//192.168.50.50/NAS/TV/record

dieser Netzwerkpfad muß von allen Clients in diesem Netz erreichbar sein. Dann haben wir die erste Bedingung erfüllt. Weiters benötigen wir einen tvheadend Server, im selben Netz (die Bedingung ist auch erfüllt, da der Anspruch, die Aufzeichnung zu konfigurieren ja aus dem tvheadend Projekt kommt 😉 ). Nehmen wir an der tvheadend Server liegt auf 192.168.50.100 Dann testen wir im Browser durch Eingabe von:

http://192.168.50.100:9981

ob die tvheadend Weboberfläche erreichbar ist. Wenn ja, dann sind alle Grundbedingungen erfüllt. Jetzt muß am tvheadendserver die Konsole gestartet werden. (in diesem Fall ist der Server ein Raspberry auf dem xbian läuft)

Mit ssh xbian@192.168.50.100 in die Konsole einloggen.

das default Passwort lautet: raspberry

danach mit „nano“ die folgende Datei ändern:

sudo nano /etc/fstab

dort die folgende Zeile hinzufügen:

//192.168.50.50/NAS/TV/record /home/xbian/record cifs defaults,username=name,password=pass

dann mit „CTRL“+“O“ speichern und mit „CTRL“+“X“ beenden. Anmerkung: Auf dem Raspberry muß der Ordner „record“ im Verzeichnis /home/xbian/ angelegt sein bzw. mit mkdir record angelegt werden. Der Username bzw. das Password im obigen Eintrag bezieht sich auf das NAS, also die user/pass id mit der auf das NAS zugegriffen werden darf.

Jetzt mit sudo mount -a  die fstab neu ausführen. Jetzt in das Webinterface von tvheadend wechseln und dort bei den Aufnahmeeinstellungen bei Speicherpfad /home/xbian/record eintragen. Ab sofort landen alle Aufzeichnungen am Netzlaufwerk des NAS…