Datenlogger auf TXT SD-Karte

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
chehr
Beiträge: 177
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Datenlogger auf TXT SD-Karte

Beitrag von chehr » 17 Jan 2021, 12:23

Hallo,
ich wollte via SLI DAten von RoboPro auf die TXT SD-Karte speichern.
Prinzipiell müsste das gehen, jedoch kommt auf der Konsole die Fehlermeldung:

Code: Alles auswählen

....Failed opening file /opt/knobloch/ExternalSD/TXT/Data.log for writing: Permission denied
Zur Info, auf der SD-Karte ist ein Ordner TXT angelegt, welcher auch sichtbar ist.

Also, es scheint so, das RoboPro keine Schreibrechte auf der SD-Karte hat, sondern nur root.

Wie wäre es möglich das RoboPro schreibrechte auf die SD-Karte bekommt?

sven
Beiträge: 2298
Registriert: 18 Okt 2010, 18:13
Wohnort: Rahden
Kontaktdaten:

Re: Datenlogger auf TXT SD-Karte

Beitrag von sven » 17 Jan 2021, 16:47

Hallo!

Das geht nicht.
Leider hat ft diese Funktion nicht in RoboPro implementiert.

Gruß
sven
Dieses Posting gibt ganz allein meine persönliche Meinung wieder!

Benutzeravatar
MasterOfGizmo
Beiträge: 2226
Registriert: 30 Nov 2014, 07:44

Re: Datenlogger auf TXT SD-Karte

Beitrag von MasterOfGizmo » 17 Jan 2021, 18:25

Ist denn die SD-Karte ge'mounted? Welcher Mechanismus mountet die denn? Das wäre ggf. auch genau die Stelle, an der man die Rechte justieren kann. Also ggf. mal in /etc/fstab schauen.

Ich erinnere mich aber leider nicht, ob dieser Teil des TXT-Dateisystems schreibbar war und ob man /etc/fstab überhaupt so ohne weiteres ändern darf.
Für fischertechnik: Arduino ftDuino http://ftduino.de, Raspberry-Pi ft-HAT http://tx-pi.de/hat

Benutzeravatar
MasterOfGizmo
Beiträge: 2226
Registriert: 30 Nov 2014, 07:44

Re: Datenlogger auf TXT SD-Karte

Beitrag von MasterOfGizmo » 17 Jan 2021, 18:30

Gefunden. Das passiert hier:

https://github.com/fischertechnik/FT-TX ... unts.rules

Ggf. kannst Du da was anpassen.
Für fischertechnik: Arduino ftDuino http://ftduino.de, Raspberry-Pi ft-HAT http://tx-pi.de/hat

chehr
Beiträge: 177
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Datenlogger auf TXT SD-Karte

Beitrag von chehr » 17 Jan 2021, 19:16

MasterOfGizmo hat geschrieben:
17 Jan 2021, 18:25
Ist denn die SD-Karte ge'mounted? Welcher Mechanismus mountet die denn? Das wäre ggf. auch genau die Stelle, an der man die Rechte justieren kann. Also ggf. mal in /etc/fstab schauen.
Vielen Dank MoG,
Ja es scheint so wie diese nicht gemounted ist, hier der Inhalt von fstab:

Code: Alles auswählen

# <file system>	<mount pt>	<type>	<options>	<dump>	<pass>
/dev/root	/		ext2	rw,noauto	0	1
proc		/proc		proc	defaults	0	0
devpts		/dev/pts	devpts	defaults,gid=5,mode=620,ptmxmode=0666	0	0
tmpfs		/dev/shm	tmpfs	mode=0777	0	0
tmpfs		/tmp		tmpfs	mode=1777	0	0
tmpfs		/run		tmpfs	mode=0755,nosuid,nodev	0	0
sysfs		/sys		sysfs	defaults	0	0
MasterOfGizmo hat geschrieben:
17 Jan 2021, 18:25
Ich erinnere mich aber leider nicht, ob dieser Teil des TXT-Dateisystems schreibbar war und ob man /etc/fstab überhaupt so ohne weiteres ändern darf.
MasterOfGizmo hat geschrieben:
17 Jan 2021, 18:30
Gefunden. Das passiert hier:

https://github.com/fischertechnik/FT-TX ... unts.rules

Ggf. kannst Du da was anpassen.
Muss man danach die Firmware neue bauen oder wo könnte man was ändern?

richard.kunze
Administrator
Beiträge: 571
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: Datenlogger auf TXT SD-Karte

Beitrag von richard.kunze » 17 Jan 2021, 19:51

Probier mal, ob die SD-Karte automatisch gemounted wird wenn Du sie im laufenden Betrieb rausnimmst und wieder einsteckst (genau dafür sind die Einstellungen in der Datei da, die MoG gefunden hatte). Möglicherweise bekommt der Automount-Mechanismus es nicht mit, wenn die Karte schon im TXT steckt wenn der gestartet wird.

Benutzeravatar
MasterOfGizmo
Beiträge: 2226
Registriert: 30 Nov 2014, 07:44

Re: Datenlogger auf TXT SD-Karte

Beitrag von MasterOfGizmo » 17 Jan 2021, 19:56

Im Detail müsste ich das auch erst wieder ausprobieren. Ich bin davon ausgegangen, dass Du über das nötige Know-How verfügst und nur ein paar Hinweise brauchst.
Für fischertechnik: Arduino ftDuino http://ftduino.de, Raspberry-Pi ft-HAT http://tx-pi.de/hat

vleeuwen
Beiträge: 1289
Registriert: 31 Okt 2010, 22:23
Wohnort: Enschede (NL)
Kontaktdaten:

Re: Datenlogger auf TXT SD-Karte

Beitrag von vleeuwen » 18 Jan 2021, 09:15

Writing and reading data to/from a USB stick, well formatted micro SD card or the public data area of the TXT from RoboPro is possible. The TXT (firmware 4.6.0, 4.7.0, 4.8.0) knows a kind of "auto mount".
See also the TXT web interface.
This requires a Robopro SLI extension.
It is easy to solve with standard C ++.
I have experimented with it successfully.
========Google translate=======================================================
Das Schreiben und Lesen auf einen USB-Stick, eine gut formatierte Micro-SD-Karte oder den öffentlichen Datenbereich des TXT von RoboPro ist möglich. Das TXT (Firmware 4.6.0, 4.7.0, 4.8.0) verfügt über eine "Auto-Mount".
Siehe auch die TXT-Weboberfläche.
Dies erfordert eine Robopro SLI-Erweiterung.
Es ist einfach mit Standard C ++ zu lösen.
Ich habe erfolgreich damit experimentiert.

Benutzeravatar
MasterOfGizmo
Beiträge: 2226
Registriert: 30 Nov 2014, 07:44

Re: Datenlogger auf TXT SD-Karte

Beitrag von MasterOfGizmo » 18 Jan 2021, 12:32

Did you read the initial post at all? He did exaclty that already. He is now facing permission problems when trying to write to the card.
Für fischertechnik: Arduino ftDuino http://ftduino.de, Raspberry-Pi ft-HAT http://tx-pi.de/hat

chehr
Beiträge: 177
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Datenlogger auf TXT SD-Karte

Beitrag von chehr » 18 Jan 2021, 21:59

Thanks to all,
I should have now all the required info, I will report after it works,

Christian

sunnyheaven
Beiträge: 25
Registriert: 04 Jan 2021, 05:32

Re: Datenlogger auf TXT SD-Karte

Beitrag von sunnyheaven » 18 Jan 2021, 22:14

Hi chehr,

Daten auf die SD Karte schreiben beschäftigt mich auch schon seit geraumer Zeit, komm aber nicht weiter.
Hab mit SLI bisher auch noch keine Erfahrung. Werde mich da aber demnächst Mal einarbeiten.

Würdest Du evtl. Deinen C-Code für den Zugriff zur SD Karte veröffentlichen oder mir schicken können?

Gruß
Jan

chehr
Beiträge: 177
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Datenlogger auf TXT SD-Karte

Beitrag von chehr » 30 Jan 2021, 19:53

Hallo Jan,
sorry, dass ich mich jetzt erst melde. Ich hatte in den letzten Tagen wenig Zeit.
Ja klar, ich stelle den Sourecode auf git und poste den Link dann hier.

Das Datenloggen auf die SD-Karte mit dem TXT funktioniert nun.

Es ist auch einfacher als gedacht, es sei denn man formatiert die SD-Karte im exFAT format bzw hat einen Formatierungsfehler und versucht über fstab den mount hinzubekommen.
Also der TXT mountet die SD-Karte bei mir automatisch, wenn sie in einem kompatiblen Format formatiert wurde, z.B. FAT32 (Ich verwende TXT Version 4.6.6.0).

Das kann man prüfen über folgenden Linux Befehl

Code: Alles auswählen

mount -i
Der TXT sollte dann folgendes ähnliches liefern:

Code: Alles auswählen

/dev/mmcblk0p1 on /opt/knobloch/ExternalSD/TXT type vfat (rw,relatime,uid=1000,gid=1001,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
und beim prüfen des Filesystems:

Code: Alles auswählen

df -h
folgende Antwort oder ähnlich liefern (je nach namen der SD-Karte und Größe, die letzte Zeile ist die SD-Karte):

Code: Alles auswählen

Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs             107.1M     78.1M     28.9M  73% /
devtmpfs                108.7M         0    108.7M   0% /dev
tmpfs                   116.9M         0    116.9M   0% /dev/shm
tmpfs                   116.9M    180.0K    116.7M   0% /tmp
tmpfs                   116.9M     92.0K    116.8M   0% /run
/dev/mmcblk0p1            1.8G      1.8M      1.8G   0% /opt/knobloch/ExternalSD/TXT
Ich hatte noch die schreibrechte an ROBOPro für die SD-Karte mit folgendem Befehl (als root angemeldet) gegeben:

Code: Alles auswählen

chown -cR ROBOPro:ROBOPro /opt/knobloch/ExternalSD/
Dann noch die lib "libTxtSliSDlogger.so" in folgendes Verzeichnis kopiert:

Code: Alles auswählen

/opt/knobloch/libs
Dann müsste es funktionieren von RoboPro aus Daten auf die SD-Karte zu loggen.

Wie erwartet ist die Samplingrate ungefähr (hängt vom Umfang des Programms ab)
- ca 40 - 100 Hz im Onlinemode
>100 Hz im Offlinemode
Jedoch der Vorteil ist das die Daten mit einem Zeitstempel gespeichert werden, hier ein Beispiel:

Code: Alles auswählen

[Thread id] [Date and time microsec Elapsed time in microsec ] RoboPro floating value
[1253] [2021-01-30 18:37:07.219576 7741] 1040.8999996185303
[1253] [2021-01-30 18:37:07.223689 4113] 1041.7999997138977
 
Die Daten kann man dann auch via Webserver abrufen, siehe Bild anbei, weil dann braucht man die SD-Karte nicht entfernen:
Logging Daten auf der SD-Karte vom TXT
Logging Daten auf der SD-Karte vom TXT
SD-Karte-2.png (55.44 KiB) 1911 mal betrachtet
So könnte das RoboPro Programm aussehen.
RoboPro
RoboPro
SD-Karte-3.png (136.8 KiB) 1905 mal betrachtet

sunnyheaven
Beiträge: 25
Registriert: 04 Jan 2021, 05:32

Re: Datenlogger auf TXT SD-Karte

Beitrag von sunnyheaven » 01 Feb 2021, 22:39

Hi chehr,

kämpfe noch mit SLI, bin aber bald so weit, mich auch an größere Projekte zu wagen.
Wäre super, wenn Du das C-Proramm auf git teilen könntest.

Danke und Grüße
Jan

chehr
Beiträge: 177
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Datenlogger auf TXT SD-Karte

Beitrag von chehr » 02 Feb 2021, 20:13

Hallo Jan,
der Quellcode ist hier:
https://github.com/chehr/TxtSliSDlogger

Die Links von eclipse stimmen zwar noch nicht aber den Quellcode und das ROBOPro Programm als ZIP file ist unter diesem Link verfügbar.

Viel Spaß damit und ich freue mich auf dein Feedback...
Christian

chehr
Beiträge: 177
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Datenlogger auf TXT SD-Karte

Beitrag von chehr » 02 Feb 2021, 20:25

Hallo Liebe community,
weiß jemand den C Befehl wie man die TXT Kamera ein und ausschaltet bzw. wie man einen Filmaufnahme startet und stoppt und streamt intern auf den TXT?
Ich habe auf fischertechnik git nichts brauchbares bzw nichts einfaches gefunden, auch keine Anleitung.

Es gibt den Wunsch von Kinder und zwar mit ROBOPro die Kamera eizuschalten z.B. via Fernbediehnung und dann einen coolen Film zu drehen mit der ROBI Perspektive und auf SD-Karte zu speichern damit man sich danach die Fahrt anschauen kann.
Via SLI wäre das einfach zu machen wenn ich genau verstehen würde wie die Kamera in C angesteuert wird.
Das müsste doch nur ein Befehl sein oder?

vleeuwen
Beiträge: 1289
Registriert: 31 Okt 2010, 22:23
Wohnort: Enschede (NL)
Kontaktdaten:

Re: Datenlogger auf TXT SD-Karte

Beitrag von vleeuwen » 02 Feb 2021, 21:11

@chehr
Sorry too busy, no time to translate.

In the example for the online (remote) mode you will find the start code for your problem.
You can do the same in the local mode, see (2), and make the image steam available for the outside world with a webserver (embedded Civetweb).

However if you like to see the image on a other device then it could be better wirte an application for remote device that shows the image stream. The image are available on the TXT (Berkeley socket) port 65001. See (1).

See also:
(1)
https://github.com/fischertechnik/txt_d ... a/Main.cpp
and
(2)
bool ftIF2013TransferAreaComHandler::GetCameraFrameJpeg( unsigned char **buffer, size_t *buffersize )
in
https://github.com/fischertechnik/txt_d ... reaCom.cpp

chehr
Beiträge: 177
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Datenlogger auf TXT SD-Karte

Beitrag von chehr » 07 Feb 2021, 20:02

Thanks Carel for this info,
the examples are based on "ftProInterface2013TransferAreaCom.h". I am not sure how this works together with "FtShmem.h" which I am currently using for other subjects in the source code.
So I tried to use the Camera example from txt_training_factory which are completely based on "opencv", without quick sucess.
May I have currently not enough experience with C++ and therefore I am not going to investige more time in this subject currently. Maybe later...

chehr
Beiträge: 177
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Datenlogger auf TXT SD-Karte

Beitrag von chehr » 07 Feb 2021, 20:20

Hier ein Beispiel bzgl dem ROBOPro Datalogger:

Hintergund ist eine Funktion in den TXT einzubauen, um eine Info zu liefern wann der Akku wieder aufgeladen werden soll.

Der TXT misst dazu die Versorgungsspannung und wandelt die gemessenen Integer Werte mit einem Kalibrierungsfaktor in eine Spannung um.
Den ermittelten Kalibrierungsfaktor ist ca 0,0009*Vin + 1,5 V (selbst ermittelt da fischertechnik bisher keinen Wert geliefert hat).

Dann habe ich die Versorgungsspannung mit ROBOPro auf die SD-Karte geloggt und parallel am M1 einen Motor ein rechts, links und dann ausgeschalten, jeweils eine Sekunde. Wie erwartet ist der tiefste Wert wenn der Motor von rechts auf links geschaltet wird.

Das Ergebnis ist hier dargestellt:
TXT Versorgungsspannung
TXT Versorgungsspannung
Supply Voltage.png (57.39 KiB) 1632 mal betrachtet
Als nächsten Schritt soll ein Limit definiert werden bei dem der Anwender aufmerksam gemacht wird, dass der Akku geladen werde soll.
Der soll detulich über 5V liegen weil bei dieser Spannung schalltet der TXT ab. Der TXT soll dann bei diesem Limit einen Alarm über den TXT Lautsprecher liefern.

vleeuwen
Beiträge: 1289
Registriert: 31 Okt 2010, 22:23
Wohnort: Enschede (NL)
Kontaktdaten:

Re: Datenlogger auf TXT SD-Karte

Beitrag von vleeuwen » 07 Feb 2021, 21:36

@
The FtShmem.h are the same.
However the one in the factory is not the version TX-C version from 2008, as the describe in the comment.
txt_demo_c_download and txt_demo_c_ROBOPro_SLI are used for programs which are running on the TXT (ARM, cross compiled)

"ftProInterface2013TransferAreaCom.h" is part of txt_demo_c_online, these application runs remote on the Laptop or PC.

The local programs are accessing the main TA on the TXT.
The remote program has it own local TA and that TA is communicate to the TXT over port 65000 and 65002 for the images.
In the remote mode there runs on the TXT a small listener program for port 65000 an copy the values to the main TA on the TXT. and send back the sensor values. The FtShmemTXT.h is not the same as the FtShmem.h because not all field of the TA are available remotely.
But in the remote mode you can also process the image with OpenCV. You will need the Windows version of OpenCV, which is pre-compiled available.
https://opencv.org/releases/

chehr
Beiträge: 177
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Datenlogger auf TXT SD-Karte

Beitrag von chehr » 09 Feb 2021, 19:03

exact this is the point. The goal is to have the code running on the TXT and not on the PC.

So I am thinking something like:

Code: Alles auswählen

#include "opencv2/opencv.hpp"
#include <iostream>
...

// Define the codec and create VideoWriter object.The output is stored in 'TXT_Cam.avi' file.
VideoWriter video("/opt/knobloch/ExternalSD/TXT/TXT_Cam.avi",CV_FOURCC('M','J','P','G'),10, Size(frame_width,frame_height));

Mat frame;
cap >> frame;

// Write the frame into the file 'TXT_Cam.avi'
video.write(frame);


Antworten