Hallo Leute,
wir (Joint Robotics Lab, Uni Frankfurt), sind gerade dabei ein System zu
bauen, das einem ermöglicht, online mikrocontroller zu programmieren,
ohne sich die Hardware besorgen zu müssen oder sich um das flashen zu
kümmern.
Wir haben dazu einen Testaufbau mit 4 Arduinos gemacht (keine Angst,
keine Arduino-Software aussenrum :) ), und webcams davorgehängt.
Jetzt kann man in einem Editor seinen Code eingeben und per button wird
kompiliert und geflasht, das Ergebnis sieht man dann im Webcamstream,
alles im Browser. Es wird dann ein timelock gesetzt, und es kann zwar
mit Rückmeldung kompiliert werden, aber flashen geht erst wieder nach
einer Minute, so wollen wir sichern, dass man sein Ergebnis noch einige
Zeit bewundern kann und sich niemand in die Quere kommt.
Im Moment sind zwei Versuche fertig,
eins mit LEDs und einer LEDMatrix,
http://www.jrl.cs.uni-frankfurt.de/vrl/deutsch/lab-1/led-lab.html
und eins mit einem 16x2 Display,
http://www.jrl.cs.uni-frankfurt.de/vrl/deutsch/lab-3/lcd-lab.html.
Da wir das ganze auf einer ziemlich alten Kiste hosten und alles noch
alpha ist, würden wir gerne ein paar Testläfe mit eingeschränkten
Benutzerkreisen machen. Es wäre toll, wenn ihr euch das mal anschauen
und ausprobieren könntet und uns Rückmeldung gebt, was euch gefällt oder
was man besser machen könnte.
Das ganze System wird natürlich für immer kostenlos bleiben und wir
arbeiten auch daran, die Dokumentation besser zu machen.
Vielen Dank schonmal,
Tobias Weis
Achso, wie gesagt is das alles noch alpha und testing :) Daher bitte
diesen link nicht in blogs veröffentlichen oder in anderen Foren posten,
das möchten wir erst machen, wenn das System mal stable ist ;)
gibt ein : main.c:8: warning: implicit declaration of function
‘lcd_setcursor’
Vielleicht sollte man die durch die LCD-Bibliothek bereitgestellten
Funktionen irgendwo auflisten.
Der eigentliche AVR-Typ wäre vielleicht auch interessant das der
irgendwo steht.
Eigentlich ganz cool...ich kann zwar (noch) keinen praktischen Nutzen
erkennen...aber irgendwie ganz cool :-)
Brauchen wir ab jetzt auch Virenscanner für AVRs? Stuxnet? :-)
Hugo Habicht schrieb:> Passt bloß auf, dass euch keiner> die Fuses zur Laufzeit setzt und das Board kaputt macht. :)
Hehe, zwei Doofe, ein Gedanke ;-)
An die Macher:
Wow, Respekt! Nicht schlecht. Wahrscheinlich eine Weltneuheit :-) Macht
einen professionellen Eindruck. Ich kann mir schon vorstellen, dass sich
dadurch Leute für µC begeistern lassen, die noch nie vorher Kontakt dazu
hatten.
Wie weiter oben schon angesprochen wäre es wünschenswert, wenn man
zumindest die Information hätte, welche Ports wie verschaltet sind.
Ihr werdet sicher das Problem bekommen, dass mehrere Nutzer gleichzeitig
die Ressource (also den Arduino) verwenden wollen. Habt ihr euch hierfür
schon ein Konzept überlegt? Falls tatsächlich mehrere Benutzer sich
einen Arduino teilen, so wäre es wünschenswert wenn für mich erkennbar
ist, dass gerade jetzt mein Programm dort ausgeführt wird.
Bin übrigens gespannt, wie lange es dauert bis der erste Controller den
Geist aufgibt weil sein Flash die max. Anzahl an Schreibzyklen hinter
sich hat :-)
Das LCD-Display spiegelt ein bisschen.
Cool wäre, wenn man sich in einer Warteschleife einreihen könnte
Aber ich denke mal für Leute die einfach nur kurz Testen wollen, gar
nicht so schlecht. Für das Entwickeln aber etwas untauglich, aufgrund
der Zeiten. Trotzdem eine nette Idee zum Spielen ;-)
Ermöglicht ihr auch einen UART-Output?
Hi, ja, die Warteschleife war schon implementiert, hat aber wg.
server-update leider nicht funktioniert. Jetzt gehts wieder.. Bei einem
flash-vorgang wird der flash-button jeweils für 120 sekunden gesperrt,
danach haben alle wieder die möglichkeit, ein neues programm zu flashen.
Eine Queue die nach Benutzern geordnet ist, gibt es nicht, ist auch
nicht geplant. Es hat also jeder immer die gleichen Chancen zu flashen,
sobald es wieder freigegeben wird.
Wie läuft das denn, wenn sich z.B. 5 Benutzer gleichzeitig fürs
experimentieren interessieren? Sich gegenseitig "reinzupfuschen" ist
dann ja auch nicht so besonders. Letzlich weiß man dann ja garnicht, ob
da gerade der eigene Code läuft oder bereits der eines anderen...
Abgesehen davon aber eine tolle Idee, so generell jedenfalls!
Das haben wir uns auch schon überlegt, aber ohne ein Login-System wäre
das kaum zu realisieren..Was ginge, wäre natürlich einfach irgendwo
einen Namen einzugeben und diesen dann allen anzuzeigen, damit man nicht
nur die wartezeit sieht, sondern auch, von wem das program ist...
mhm, sorry, ich hab quatsch erzählt...der erste, der drückt, setzt ein
lock.
alle, die nachfolgend zwar noch den flash-button clicken können wg. dem
aktualisierungs-intervall fragen das lock ab, und bekommen dann eine
meldung, dass nicht geflasht werden konnte. So weiß man also garantiert,
dass man gerade seinen code sieht, wenn der flash-vorgang abgeschlossen
wurde und man die ausgabe sieht. Und dieser Code bleibt dann (im Moment)
mindestens 120 sekunden aktiv und kann nicht überschrieben werden.
So, erstmal vielen Dank für eure Meinungen und Anregungen, die meisten
davon konnten wir heute umsetzen und wir haben auch noch einige kleinere
Probleme erfolgreich finden und fixen können. Und es war super lustig zu
sehen, dass permanent Sachen geflasht wurden und sich der Inhalt des
Displays immer wieder verändert hat :)
Die Doku für die zwei Versuche von oben haben wir jetzt überarbeitet und
euren Wünschen entsprechend erweitert, und arbeiten jetzt mit Hochdruck
an den letzten zwei Versuchen, für Labor 2 ist ein "Moving lab" geplant,
mit einem Servo (PWM) und einem IR-Sensor (ADC), und für das S65-Labor
irgendetwas mit der glcd-lib wahrscheinlich.
Mit der Sicherheit des Servers und des Flash-Vorgangs werden wir uns
wohl noch auseinandersetzen müssen, wenn ihr dafür Tipps habt wären wir
auch super dankbar.
Ansonsten erstmal vielen Dank an alle Tester und Kommentatoren,
mikrocontroller.net war wie immer super :)
Macht Spaß ^^
Habe allerdings das Problem das ich nur einmal Flashen kann.
Zwar kann ich noch scrollen aber nirgends mehr hinklicken.
Browser ist Firefox 5.0
Tobias Weis schrieb:> Achso, wie gesagt is das alles noch alpha und testing :) Daher bitte> diesen link nicht in blogs veröffentlichen oder in anderen Foren posten,> das möchten wir erst machen, wenn das System mal stable ist ;)
google ist in diesem forum immer ziemlich schnell dabei
µC net bekommt auch extrem hohe rankings bei google, wenn man was sucht
@ Alex W. und Steffen:
Wir benutzen den Mjpeg-Streamer als Basis für den Cam-Stream. Wir
arbeiten jetzt aber auch daran, noch andere Schnittstellen nach aussen
für den Stream zur Verfügung zu stellen.
@ froumts:
Ich kenne keinen Emulator, der diese Funktionalitäten zur Verfügung
stellt, und bestehende Emulatoren um die gewünschten zu erweitern hätte
viel mehr Zeit verschlungen als das Projekt in dieser Form. Klar hätte
es etwas rein virtuelles auch irgendwie getan, aber da stimmt dann das
feeling nicht..
@ Michael Dierken:
Ich kann den Fehler mit Firefox 5.0 leider nicht nachvollziehen. Gibt es
bei dir Javascript-Fehler in der Konsole, oder sonstige Fehlermeldungen?
Oder meinst du, dass nur der Flash-Button nicht mehr clickbar ist nach
einem Flashen? Das ist nämlich so gewollt, der "entsperrt" sich dann
nach 120 Sekunden wieder. Auch wenn jemand anders gerade geflasht hat,
wird der button für alle für 120 sekunden gesperrt. So soll
sichergestellt werden, dass man zumindest für einen kurzen zeitraum noch
sein eigenes Program sehen kann, bevor es über-flasht wird.
Echt gelungenes Projekt! So kann jeder mal was mit µCs ausprobieren. Ich
will aber nicht wissen, was ihr dann für einen µC-Verschleiß habt ;)!
ATMEL garantiert ja bloß 10.000 Flash-Zyklen...
Gruß
Jonathan
Daumen hoch für dieses tolle Projekt. Kreative Idee und tolle Umsetzung.
Daumen runter für Falk, der echt alles schlecht reden muss.
wwhhhahaaaaaaaaa .....
@ Jack (Gast)
>Daumen runter für Falk, der echt alles schlecht reden muss.
Quark.
Ich bin halt Hardwareentwickler und somit eher an ECHTER Hardware
interessiert. Dieses Projekt ist zwar sicherlich eine nette Übung zum
Thema Netzprogrammierung, Java & Co, mit Hardware und dem Erlebnis mit
einem realen AVR-Board hat es nichts zu tun. Und dementsprechend niedrig
ist auch der Nutzwert in meinen Augen. Böse Zungen würden es in die
gleiche Schublade schieben wie LED-Vorwiderstandsrechner . . . ;-)
MFG
Falk
>Ich bin halt Hardwareentwickler und somit eher an ECHTER Hardware>interessiert.
Ja - und dann baut einer einer Rechner aus BC547 ....
... mir geht das "anderen ihre Projekte schlecht reden" halt auf'n
Senkel.
@ Jack (Gast)
>>Ich bin halt Hardwareentwickler und somit eher an ECHTER Hardware>>interessiert.>Ja - und dann baut einer einer Rechner aus BC547 ....
Ich bin kein Masochist.
>... mir geht das "anderen ihre Projekte schlecht reden" halt auf'n>Senkel.
Aha, also ein Jubelperser, der mit Kritik nicht umgehen kann. Naja,
davon gibt es mehr als genug heutzutage.
http://de.wikipedia.org/wiki/Kritik
MfG
Falk
Hehe, zerfleischt euch mal nicht ;) Wir sind für jede Kritik dankbar,
auch negative. Am Beispiel Falk darf man aber auch den Hintergrund nicht
ausser Acht lassen. Ziel des Projekts war es nie, eine Plattform für
Hardcore Hardware Hacker zu bauen, sondern interessierten Menschen die
Möglichkeit zu geben, mal reinzuschnuppern und zu sehen, wie man mit
relativ einfachen Mitteln schon erstmal einsteigen kann. Wie schon
mehrfach erwähnt, wollen wir Grundlagen schaffen und einfachste Konzepte
vermitteln, so dass man erstmal das Grundzeug und die nötigen
Anlaufstellen kennenlernt und die "Angst" vor der Hardware genommen
bekommt. Dass das überhaupt nichts für versierte hardwarehacker ist, ist
uns schon bewusst ;)
@froumts,
im Moment ist noch keine Sicherheit eingebaut, die den Code überprüft,
wir vertrauen erstmal ganz dummdreist auf den guten Willen der Benutzer
und hoffen, dass wir damit nicht auf den Allerwertesten fallen. Sollte
doch mal einer gebrickt werden liegt ein Lab mal für ein paar Stunden
brach, bis das wieder geht. Aber soweit ich mich eingelesen hab lässt
sich der bootloader der Arduino UNOs nur von extern per ISP flashen,
oder?
Morgen grab ich mich dann nochmal ins Datenblatt und kuck mal, welche
fuses überhaupt während der runtime gesetzt werden können..
@Falk
Sag mal - hast Du heute einen besonders schlechten Tag gehabt ?
Deine Kommentare waren in der Vergangenheit harsch und äusserst
unfreundlich - aber oft fachlich fundiert und konnten den Leuten
weiterhefen. Heute aber geht es aber eher in Richtung "Eure Projekte
sind alle unsinnig".
Gib mir dein Kontonummer - ich spendiere Dir 'n Bier oder zwei.
Vielleicht geht's dann wieder besser.
Mir geht es auch auf die Nerven, Projekte von anderen schlechtgeredet
werden. Wenn du "halt Hardwareentwickler bist und somit eher an ECHTER
Hardware interessiert bist" - dann mach doch Deine Hardware und erfreue
uns mit Deinen Projekten. Wir freuen uns alles darauf von Dir zu lernen.
Und für die Projekte, die Dich "halt nicht so interesseren" - für die
hätte ich eine Tipp für Dich. Man kann auch einfach mal die Projekte
anderer anschauen und schweigen - wenn sie Dich eh nicht interessieren.
Das schöne an dieser Welt ist die Vielfalt. Die Welt besteht nicht nur
aus dem was Dich interessiert - und das ist gut so !
Ich finde dieses Projekt toll. Dafür sind Universitäten da. Mal einen
neuen Ansatz ausprobieren, Anwendungsmöglichkeiten erforschen und
ausloten, nicht nur dem allheilgen "Nutzwert" nachrennen - auch mal
andere Wege gehen und schauen was dabei rauskommt.
NurEinGast
Währe es möglich die Sperrzeit je nach der Anzahl der momentanen Nutzer
der Seite einzustellen, sodass man z.B. wenn nur ein paar Leute on sind
über das Display Chatten kann?
Wie kann man das Licht ausmachen?
Bei mir geht das nicht.
Muss man dazu entsperrt sein oder geht das immer?
(wenn das nicht wieder an mir liegt)
Das ist ne tolle Idee mit den Nutzerabhängigen Wartezeiten, die kommt
definitiv in die Liste, danke :)
Die buttons für das Licht hängen seltsam, bei mir auch, muss mehrmals
draufclicken und länger warten, bis etwas passiert, das überprüf ich
morgen nochmal, wir haben da nen steinalten netzwerkgesteuerten
Strom-Schalter dran, der hat ein paar Macken..
>Währe es möglich die Sperrzeit je nach der Anzahl der momentanen Nutzer>der Seite einzustellen, sodass man z.B. wenn nur ein paar Leute on sind>über das Display Chatten kann?
Du musst bedenken, dass der µC nur ca. 10.000 Mal geflasht werden
kann... Danach ist er hinüber. Ist also nicht sonderlich sinnvoll...
Auch wenn bloß alle 120 Sekunden geflasht wird ist alle 2 Wochen ein
neuer µC fällig.
Gruß
Jonathan
Jonathan Strobl schrieb:> Du musst bedenken, dass der µC nur ca. 10.000 Mal geflasht werden> kann... Danach ist er hinüber. Ist also nicht sonderlich sinnvoll...> Auch wenn bloß alle 120 Sekunden geflasht wird ist alle 2 Wochen ein> neuer µC fällig.
Muss aber nicht. Ich denke er wird deutlich länger halten. Trotzdem wäre
ein schneller Bytecode Interpreter besser geeignet. Dieser könnte zudem
die lpm Funktion nicht unterstützen. Ansonsten finde ich ist das Projekt
gut gelungen.
Müsste man noch einen Counter der flashzyklen dranklemmen.
Ansonsten ein Programm auf den Controller welcher das Programm von einer
SD Karte ausführt, und man sozusagen immer auf eine SD Karte schreibt.
Habe ja vor ein paar Tagen gesacht das die LCD Seite bei mir nicht ganz
so recht läuft.
Das lag an meiner Internetgeschwindigkeit.
Bin nun wieder @Home und alles läuft super!
Michael Dierken schrieb:> Müsste man noch einen Counter der flashzyklen dranklemmen.
Yo! Mal eine Statistik erstellen ...
Hannes H. schrieb:> Bei mir geht die Webcam von LAB3 irgendwie nicht...
Bei mir auch nicht. Port 8082 ist bei mir gesperrt.
Gruß
Jobst
Jobst M. schrieb:> Hannes H. schrieb:>>> Bei mir geht die Webcam von LAB3 irgendwie nicht...>>> Bei mir auch nicht. Port 8082 ist bei mir gesperrt.
Versuch mal Firefox (falls du IE nutzt), bei mir gehts auch nur im
Firefox, aber nicht mit dem IE.
Hmmm, nein, bisher habe ich nicht die Quelltexte für den IE bekommen, so
daß ich ihn mir auch nicht für Linux kompilieren könnte ;-)
Wie gesagt, bleibt bei mir in der FW hängen.
Gruß
Jobst
Echt ein tolles Projekt!
Leider leiden solche Projekte umso mehr, je bekannter sie werden.
Ich würde die Kameras noch ein wenig besser ausrichten, Verzerrungen und
Spiegelungen sieht man noch sehr stark. Dann würde ich vielleicht noch
Schaltpläne der Aufbauten auf den Lab-Seiten machen.
Am Rande: Ich weiß nicht, ob das mit einer englischen Version der Seite
so gut ist, da so die Boards dauerhaft durch internationale Nutzer
ausgelastet sein könnten, die Nutzung für einen schwieriger wird, und
die Teile schneller verschleißen. Vielleicht sollte man das nur auf
Deutsch beschränken, so haben alle mehr was davon, besonders am Tag und
in der Nacht, da die Auslastung dann geringer ist.