Hallo Leute, Habe in nächster Zeit ein Projekt vor und hoffe, dass ihr mit vielleicht ein paar Tipps geben könnt... Hintergrund ist folgender: Bei uns in der Kirche werden alle Veranstaltungen aufgenommen. Wenn jetzt jemand die Aufnahme möchte kommt er u.a. zu mir und fragt nach einer CD oder gibt mir einen USB-Stick, wo ich dann die Aufnahme drauf mache... Da jetzt aber in letzter Zeit immer mehr mit USB-Stick kommen dachte ich mir, dass ich es mal versuche eine Automatische Kopierstation zu bauen. Gedacht hatte ich es mir folgendermaßen: Gesteuert werden soll alles über den PC, dort schiebe ich die Aufnahme in einen bestimmten Ordner und gebe den Befehl für Kopierbereit, dann soll am USB-Host Controller eine LED angehen damit man sehen kann, dass die Daten verfügbar sind. Sobald jetzt jemand einen USB-Stick rein steckt, sollen die Dateien automatisch drauf kopiert werden und sobald das Kopieren abgeschlossen ist, wieder eine andere LED aufleuchten... Habe jetzt längere Zeit gegoogled, habe da aber noch nicht so richtig den durchblick... Wie ich das verstanden habe brauche ich einen USB-Host Controller und einen anderen Mikrocontroller - diese beiden Kommunizieren dann z.B. über SPI und die Verbindung zum PC geht dann über UART oder wie? Dann hab ich gelesen, dass die USB-Host dinger auch nicht alle USB-Sticks lesen können - könnt ihr mir dann vielleicht einen empfehlen? Hab etwas Erfahrung in C, zumindest haben wir grad in der Technieker-Schule einen Atmel Controller programmiert mit I²C, LM75 und Display und fangen jetzt an ein Modell-Auto zu programmieren komplett mit CAN-Bus mit Sensoren und Antrieben... Wie würdet ihr das realisieren? - ich kenne ja nur den Atmel 89C51CC03. Würde mich über ein paar Tipps sehr freuen... Gruß Paul
Hallo Mal ganz abgesehen davon das ein µC am PC zu langsam für größere Datenmengen sein wird: Wieso der Aufwand? Dein PC hat doch USB! Also nur noch ein Skript/Programm erstellen, dass beim einstecken eines USB Sticks gestartet wird und dann kopiert. Fertig. Unter Linux ist das mit udev und einer (Skript-)Sprache deiner Wahl recht schnell gemacht. da1l6
Dafür würde ich einen Raspberry Pi empfehlen, mit den GPIO kann man LED ansteuern, und durch das Linuxoide Betriebssystem kann man mit einfachen Skripten arbeiten und muss nicht beim Urschleim anfangen. Durch die geringe Größe kann man auch noch leicht ein schickes Gehäuse drumherum bauen, sodass nur eine USB-Buchse und evtl ein Taster und die LED zu sehen sind. Wie groß sind denn die Videos so?
DerPaul schrieb: > Wie würdet ihr das realisieren? Nur mit dem PC. Da steckt schon ein USB-Host drin... Welchen Sinn hat es, den USB-Stick noch mal "zu puffern"? Ein PC erkennt einen USB-Stick. Daraufhin kann man ein Programm starten, das die Daten einfach dorthin kopiert und fertig ist die Laube.
Hintergrund ist folgender: Bei uns in der Kirche werden alle Veranstaltungen aufgenommen. Wenn jetzt jemand die Aufnahme möchte kommt er u.a. zu mir und fragt nach einer CD oder gibt mir einen USB-Stick, wo ich dann die Aufnahme drauf mache... Da jetzt aber in letzter Zeit immer mehr mit USB-Stick kommen dachte ich mir, dass ich es mal versuche eine Automatische Kopierstation zu bauen. Wozu der Aufwand, stell das Zeug einfach ins Internet.
Deutsch Sprach würd schweres Sprach schrieb: > Wozu der Aufwand, stell das Zeug einfach ins Internet. Das ist doch Teufelszeug ;)
da1l6 schrieb: > Hallo > > Mal ganz abgesehen davon das ein µC am PC zu langsam für größere > Datenmengen sein wird: > > Wieso der Aufwand? Dein PC hat doch USB! > > Also nur noch ein Skript/Programm erstellen, dass beim einstecken eines > USB Sticks gestartet wird und dann kopiert. Fertig. > Unter Linux ist das mit udev und einer (Skript-)Sprache deiner Wahl > recht schnell gemacht. > > da1l6 Hatte mir schon fast gedacht, dass so eine ähnliche Antwort kommt... Da ich es aber nicht immer mitbekommen würde, wenn jemand einen Stick steckt möchte ich doch schon gerne wenigstens ein paar Status-LEDs haben... Arne Westphal schrieb: > Dafür würde ich einen Raspberry Pi empfehlen, mit den GPIO kann man LED > ansteuern, und durch das Linuxoide Betriebssystem kann man mit einfachen > Skripten arbeiten und muss nicht beim Urschleim anfangen. Durch die > geringe Größe kann man auch noch leicht ein schickes Gehäuse drumherum > bauen, sodass nur eine USB-Buchse und evtl ein Taster und die LED zu > sehen sind. > > Wie groß sind denn die Videos so? Das klingt sehr interessant, werd ich mir auf jeden Fall noch näher anschauen... Allein schon vielleicht auch für andere Projekte. Aber wie kann ich das Ding verstehen? Ist das eine Art Mini-PC mit µC-Funktionalität? Deutsch Sprach würd schweres Sprach schrieb: > Wozu der Aufwand, stell das Zeug einfach ins Internet. Für die jüngeren unter uns ist das ja auch kein Problem, aber die älteren tun sich da noch etwas schwer... STK500-Besitzer schrieb: > Deutsch Sprach würd schweres Sprach schrieb: >> Wozu der Aufwand, stell das Zeug einfach ins Internet. > > Das ist doch Teufelszeug ;) Genau deswegen informier ich mich ja auch im Internet darüber :-P
DerPaul schrieb: > Da ich es aber nicht immer mitbekommen würde, wenn jemand einen Stick > steckt möchte ich doch schon gerne wenigstens ein paar Status-LEDs > haben... Darf das Ding einen Monitor besitzen? Da könnte man definitiv einen besseren Dialog realisieren, als es eine LED ermöglicht.
Da ja sowieso ein PC verwendet wird könntest du den USB Stick direkt an den PC stecken und ein Programm für den Kopiervorgangschreiben! LED´s könntest du dann z. B. noch über ein RS232 Adapter ansteuern....
DerPaul schrieb: > Das klingt sehr interessant, werd ich mir auf jeden Fall noch näher > anschauen... Allein schon vielleicht auch für andere Projekte. Aber wie > kann ich das Ding verstehen? Ist das eine Art Mini-PC mit > µC-Funktionalität? Der Raspberry ist im Grunde ein SoC, dort ist ein kompletter Computer in einem Chip. Also Speicher, Grafik und die CPU. Auf dem Raspberry läuft ein angepasstes Debian Linux namens Raspian. Die unterschiede zum "normalen" PC liegen in einer geringeren Leistungsfähigkeit und dass keine x86 sondern eine ARM Architektur verwendet wird. Dadurch lässt sich kein Windows installieren. Allerdings ist das für deine Bedürfnisse auch nicht nötig, da du ka gar kein Display verwenden willst.
STK500-Besitzer schrieb: > DerPaul schrieb: >> Da ich es aber nicht immer mitbekommen würde, wenn jemand einen Stick >> steckt möchte ich doch schon gerne wenigstens ein paar Status-LEDs >> haben... > > Darf das Ding einen Monitor besitzen? > Da könnte man definitiv einen besseren Dialog realisieren, als es eine > LED ermöglicht. Hab ich auch schon drüber nach gedacht... Vielleicht nicht sofort einen Monitor, aber vielleicht ein kleines Display für die Statusanzeige... Lassen sich in so eine RPi auch Netzwerkfestplatten einbinden? Dann könnte man das ganze später noch erweitern... Könnte ich dann z.B. jetzt auf dem Windows Rechner den Ordner mit den Daten bereitstellen und den RPi so programmieren, dass sobald ein Stick gesteckt wird, die Daten vom Windows Rechner über den RPi auf den Stick gespeichert werden? Ich habe keinen Zeitdruck und würde das alles dann nach und nach aufbauen und mich damit langsam in die ganze Materie einarbeiten... Welchen Compiler und Editor für C werden den Bereitgestellt oder welchen würdet ihr empfehlen? In der Schule arbeiten wir mit GCC mit dem Ubuntu Editor(grad vergessen wie der heißt).
DerPaul schrieb: > Lassen sich in so eine RPi auch Netzwerkfestplatten einbinden? Da auf dem ein Linux läuft, und es für Linux einen Samba-Client gibt (der nutzt das aus der Windows-Welt stammende Netzwerkprotokoll SMB), sollte das möglich sein.
DerPaul schrieb: > Welchen Compiler und Editor für C werden den Bereitgestellt oder welchen > würdet ihr empfehlen? In der Schule arbeiten wir mit GCC mit dem Ubuntu > Editor(grad vergessen wie der heißt). Udev + Shellscript sollte reichen. Ich würde die Dateien vorher auf das Gerät kopieren.
Von udev und Shellcript habe ich leider noch keine Ahnung, programmiere zwar in Ubuntu, aber nur C. Werd mir das aber auf jeden Fall noch anschaun... Wie könnte man denn von einem Windowsrechner Befehle z.B. Bits oder Bytes senden? Und dann mit der RPi einlesen und verarbeiten? Gibts da eine Schnittstelle oder so? Tut mir leid für die vielen Fragen, habe leider noch nicht so viel Ahnung von Hardware-Programmierung...
DerPaul schrieb: > Wie könnte man denn von einem Windowsrechner Befehle z.B. Bits oder > Bytes senden? Und dann mit der RPi einlesen und verarbeiten? Gibts da > eine Schnittstelle oder so? > > Tut mir leid für die vielen Fragen, habe leider noch nicht so viel > Ahnung von Hardware-Programmierung... Vielleicht kann mir da noch jemand eine Antwort geben... Dann hätte ich erst mal die wichtigsten Informationen!!!
DerPaul schrieb: > Von udev und Shellcript habe ich leider noch keine Ahnung, programmiere > zwar in Ubuntu, aber nur C. Werd mir das aber auf jeden Fall noch > anschaun... udev-Regeln sind mit ein wenig Gewöhnung sehr einfach machbar. Du reagierst auf Ereignisse wie das Hinzufügen oder Entfernen eines Gerätes mit z.B. def Ausführung eines Skriptes oder Binaries - aber Achtung in neueren udev-Versionen kann so ein externer Befehl auch nach einem fork() nicht mehr weiterlaufen, aber ein daemon - passend für den Kircheinsatz ;) kann z.B. per UNIX-Socket Befehle entgegennehmen, die ein udev-Regelchen absetzt. Das kannste dann auch in C erledigen. > Wie könnte man denn von einem Windowsrechner Befehle z.B. Bits oder > Bytes senden? Und dann mit der RPi einlesen und verarbeiten? Gibts da > eine Schnittstelle oder so? Da der RPi am Ende auch ein Computer ist ganz normal per Netzwerk per TCP oder UDP. Oder per SSH (von Windows mit plink.exe aus dem PuTTY-Paket und public key auth). Oder... > Tut mir leid für die vielen Fragen, habe leider noch nicht so viel > Ahnung von Hardware-Programmierung... Macht nix. Aus o.g. Grund ist das eher "normale" PC-Programmierung.
Hi! Es gibt auch kleine Displays die CPU Temperatur oder den Titel der aktuellen MP3 anzeigen. Und es gibt Tastaturen in denen ein kleines Display ist. Den Inhalt kann man über kleine Programme steuern. Laut gedacht: - Altes Laptop von eBay mit defektem Bildschirm kaufen. Warum Laptop? Klein, stromsparend und leise. Warum defekter Bildschirm? Deutlich billiger. - Zum Einstellen Programmieren Daten überspielen normalen PC Bildschirm anschließen. - Windows oder kleines Linux aufspielen, dazu die oben genannten Skripte / Programme. - Schränkchen bauen: Laptop + Netzteil rein. Vorne das kleine Display, oben das Ende eines USB-Verlängerungskabels raushängen lassen. - Sobald Stick erkannt wird, beginnt das kopieren. Fortschrittsbalken während des kopieren anzeigen. Ich habe bereits Sachen mit USB auf µCs programmiert und verspreche dir, dass eine Lösung mit Windows/Linux auf einem "normalen" PC deutlich einfacher ist. P.S.: Was soll passieren, wenn die Daten nicht mehr drauf passen oder Dateien mit gleichem Namen schon vorhanden sind?
Edit: - Zum Einstellen Programmieren Daten überspielen normalen PC Bildschirm anschließen. Sollte eigentlich heißen: - Zum Einstellen/Programmieren/Daten überspielen normalen PC Bildschirm anschließen.
DerPaul schrieb: > Wie könnte man denn von einem Windowsrechner Befehle z.B. Bits oder > Bytes senden? Und dann mit der RPi einlesen und verarbeiten? Gibts da > eine Schnittstelle oder so? Samba installieren, ist ein CIFS/SMB Server, damit kannst du Unix Filesysteme als Netzlaufwerke einbinden.
Der schrieb: > Ich habe bereits Sachen mit USB auf µCs programmiert und verspreche dir, > dass eine Lösung mit Windows/Linux auf einem "normalen" PC deutlich > einfacher ist. > > P.S.: Was soll passieren, wenn die Daten nicht mehr drauf passen oder > Dateien mit gleichem Namen schon vorhanden sind? Ich würde schon gerne eine RPi nehmen, allein schon um es zu lernen... und wegen den GPIOs, Anbindung an Bus Systeme usw... Wenn die Dateien schon vorhanden sind, wäre es eigentlich egal, ob abbrechen oder überschreiben... wenn kein Speicherplatz mehr da ist Meldung an Status Anzeige...
Danke Malte... Das schau ich mir auch noch mal an...
Ach ja, um Dateien von Windows auf ein Linux-System zu kopieren, ist wie schon gesagt wurde samba auf dem Linux das Mittel der Wahl. Wenn das Linux sich die Daten von der Freigabe eines Windows-Systems ziehen soll, ist das nichtmal nötig, bzw. höchstens die cifs-utils werden gebraucht. Das ist ein mittlerweile meistens eigenständig paketierter Teil von samba, der ausreicht, um CIFS-Freigaben zu mounten. Ist komfortabler, dank mount einfach auf die Dateien zuzugreifen als wären sie lokal, als mit smbclient rumzuhantieren. Ob die Pakete auch bei ubuntu aufgeteilt sind und wie sie da genau heißen, kann ich Dir allerdings nicht sagen. Der Ablauf könnte also im Groben so sein: * das Video wird irgendwo im Netz bereitgestellt und die entsprechende Freigabe auf dem RasPi gemountet. * ein daemon wird gestartet (oder läuft immer), der darauf wartet, dass ihm * mittels entsprechender udev-Regel als Trigger mitgeteilt wird, dass ein USB-Massenspeicher angeschlossen wurde * der Massenspeicher wird gemountet und das Video darauf kopiert * umount, Info an User, dass das Kopieren abgeschlossen ist Je nachdem, ob Du nun eine oder mehrere LEDs für den Status an die GPIOs anschließt oder ein kleines Display mit oder ohne ein paar Tasten, können diese Schritte dann mehr oder weniger interaktiv und mit mehr oder weniger Statusinfos ablaufen. Denke auch, dass eine solche Lösung am zielführendsten ist, auch wenn es sicherlich interessant sein kann, das Ganze mit einem µC aus dem Nichts aufzubauen. Dann kommt allerdings nicht zu unterschätzen zur grundlegenden Implementierung eines USB-Hosts noch der Dateisystemcode dazu, um die Daten auch auf die Sticks zu kriegen. Und das sollte sauber sein, man möchte ja nicht fremde Sticks logisch zerschießen. Das alles kriegste mit (Embedded) Linux-Variante nebenbei dazu. Schöne Feiertage!
Danke Malte... So ungefähr hatte ich mir das gedacht... und dank deiner Hilfe weiß ich jetzt noch womit ich mich beschäftigen soll!!! Hab jetzt noch 2 Projekte in der Techniker Schule, das erste ist: Daten von einem, als Spannungsmesser mit 4 Kanälen programmierten, PIC einlesen und mit einem C- Programm die Spannungen sowie eine Kurve von jeden Kanal auf einer HTML ausgeben... Das zweite: Mut mehreren Gruppen ein Modellauto mit CAN-bus programmieren - ausgestattet mit Antrieb, Sensoren und so weiter... Danach will ich auf jeden Fall dieses Projekt in Angriff nehmen und werde wahrscheinlich auch hier von meinem Fortschritt berichten!
Auch von mir schöne Feiertage an Alle!!!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.