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 ;)
http://www.jrl.cs.uni-frankfurt.de/vrl/files/lcdlab.png Da fehlt ein Komma hinter lcd_setcursor die Funktion will auch nicht. Folgendes
1 | #include <avr/io.h> |
2 | #include <util/delay.h> |
3 | #include <lcd-routines.h> |
4 | |
5 | int main(){ |
6 | lcd_init(); |
7 | lcd_string(" Test "); |
8 | lcd_setcursor(0,2); |
9 | lcd_string(" war da! "); |
10 | return 0; |
11 | }
|
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.
Ganz nett. Aber wozu braucht man sowas? Passt bloß auf, dass euch keiner die Fuses zur Laufzeit setzt und das Board kaputt macht. :)
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 :-)
Schönes Projekt. Ihr solltet den Cursor farblich noch verändern, da er zumindest auf meinem LCD kaum sichtbar ist....
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?
Schön wären auch noch virtuelle Eingabemöglichkeiten - so dass ich zum Beispiel einen Button im Browser habe und den mit einem Portpin verknüpfen kann
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 :)
Cooles Projekt! Aber ein Emulator würde es auch tun, oder? Wozu die echte Hardware?
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 .....
Lässt sich gut für Werbung missbrauchen! Wie man gerade sieht :D *duck & weg*
>Lässt sich gut für Werbung missbrauchen! >Wie man gerade sieht :D pfui!
Ich vermisse nur eine Funktion, mit der man beliebige HEX-Files in den Controller flashen kann...
Sagt mal, was hindert mich eigentlich daran ein programm zu flashen, dass schön den Bootloader überschreibt?
@ 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.
Hehe, kein Bootloader Schutz. Na ob das so eine gute Idee ist...
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
Ich habe gerade meinen Spass mit der Sync-Zeit der Kamera. Super Projekt ... Danke.
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.
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.