AVRs online programmieren, Tester gesucht

Gast #2281448
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
Gast #2281454
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 ;)
#2281465
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.
Gast #2281507
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 :-)
#2281516
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?
Gast #2281640
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.
#2281701
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!
Gast #2281802
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...
Gast #2281806
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.
Gast #2282071
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 :)
Gast #2282198
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.
#2282306
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
#2282334
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
Gast #2282483
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..
Gast #2282549
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
#2282553
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)
Gast #2282566
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..
Persönliche Seite #2282570
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
#2282786
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.
#2285966
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren