Neues vom ftDuino

Alles rund um COMPUTING inkl. Microcontroller & Co.
Everything about COMPUTING incl. Microcontrollers
Forumsregeln
Bitte beachte die Forumsregeln!

Re: Neues vom ftDuino

Beitragvon FischRob » 23 Aug 2018, 19:38

Hallo,

ich wollte nur mitteilen, daß das mit WebUsb, tablet(Android) und IoServer bestens funktioniert.

Gruß
FischRob
FischRob
 
Beiträge: 75
Registriert: 01 Nov 2010, 10:51

Re: Neues vom ftDuino

Beitragvon MasterOfGizmo » 24 Aug 2018, 18:33

FischRob hat geschrieben:ich wollte nur mitteilen, daß das mit WebUsb, tablet(Android) und IoServer bestens funktioniert.


Super, danke für's Feedback.
ftDuino, der Arduino für fischertechnik: http://ftduino.de
Benutzeravatar
MasterOfGizmo
 
Beiträge: 1511
Registriert: 30 Nov 2014, 08:44

Re: Neues vom ftDuino

Beitragvon MasterOfGizmo » 25 Jan 2019, 17:29

Ein ftDuino-User hat den Farbsortierroboter mit dem ftDuino aufgebaut:

https://www.youtube.com/watch?v=dKZGRMCIzu8
ftDuino, der Arduino für fischertechnik: http://ftduino.de
Benutzeravatar
MasterOfGizmo
 
Beiträge: 1511
Registriert: 30 Nov 2014, 08:44

Re: Neues vom ftDuino

Beitragvon tintenfisch » 14 Feb 2019, 01:06

Hallo zusammen,

ich bin seit drei Tagen stolzer Besitzer eines ftDuino. Ich habe die ftduino_direct Bibliothek von PHabermehl gefunden, aber der Python-Client ist mir etwas zu umständlich.
Ich habe einen weiteren Python-Client geschrieben, welcher etwas mehr abstrahiert und aufgrund div. Methoden bspw. Code-Vervollständigung unter IDLE und anderen IDEs bietet. Der Client ist noch nicht veröffentlicht, aber ich finde ihn für meine Zwecke bisher ganz nützlich.
Vielleicht interessiert es weitere Entwickler, da es m.E. den Code reduziert und Zugriffe auf manche Funktionen erleichtert.

Ein Beispiel:
Code: Alles auswählen
>>> import ftdu
>>> ftd = ftdu.FtDuino()
>>> ftd.led = True  # Schaltet die LED ein
>>> ftd.led = False  # Schalted die LED aus
>>> ftd.i1  # Abfrage des input ports I1
0


Der Client nutzt das Sketch von ftduino_direct, die Python-Programmierung ist jedoch unabhängig von dem Standard-Client.

Das Repository befindet sich unter https://github.com/heuer/ftdu, der aktuelle Code unter https://github.com/heuer/ftdu/tree/develop

Grüße
Lars
tintenfisch
 
Beiträge: 8
Registriert: 03 Jan 2018, 23:04

Re: Neues vom ftDuino

Beitragvon tintenfisch » 14 Feb 2019, 08:55

Hier noch ein etwas "komplexeres" Beispiel aus dem Handbuch von MasterOfGizmo. Kapitel 4.8.1 - Die Ampelschaltung

Code: Alles auswählen
# -*- coding: utf-8 -*-
"""\
ftDuino Handbuch - 4.8.1 Einfache Ampel.
"""
import time
import ftdu


def example():
    ftd = setup()
    while True:
        loop(ftd)


def setup():
    ftd = ftdu.FtDuino()
    ftd.o1 = True
    return ftd


def loop(ftd):
    if ftd.i1:
        ftd.o1 = False  # Rote Lampe ausschalten
        ftd.o2 = True  # Grüne Lampe einschalten
        time.sleep(10)  # 10 Sek. warten
        ftd.o1 = True
        ftd.o2 = False


if __name__ == '__main__':
    example()
tintenfisch
 
Beiträge: 8
Registriert: 03 Jan 2018, 23:04

Re: Neues vom ftDuino

Beitragvon PHabermehl » 14 Feb 2019, 10:16

Hallo Lars,
schön, dass Du Dich hier outest. Gefällt mir sehr gut, was Du da gemacht hast.

