Jump to content

TinkerForge und Nutzbarkeit für blinde Anwender


robin24

Recommended Posts

Hallo zusammen, und frohes neues Jahr allerseits!

Ich interessiere mich schon länger für TinkerForge und die Projekte, die man damit realisieren kann. Allerdings hatte ich wegen Uni etc. bisher noch kaum Zeit mich damit zu befassen, was sich aber nun hoffentlich ändern wird! Erstmal ist es bei mir so, dass ich mich sehr für Computer und Technik interessiere, ich administriere mehrere (Debian) Linux-Server und schraube auch mal gerne an meinen Kisten herum, falls notwendig. Allerdings ist es in meinem Fall so, dass ich von Geburt an vollständig blind bin, und somit bei der Benutzung meines Computers, Handys oder anderer Geräte auf gewisse Hilfsmittel angewiesen bin, insbesondere sog. Screen Reader. Ein Screen Reader ist kurz gesagt ein Programm, dass den Bildschirm-Text ausließt und über eine synthetische Sprachausgabe vorliest, sodass man auch ohne zu sehen weiß, was gerade zu sehen ist. Außerdem wird die Bedienung durch zusätzliche Tastaturbefehle so erweitert, dass man den Rechner nur via Tastatur bedienen kann, da die Maus für Blinde schwer nutzbar ist. Unter Mac OS gibt es z.B. den Screen Reader VoiceOver, der bereits im Betriebssystem integriert ist und nur eingeschaltet werden muss, unter Linux gibt es hingegen Orca für den Gnome-Desktop. Nun würde es mich brennend interessieren, wie gut man evtl. als Blinder mit der Hardware von TinkerForge arbeiten kann, wobei hauptsächlich die Aspekte Handhabung und Software wichtig sind. Was die Handhabung betrifft würde es mich z.B. sehr interessieren ob es sehr kompliziert ist, die TinkerForge-Elemente untereinander zu verbinden. Wie schon geschrieben bin ich es z.B. gewöhnt, an meinen Rechnern herumzuschrauben, bin also recht vertraut mit technischen Basteleien. Am Anfang würde ich z.B. sehr gerne mal versuchen, wie in der Anleitung beschrieben eine Wetterstation aufzubauen. Hierbei würde ich allerdings das LCD-Display weglassen, da ich es ohnehin nicht ablesen könnte. Stattdessen hätte ich gern ein System, dass z.B. Daten an einen Raspberry Pi sendet, der mir dann die Daten mit selbst programmierten Scripts auswertet und anzeigt, z.B. via Web-Interface. Wäre das mit den TinkerForge-Komponenten schwer aufzubauen, oder muss man hier wirklich nur die Einzelteile zusammenstecken und fertig? Man kommt damit vollkommen ohne löten aus, ist das richtig?

Was die Software betrifft, so muss man ja sowieso den Großteil selber programmieren und über die API auf die Daten zugreifen, die vom jeweiligen Brick geliefert werden - soweit kein Problem. Allerdings habe ich nun festgestellt, dass das Interface des Brick Viewers leider für Screen Reader nicht zugänglich ist, wahrscheinlich wurde hier QT für das User Interface verwendet... Gibt es daher irgendeinen Weg, am Brick Viewer vorbeizukommen? Ist es z.B. möglich, Bricks auch per Kommandozeile zu flashen?

Sorry für den langen Post und die vielen Fragen, aber die Materie interessiert mich wirklich sehr und ich würde sehr gerne ins Basteln mit TinkerForge einsteigen! :-)

Danke schonmal im Voraus für Antworten!

Viele Grüße,

Robin

Link zu diesem Kommentar
Share on other sites

Hallo Robin,

 

ich koennte mir vorstellen, dass du gut mit den Sachen zurecht kommst. Es muss wirklich nichts geloetet werden. Alle Komponenten koennen durchaus blind zusammengesteckt werden. Die Tinkerforgemodule werden per Mini-USB-kabel oder Ethernetkabel an den PC angeschlossen. Die einzelnen Bricks werden zu einem Stapel zusammengesteckt, wobei das nicht falschherum geht. Die Bricklets die an den Bricks angesteckt werden, haben einen flachen Stecker, den man mit Gewalt falsch rum reinstecken kann, aber ich denke mit entsprechendem Gefuehl bekommt man das hin.

 

Ich ueberlege gerade wo du Probleme bekommen koenntest. Zum einen gibt es Strommodule, die einen Ein- und Ausgang haben der nur farblich unterschiedlich ist. Mechanisch ist das leider identisch und wenn man Ein- und Ausgang verwechselt ist das sehr schlecht. Da muesstest du dir erklaeren lassen an welcher Ecke was ist. Dann gibt es noch das Servobrick an das man Modellbauservos anschliessen kann. Typischerweise ist der Stecker nicht verpolungssicher, aber wenn man ihn falsch reinsteckt passiert nichts. Das sind aber schon fortgeschrittene Dinge. Zum Anfang braucht man das nicht. ;-)

 

Wenn du es ausprobieren moechstest, dann kauf dir ein Masterbrick was man per USB-Kabel an den Computer anschliessen kann. Dort kannst du dann bis zu 4 Bricklets mit den passenden Kabeln anschliessen.

 

Hier eine Auswahl von Bricklets mit Haptik:

 

Distance Ultraschall Bricklet

Dual Button Bricklet

Joystick Bricklet

Motion Detector Bricklet

Piezo Speaker Bricklet

Tilt Bricklet

 

Zum Brickviewer und dem flashen:

Die Bricks kann man per Kommandozeile flashen. Da gibt es ein Tool. Die Bricklets, die an den Bricks angeschlossen sind, muss man aus meiner Sicht per Brickviewer flaschen. Ich kann mir aber vorstellen, dass es dort eine Loesung geben koennte.

 

So weit erstmal.

 

 

Der Loetkolben (Das ist mein Nickname, also keine Angst) :-)

Link zu diesem Kommentar
Share on other sites

Moin Loetkolben,

vielen Dank für deine sehr ausführliche und hilfreiche Antwort!!! :-)

Das klingt ja wirklich alles sehr einfach... Ich hatte es mir zwar auch ein Bisschen so vorgestellt, nachdem ich die Beschreibungen und Tutorials mal überflogen hatte. Allerdings wollte ich einfach auf Nummer sicher gehen, und da hat mich deine Antwort schon extrem weitergebracht! Nein, Strommodule und Servo-Steuerungen brauche ich aktuell wirklich nicht, würde im ersten Schritt wie gesagt erstmal gern ein paar Sensoren zum Laufen bekommen und die entsprechenden Daten auswerten und aufbereiten, um z.B. eine kleine Wetterstation zu realisieren. Danach kann ich mir ja noch überlegen, was mir sonst noch so in den Sinn kommt! :-P Zu den Kommandozeilen-Tools: könntest du mir da vllt. noch verraten, wo ich die finden kann? Im Downloads-Bereich hab ich erstmal nur den Brickd und den grafischen Brick Viewer gefunden, der sich ja leider für mich nicht nutzen lässt... Wie läuft das denn eigentlich genau mit den Firmwares, die man flashen kann? Haben die Bricks und Bricklets bei der Auslieferung schon eine Firmware drauf, oder muss man die zwangsläufig selber flashen? Es ist natürlich nicht so, dass ich im Fall der Fälle nicht auch auf sehende Hilfe zurückgreifen könnte, z.B. Familie oder Freunde. Allerdings versuche ich bei solchen Dingen nach Möglichkeit Mittel und Wege zu finden um es allein hinzubekommen, damit ich nach Möglichkeit auch selber damit "herumspielen" kann und z.B. ein Firmware-Upgrade auch selbst durchführen könnte.

Auf jeden Fall nochmal vielen Dank für deine Antwort, du hast mir damit schon sehr weitergeholfen! :-)

Viele Grüße,

Robin

Link zu diesem Kommentar
Share on other sites

Hallo Robin,

 

da kann ich ein wenig weiterhelfen.

 

Das Kommandozeilentool zum flashen der Bricks ist im Paket "brickv" enthalten und das Kommando heisst "brick-flash-cmd". Ich habe das immer nur unter Linux probiert und weiss nicht ob das auch unter Windows geht. Da koennten ggf. andere weiterhelfen.

 

Du musst also auf einem PC, wo der Masterbrick per USB angeschlossen ist, den brickd (Brickdaemon) zu eigentlichen Kommunikation installieren und dann den brickv (Brickviewer) installieren. Dort sollte es dann im Installationsverzeichnis des brickv auf das Kommandozeilentool geben. Soweit geht das auch.

 

Wenn du aber auf dem PC, an dem der Masterbrick haengt, keinen Brickviewer installieren willst oder kein Grafiksystem installiert hast, dann gibt es dieses Kommandozeilentool auch als eigenstaendiges Debian Paket.

 

Der folgende Link springt mitten in die Diskussion ab der Tinkerforge das eigenstaendige Debian Paket "brick-flash-cmd-1.0.0_all.deb" fertig gemacht hat: Offizielles "Flash Brick Commandline Tool"

 

Dort ist auch ein Link der in die originale Tinkerforgedokumentation verzweigt.

Bricks kann man nur an dem PC flashen an dem sie selbst physisch haengen, da man zum flashen deren Software mit 2 Tastendruecken loescht und sie dann nur noch per USB lokal ueber ihre unloeschbare bootsoftware kommunizieren koennen.

 

Soviel zum flashen der Bricks. Aber nun zum beantworten der Frage warum und ob man ueberhaupt flashen muss.

 

Die Bricks kommen sofort einsatzfaehig mit aktueller Firmware. Aenderungen der Firmware sind mittlerweile selten geworden, da es kaum noch Bugs gibt. ;-)

Aber gerade jetzt erschien das RED Brick. Durch diese neue Komponente wurde die Kommunikation der Bausteine untereinander erweitert und angepasst. Somit gab es fuer viele Bricks eine Firmware, so dass alle Bricks mit dem neuen RED Brick zusammenarbeiten koennen.

 

Wenn man das RED Brick nicht einsetzt, waere ein Update der eingenen Hardware nicht dringend noetig gewesen, aber wenn man auf dem aktuellen Stand ist, dann ist das meistens nie verkehrt. :-)

 

 

Zum den Bricklets: Die Bricklets haengen an den Bricks und sind die eigentlichen Sensoren. Hier ist ein kleines Eeprom drauf was auf den aktuell Stand gebracht werden sollte. Auch hier gibt es ab und zu Bugfixes oder Featureerweiterungen. Diese Bricklets koennen nur ueber den Brickviewer geflasht werden. Dies kann auch aus der Ferne geschehen! Solange der Brickviewer mit dem PC an dem der Masterbrick angeschlossen ist, kommunizieren kann, kann man von ueberall die Bricklets updaten. Soll heissen: Wenn ich auf deinen Brick zugreifen kann, kann ich die Bricklets auch flashen, egal von wo.

 

Hier mal eine kleine ASCII-Grafik zur Kommunikation von Bricklet bis zum Brickviewer. Die ASCII-Grafik besteht nur aus einer Zeile. Ggf. die Umbrueche in deinem Reader ignorieren. Minuszeichen sind Kabel. Tildezeichen sind logische Wege.

 

Beispiel wenn alles an einem PC haengt:

Temperaturbricklet---Masterbrick---USBKabel---PC~~~brickd~~~TCP_Port4223~~~Lokaler_Brickviewer

 

Beispiel wenn der Masterbrick mit Bricklet an einem anderen PC im Netz haengt als der Brickviewer:

Temperaturbricklet---Masterbrick---USBKabel---PC1~~~brickd~~~TCP_Port4223~~~Ethernetnetzwerkkarte_PC1---LAN---Ethernetnetzwerkkarte_PC2~~~Brickviewer

 

An der Stelle des Brickviewers kann natuerlich auch deine eigene Software arbeiten. ;-)

 

Da gibt es noch weitere Moeglichkeiten, aber dies sollte fuer den ersten Ueberblick helfen.

 

Viele Gruesse

 

Der Loetkolben

 

 

 

Link zu diesem Kommentar
Share on other sites

Hi Loetkolben,

vielen lieben Dank für deine weiteren Erklärungen, die mir wirklich sehr geholfen haben!!! Was das Tool zum Flashen betrifft, so hab ich grad mal bei mir nachgeschaut... Ich verwende hier Mac OS und auf meinen Server-Systemen wie geschrieben Debian Linux, Windows hab ich hier gar nicht in Verwendung und damit kannst du mich auch echt jagen... :-P Ich hab grad mal in das Paketverzeichnis vom Brick Viewer geschaut, den ich auf meinem Mac installiert habe. Leider scheint es dort keine Tools für die Kommandozeile zu geben, die sind also wohl Linux vorbehalten... Ist aber eigentlich auch kein Problem, da ich den Brick ohnehin an einen Raspberry Pi mit Debian hängen und auch von dort aus ansteuern würde, wo ich dann auch das Deb-Paket mit dem Kommandozeilen-Tool installieren kann.

Es ist auf jeden Fall sehr schön zu wissen, dass man alles auch erstmal in Betrieb nehmen kann, ohne vorher noch zu flashen! Es ist mir aber natürlich klar, dass man nach Möglichkeit auf dem aktuellen Stand sein sollte, es ging mir hauptsächlich darum zu wissen, ob man vor der Inbetriebnahme noch zwangsweise alles flashen muss, was ja zum Glück nicht der Fall zu sein scheint! Dein grafisches Kunstwerk hat mir auch sehr geholfen, um alles nochmal genauer zu veranschaulichen - vielen Dank natürlich auch dafür!

Ich denke dass ich nun genug weiß, um einen Einstieg zu wagen! Muss mir nur noch überlegen, welche Bricklets ich mir erstmal zulege, interessant ist ja irgendwie alles! :-)

Auf jeden Fall nochmal vielen Dank für deine Tipps und Ratschläge, du hast mir damit wirklich sehr weitergeholfen!!!

Liebe Grüße,

Robin

Link zu diesem Kommentar
Share on other sites

Hallo Robin,

 

du sprachst in deinem ersten Beitrag, dass das Interface des Brick Viewers leider für Screen Reader nicht zugänglich ist und dass wahrscheinlich hier QT für das User Interface verwendet wurde.

 

Kannst du denn uns und dem TF Team kurz erläutern was nötig wäre, um die Software zugänglich zu machen? Oder was für Vorrausetzungen geschaffen werden müssten, damit der Screen Reader den Brick Viewer "auswerten" kann? Vielleicht sind dies ja "kleinere" Änderungen oder Anpassungen die das TF Team mit aufnehmen und mittelfristig umsetzten könnte.

 

Denn wie Loetkolben sehr gut beschrieben hat, ist die Hardware mit ein wenig probieren leicht zusammen gebaut. Es muss nur ein wenig auf die kleinen Verbindungsstecker zwischen Brick und den Bricklets aufgepasst werden.

 

Viele Grüße

Unex

Link zu diesem Kommentar
Share on other sites

Hi Unex,

vielen Dank für deine Antwort und dem Interesse daran, den Viewer zugänglicher zu machen! :-)

Leider gibt es beim QT-Framework einige Probleme... Das grundlegende Problem hier ist wohl die Einbindung bestimmter APIs vom Betriebssystem, welche die Inhalte von Fenstern barrierefrei nutzbar machen. Dabei geht es nicht nur um die Auslesbarkeit / Bedienung mit Screen Reader wie bei mir der Fall, sondern auch um die Anbindung von anderen Bedienungshilfen wie z.B. Textvergrößerung für Menschen mit Sehschwäche. Jedes Betriebssystem stellt mittlerweile solche APIs zur Verfügung, die auch direkt von den nativen UI-Frameworks unterstützt werden. Wenn du z.B. unter Mac OS mit Xcode und Interface Builder ein User Interface bastelst, musst du dich nichtmehr groß um Zugänglichkeit für blinde User kümmern, weil das System die meiste Arbeit erledigt - das gilt, soweit ich weiß, auch z.B. für Visual Studio unter Windows. Bei QT ist es nun aber so, dass es ja ein komplett eigenes UI-Framework ist, welches seine eigenen APIs mitbringt und so wenig wie möglich auf Methoden des Betriebssystems zugreift, um plattformunabhängig arbeiten zu können. Somit müssten die Entwickler von QT eigene Schnittstellen einbauen, die QT-Interfaces für Screen Reader zugänglich machen. Die Vergangenheit hat aber leider gezeigt, dass denen Menschen mit Behinderungen wohl herzlich egal sind, leider muss man das wirklich so sagen... Es gab schon etliche Petitionen usw. zu dem Thema, die aber leider nichts Nennenswertes bewirkt haben. Es ist ab QT 5 etwas besser geworden, aber irgendwie scheint sich das auch von Interface zu Interface zu unterscheiden, sodass ich aus meiner Erfahrung leider keine konkrete Aussage machen kann. Vielleicht wäre es ja möglich, mal einen Test-Build mit QT 5 zu erstellen, den ich dann sehr gerne auf Bedienbarkeit testen würde! Allerdings weiß ich leider nicht, wie Aufwändig das ist und ob das schnell hinzubekommen wäre, da kennt ihr bei TF euch auf jeden Fall besser mit aus... :-) Prinzipiell würde ich persönlich dazu raten, QT auf keinen Fall zu verwenden und auf ein anderes Framework umzusteigen... Aber ich fürchte, dass so ein Schritt wohl zu Aufwändig wäre! Vielleicht wäre es ja aber auch machbar, die Konsolen-Tools noch weiter auszubauen, so dass z.B. Bricklets per Konsole geflasht werden könnten, oder andere Funktionen des Viewers auf diese Art nutzbar wären...

Leider ist das alles, was mir dazu einfällt... Die Sache mit QT ist extrem schwierig, daher kann ich leider auch keine leicht umsetzbaren Ratschläge anbieten...

Auf jeden Fall nochmal vielen Dank für dein Interesse, vielleicht lässt sich ja doch noch etwas machen! :-)

Viele Grüße,

Robin

Link zu diesem Kommentar
Share on other sites

Vieles wurde schon richtig erklärt. Ich gehe nochmal auf einige Sachen ein:

 

Mittel bis kurzfristig werden Brick Viewer von Qt 4 auf Qt 5 umstellen, das ist schon geplant. Von Qt auf ein komplett anderes Framework zu wechseln wäre ein sehr sehr großer Aufwand, das wird daher wohl nicht passieren.

 

Brick Viewer ist aber an sich nur ein Hilfsprogramm zum Testen und Aktualisieren der Brick und Bricklet Firmwares. Daher solltest du ihm keine so große Bedeutung beimessen. Den Großteil der einfachen Tests und Funktionen die der Brick Viewer anbietet kannst du auch sehr einfach direkt auf der Kommandozeile mit den Shell Bindings ausführen.

 

Bisher sind leider nur Firmware Updates für Bricks von der Kommandozeile unter Linux aus möglich, wie Loetkolben schon richtig sagte. Alles andere kann derzeit nur aus Brick Viewer heraus aktualisiert werden, da bist du derzeit leider ihm Nachteil. Es steht schon länger auf meiner TODO Liste das brick-flash-cmd so zu erweitern, dass es auch auf Windows und Mac und mit Bricklets funktioniert. Allerdings kann ich dir da keine Versprechungen machen wann ich dazu kommen werde. Potentiell jetzt allerdings eher früher als später, da der Bedarf gestiegen ist. :-)

Link zu diesem Kommentar
Share on other sites

Hier eine Idee zum Workaround:

 

Wenn man den brickviewer um nur 2 commandlineswitches erweitert, dann kann man vielleicht beim Brickletflashen helfen.

 

1. Der Brickviewer gibt auf der Console das Fenster mit der Versionsuebersicht aus:

"brickv /showupdateversion"

 

2. Der Brickviewer flasht alle Bricklets wie wenn man auf den Button "Auto-Update All Bricklets" im GUI drueckt:

"brickv /autoupdateallbricklets"

 

Das flashen von aelteren Versionen und das gezielte ansprechen NUR eines Bricklets koennte man erstmal zurueckstellen.

 

Noch eine Idee: Oder man kann den Brickviewer so aufrufen, dass er mit einer minimalen 4 Button Oberflaeche erscheint die kompatibel zum Reader ist und nur die 4 wichtigsten Dinge ausfuehren kann.

 

 

Der Loetkolben

 

 

Link zu diesem Kommentar
Share on other sites

DAS wiederum koennt nur ihr wissen.  ;D

 

War ja nur eine "Quick and Dirty" Idee die ich auch schon mal bei anderer Software gesehen habe.  ;D  Eine saubere Loesung als eigenstaendiges Tool waere natuerlich schoener, aber ihr muesst ja auch die Zeit finden.

Ich hatte vermutet, dass das mit ein paar Zeilen Code getan ist, da die eigentlichen Informationen und Routinen ja vorhanden sind. Leider fehlt mir das Wissen um da zu helfen.  :-\

 

 

Der Loetkolben

Link zu diesem Kommentar
Share on other sites

Ich hatte vermutet, dass das mit ein paar Zeilen Code getan ist, da die eigentlichen Informationen und Routinen ja vorhanden sind.

 

Richtig, die Funktionalität ist schon da, sie muss nur etwas umorganisiert werden, damit sie von zwei Programmen aus genutzt werden kann. Wenn das getan ist ist es einfacher brick-flash-cmd zu erweitern, als erst brickv noch ein Kommandozeilen Interface zu geben.

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...