yuna Posted June 1, 2019 at 01:53 AM Share Posted June 1, 2019 at 01:53 AM Howdy, da hier viele Ihre Projekte vorstellen, möchte ich hier meines ebenso beschreiben, auf Hoffnung das es euch gefällt. Ich bin ehrenamtliche Inspirieren (Lehrerin) in der Hackerschool für Berlin und gebe Java Kurse. Die Kids spielen sehr gern mit Tinkerforge! Echt tolle Hardware auf die man sich verlassen kann. So können wir uns super in ruhe um die Software kümmern. Mit der Zeit haben wir uns Hilfen um die Tinkerforge API herum gebaut. Somit kommen wir Stück für Stück schneller voran. Diese ist hier zu finden: https://github.com/YunaBraska/tinkerforge-sensor Neben weiterer Entwicklung ist es unser zu Hohes Ziel diese API in Frameworks wie Spring Boot mit Spring Boot messaging einzubauen. Die Bricks/Bricklets sind mittels Wrapper in dieser Library generisch gehalten. Daher braucht man nicht lange nachzudenken und kann jedes Brick/Bricklet auf gleichen Weg ansteuern. Egal ob es ein Display oder ein RGB Button ist. Die Library soll auch davor etwas schützen, die Bricks/Bricklets direkt voll zu spamen. Vieles generiert sich in der Library von selbst. So auch die Dokumentation über die Sensoren (Wrapper von Brick/Bricklets) (https://github.com/YunaBraska/tinkerforge-sensor/blob/master/SENSOR_README.md Hier ein paar Beispiele: Stack verbinden: Stack stack = new Stack("localhost", 4223, true); Mit Eventstream verbinden: stack.sensorEventConsumerList.add(Class::myClientFunction); Werte aus gesamten Stack holen Long soundIntensity = stack.values().soundIntensity(); Long soundIntensityMax = stack.values().soundIntensity_Max(); Long soundIntensityMin = stack.values().soundIntensity_Min(); Long soundIntensityAverage = stack.values().soundIntensity_Avg(); Long soundIntensitySum = stack.values().soundIntensity_Sum(); Werte von Brick/Bricklets holen Long stack.sensors().lightAmbient().values().lightLux(); Mehrere Bricks/Bricklets verwenden (Versionen sind egal - Port Reihenfolge gewinnt) Sensor button_1 = stack.sensors().buttonRGB(0); Sensor button_2 = stack.sensors().buttonRGB(1); Sensor button_3 = stack.sensors().buttonRGB(2); Bricks/Bricklet ansprechen stack.sensors().buttonRGB().send(Color.MAGENTA); stack.sensors().speaker().send(1000, 5000); stack.sensors().displayLcd20x4().send("Howdy"); stack.sensors().io16().send(1); stack.sensors().soundIntensity().refreshLimit(6); Bricks/Bricklet mit limit von 2x pro Sekunde ansprechen - gut für loops oder wenn auf andere Events reagiert wird stack.sensors().speaker().sendLimit(2, 100, 5000); Mal schnell Decibel auf SegemtDisplay anzeigen lassen Long decibel = stack.values().soundIntensity() stack.sensors().displaySegment().send((decibel / 10) + "dB"); Mal schnell über alle Bricks/Bricklets loopen und status LEDs einschalten - super für KnightRider Effekte über die Bricks for (Sensor sensor : stack.sensors()) { if (sensor.isPresent() && sensor.hasLedStatus() && sensor.isBrick()) { sensor.ledStatusOn(); } } Bricks/Bricklet direkt ansprechen - falls wrapper nicht reicht Device device = stack.sensors().buttonRGB().device; Wir haben leider nur die Bricks/Bricklets in unsere Library angebunden, die wir auch wirklich besitzen und ins private Budget passen. Leider gehen reihenweise die alten Bricklets und Master Bricks kaputt, da auch die besten Kinder an den alten Steckverbindungen scheitern. Wäre ganz cool wenn die Master Bricks bald auch ein Update bekämen. Demnächst möchten wir ein Fahrzeug bauen. Einen einfachen, fahrbaren Untersatz zu finden, auf den man Tinkerforge bauen kann ist echt schwer zu finden. Zudem wir nur den Servo Brick haben und unsere 360 Grad Servos versuchen anzubinden... Wird spannend wie wir das auch Softwareseitig in die Library einfließen lassen. Quote Link to comment Share on other sites More sharing options...
yuna Posted June 27, 2019 at 12:05 PM Author Share Posted June 27, 2019 at 12:05 PM Neu: * Javadoc update * Autogenerierte Readme.md Dokumentation readmeDoc * Es gibt nun Listenelemente von allen Sensoren stack.sensors().displayList(); * Das neue SegmentDisplay_V2 ist nun ebenfalls implementiert display.send("1.2.:3.‘4."); * Wie von der Hackerschool-API gewohnt kann das alte SegmentDisplay ebenfalls mit selben Werten umgehen und ignoriert die nicht anzeigbaren Elemente * Tinkerforge API update (eigenes connection handling ist gelöscht) * Unterschiede zwischen Bricks und Bricklets wurden entfernt Quote Link to comment Share on other sites More sharing options...
StefanOHAN Posted July 12, 2019 at 06:37 AM Share Posted July 12, 2019 at 06:37 AM Hallo yuna, Ich nutzte Tinkerforge zwar nur in Verbindung mit OpenHab (kann also bei Java nicht mitreden), finde es super wenn Kids und Jugendliche über Projekte wie Ihr es betreibt, an die Materie (Technik und Programmierung) herangeführt werden :-) Super viele Grüsse Stefan Quote Link to comment Share on other sites More sharing options...
yuna Posted July 12, 2019 at 07:52 AM Author Share Posted July 12, 2019 at 07:52 AM Vielen Dank Stefan, ja mit Tinkerforge sind die Kurse wirklich interessanter als stumpf alles Virtuell zu programmieren. Kids können basteln, aufbauen, Dinge in die Hand nehmen, kombinieren und dann die Logik schaffen wie alles miteinander funktioniert Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.