Forum: Mikrocontroller und Digitale Elektronik AVRs online programmieren, Tester gesucht


von Tobias Weis (Gast)


Lesenswert?

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

von Tobias Weis (Gast)


Lesenswert?

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 ;)

von John-eric K. (mockup)


Lesenswert?

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.

von Hugo Habicht (Gast)


Lesenswert?

Ganz nett. Aber wozu braucht man sowas? Passt bloß auf, dass euch keiner 
die Fuses zur Laufzeit setzt und das Board kaputt macht. :)

von John-eric K. (mockup)


Lesenswert?

Nicht Komma, Semikolon war gemeint.

von Nikos (Gast)


Lesenswert?

Total sinnlos!!!
Ich finds geil :-D

von Hannes H. (mui)


Lesenswert?

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? :-)

von Hannes H. (mui)


Lesenswert?

Bei mir geht die Webcam von LAB3 irgendwie nicht...

von Chris (Gast)


Lesenswert?

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 :-)

von salamander (Gast)


Lesenswert?

Schönes Projekt. Ihr solltet den Cursor farblich noch verändern, da er 
zumindest auf meinem LCD kaum sichtbar ist....

von vaid (Gast)


Lesenswert?

Finde die Idee super!
Weiter so! :thumps up:

von Marcus B. (raketenfred)


Lesenswert?

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?

von Hannes H. (mui)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

Noch mehr Virtualisierung? Nein Danke!

von Tobias Weis (Gast)


Lesenswert?

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.

von Sesk K. (zeborok)


Lesenswert?

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!

von Tobias Weis (Gast)


Lesenswert?

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...

von Tobias Weis (Gast)


Lesenswert?

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.

von Tobias Weis (Gast)


Lesenswert?

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 :)

von Alex W. (a20q90)


Lesenswert?

Hi,

wie kann man den Livestream denn sehen?

von Steffen (Gast)


Lesenswert?

Ich seh ihn auch nicht

von froumts (Gast)


Lesenswert?

Cooles Projekt! Aber ein Emulator würde es auch tun, oder? Wozu die 
echte Hardware?

von Michael D. (etzen_michi)


Lesenswert?

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

von Vlad T. (vlad_tepesch)


Lesenswert?

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

von Tobias Weis (Gast)


Lesenswert?

@ 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.

von Jonathan S. (joni-st) Benutzerseite


Lesenswert?

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

von Jack (Gast)


Lesenswert?

Daumen hoch für dieses tolle Projekt. Kreative Idee und tolle Umsetzung.

Daumen runter für Falk, der echt alles schlecht reden muss.

wwhhhahaaaaaaaaa .....

von M. K. (avr-frickler) Benutzerseite


Lesenswert?

Lässt sich gut für Werbung missbrauchen!
Wie man gerade sieht :D

*duck & weg*

von Jonathan S. (joni-st) Benutzerseite


Lesenswert?

>Lässt sich gut für Werbung missbrauchen!
>Wie man gerade sieht :D

pfui!

von Jonathan S. (joni-st) Benutzerseite


Lesenswert?

Ich vermisse nur eine Funktion, mit der man beliebige HEX-Files in den 
Controller flashen kann...

von froumts (Gast)


Lesenswert?

Sagt mal, was hindert mich eigentlich daran ein programm zu flashen, 
dass schön den Bootloader überschreibt?

von Falk B. (falk)


Lesenswert?

@  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

von Jack (Gast)


Lesenswert?

>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.

von Falk B. (falk)


Lesenswert?

@  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

von Tobias Weis (Gast)


Lesenswert?

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..

von NurEinGast (Gast)


Lesenswert?

@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

von Michael D. (etzen_michi)


Lesenswert?

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)

von Tobias Weis (Gast)


Lesenswert?

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..

von Jonathan S. (joni-st) Benutzerseite


Lesenswert?

>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

von Sam .. (sam1994)


Lesenswert?

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.

von Michael D. (etzen_michi)


Lesenswert?

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.

von froumts (Gast)


Lesenswert?

Hehe, kein Bootloader Schutz. Na ob das so eine gute Idee ist...

von Michael Dierken (Gast)


Lesenswert?

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!

von Jobst M. (jobstens-de)


Lesenswert?

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

von Michael Dierken (Gast)


Lesenswert?

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.

von Jobst M. (jobstens-de)


Lesenswert?

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

von pwd123456 (Gast)


Lesenswert?

Ich habe gerade meinen Spass mit der Sync-Zeit der Kamera. Super Projekt 
... Danke.

von Christian H. (christian_h)


Lesenswert?

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
Noch kein Account? Hier anmelden.