Mein Ansatz beim sketch war seinerzeit, dass eine Kommunikation in Klartext über ein Terminal, also z.B. den "serial monitor" der Arduino-IDE möglich sein sollte.
Für die Python-Schnittstelle hatte ich nur den Wunsch, dass die Kommunikation vollständig entkoppelt von der Entwicklung des sketches sein sollte. Wenn ich ftduino_direct.ino erweitere, dann kann man über ftduino_direct.comm sofort auf die neuen Funktionen zugreifen, ohne die Python-Bibliothek updaten zu müssen. Das ist insbesondere für die App-Entwicklung für die community firmware wichtig, da die Python Bibliothek Teil der Firmware ist - man müsste also im Falle einer Funktionserweiterung erst ein Firmwareupdate machen. So braucht man nur - im Falle der cfw mit der App ftDuinIO - das Sketch-Update auf den ftDuino zu flashen, und alles läuft. Für den reinen Anwender sehr bequem, für den Programmierer und aus Python-Sicht sicher nicht optimal.
Wenn Du Dein Modul aber z.B. direkt mit der App bundlest und verteilst, dann hast Du etwaige Updates ja auch unter Kontrolle.

Viele Grüße
Peter
PHabermehl
 
Beiträge: 1091
Registriert: 20 Dez 2014, 23:59
Wohnort: Bad Hersfeld
Alter: 46

Re: Neues vom ftDuino

Beitragvon tintenfisch » 14 Feb 2019, 11:07

Hallo Peter,

ich verstehe, was Du mit dem Client bezweckst und ich bin auch froh über das ftduino_direct Sketch. "zu umständlich" war auch nicht als Kritik gemeint; es ist praktisch, die Befehle direkt an die Schnittstelle kommunizieren zu können. Zunächst nutzte der Client auch das ftduino_direct Python Modul (darum auch die Frage nach der Lizenz ;)), nun ist es jedoch unabhängig davon. Mir fehlte lediglich eine weitere Ebene, die es mir erleichtert, mit dem ftDuino zu sprechen. Aus diesem Grunde habe ich den Client geschrieben; bspw. werden auch die Ergebnisse vom ftDuino in entsprechende Datentypen (int, bool) umgewandelt und liefern keinen String zurück.

Bei Änderungen am ftduino_direct Sketch muß der Client evtl. angepaßt werden, das ist ein Nachteil (er bietet jedoch auch die "comm" Methode Deines Clients so daß man sich ggf. damit behelfen kann).

Viele Grüße
Lars
Zuletzt geändert von tintenfisch am 14 Feb 2019, 11:15, insgesamt 1-mal geändert.
tintenfisch
 
Beiträge: 8
Registriert: 03 Jan 2018, 23:04

Re: Neues vom ftDuino

Beitragvon PHabermehl » 14 Feb 2019, 11:10

Hallo Lars,

tintenfisch hat geschrieben:(er bietet jedoch auch die "comm" Methode Deines Clients so daß man sich ggf. damit behelfen kann).

Auch das habe ich gesehen und das hat mich besonders gefreut. Wie gesagt, ich finde Deine Arbeit gut, weil sie den Zugriff aus Python heraus definitiv vereinfacht. Und am meisten freut es mich, dass sich jemand überhaupt damit beschäftigt!

Viele Grüße
Peter
PHabermehl
 
Beiträge: 1091
Registriert: 20 Dez 2014, 23:59
Wohnort: Bad Hersfeld
Alter: 46

Re: Neues vom ftDuino

Beitragvon tintenfisch » 17 Feb 2019, 00:52

Ich habe nun das Python Modul auch unter PyPi registriert und eine erste Version veröffentlicht.

Via

Code: Alles auswählen
pip install ftdu


kann man nun das Modul installieren.

Gegenüber der Version vor ein paar Tagen habe ich nun zwei Klassen implementiert. Die Klasse BaseFtDuino offeriert alle Funktionen der Ftduino-Lib sowie (fast) alle des ftduino_direct Sketches. Alle Funktionen der Ftduino-Bibliothek werden via Methoden abgebildet und liefern die entsprechenden Werte als Python Datentypen (bool / int) zurück.

Die Klasse FtDuino erweitert die Klasse BaseFtDuino um einige Methoden sowie Abkürzungen.

Beispiel für die Abfrage des I1:

Code: Alles auswählen
    >>> import ftdu
    >>> # Low level
    >>> ftd = ftdu.BaseFtDuino()
    >>> if bool(int(ftd.comm('input_get I1'))):
              pass
    >>> # Low level, aber korrekter Datentyp
    >>> if ftd.input_get('I1'):
              pass
    >>> # High level
    >>> ftd = ftdu.FtDuino()
    >>> if ftd.i1:
              pass


ftdu bietet weitere Abkürzungen, inbes. bei der Ansprache von Motoren (Encoder vs. "normaler" Motor).

Die Dokumentation des Modules befindet sich unter https://ftdu.readthedocs.io/

Über Rückmeldungen und / oder Vorschläge würde ich mich freuen.
tintenfisch
 
Beiträge: 8
Registriert: 03 Jan 2018, 23:04

Vorherige

Zurück zu Robo Pro / Computing / Software

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste