Forum: Mikrocontroller und Digitale Elektronik welchen MC für UDP/IP Pakete


von Alexander K. (_alex)


Lesenswert?

Hallo,
ich habe vor kurzem als Werkstudent angefangen.
Ich soll mithilfe eines Mikrocontrollers Taster und einige Drehwertgeber
abfragen und das Ergebnis als UDP/IP Paket in das System schicken.
Ich bin nun leider Mikrocomputer Neuling.
Habt ihr eine Idee wie ich das realisieren kann?

Viele Grüße
_Alex

von user (Gast)


Lesenswert?


von Alexander K. (_alex)


Lesenswert?

Zum Beispiel ein Stellaris EKK-LM3S8962 Evaluation Kit?
Brauch ich dafür noch einen Webserver oder TCP/IP-stack?
bekomm ich das auch von TI?

von Bastelkönig (Gast)


Lesenswert?

Alexander Koch schrieb:
> Ich bin nun leider Mikrocomputer Neuling.
> Habt ihr eine Idee wie ich das realisieren kann?

Viele Wege führen nach Rom.
Hast du Programmier-Erfahrung?
Kannst du löten, einfache digitale Schaltungen aufbauen und sowas?
Wie fit bist du mit IP generell und UDP im speziellen?

von Karl H. (kbuchegg)


Lesenswert?

Hmm.
Ich frag mich, ob der Stellaris ARM nicht ein bischen zu heftig für dich 
wird. Auch im Hinblick auf die angepeilte Funktionalität.

Es gibt für Arduino auch Ethernet-Shields. Wenn Künstler damit zurecht 
kommen, dann müsstest du das eigentlich auch.


Nicht das ich dir den ARM ausreden will, aber die notwendige Lernkurve 
ist bei einem ARM schon um einiges heftiger.

von Alexander K. (_alex)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Ich frag mich, ob der Stellaris ARM nicht ein bischen zu heftig für dich
> wird.
Was ist denn ARM? Ist der Controller zu schwierig für den Anfang?
Was ist mit dem EKS-LM3S9D90 Evaluation Kit von TI das sieht nicht so 
aufwendig aus.

Karl Heinz Buchegger schrieb:
> Arduino auch Ethernet-Shields
Auch Arduino kenn ich nicht. Was ist denn das? gibts dazu einen Link 
oder so?

von Hans (Gast)


Lesenswert?

Alexander Koch schrieb:
> Was ist denn ARM?

Ohje.

Alexander Koch schrieb:
> Auch Arduino kenn ich nicht. Was ist denn das?

Ohje, Ohje, Ohje...

Wieviel Zeit hast Du für die Aufgabe? In welchem Studienfach bist Du?

von Alexander K. (_alex)


Lesenswert?

Bastelkönig schrieb:
> Hast du Programmier-Erfahrung
Mit schleifen, variablen, if else usw. kann ich umgehen mit einem Stack 
oder so hatte ich noch nie zu tun.

Bastelkönig schrieb:
> Kannst du löten, einfache digitale Schaltungen aufbauen und sowas?

Löten und schaltungen auf eine lochrasterplatiene bringen kann ich. SMD 
bestückung auch.

> Wie fit bist du mit IP generell und UDP im speziellen?
Mit IP und UDP hab ich keine erfahrung.

von Alexander K. (_alex)


Lesenswert?

Hans schrieb:
> Wieviel Zeit hast Du für die Aufgabe? In welchem Studienfach bist Du?
Ich arbeite einen Tag in der Woche und das bis Ende Februar.
Aber wenn not am mann ist (was vorraussichtlich der fall sein wird) kann 
ich noch hinten ne Woche dranhängen.

von Karl H. (kbuchegg)


Lesenswert?

Alexander Koch schrieb:
> Bastelkönig schrieb:
>> Hast du Programmier-Erfahrung
> Mit schleifen, variablen, if else usw. kann ich umgehen mit einem Stack
> oder so hatte ich noch nie zu tun.

Dann würde ich dir definitiv zu einem Arduino raten.

Ist zwar eher der Volkswagen unter den µC.
Dafür ist der Stellaris eher unter Tourenwagen-Rennauto einzustufen. 
Sprich: der kann mehr, der ist schneller, ist moderner. Aber - man muss 
mit ihm umgehen können und erst mal das Fahrwerk auf den Untergrund 
abstimmen, indem man an 82 Schrauben dreht.

Für deine Aufgabe reicht ein besserer Motorroller.

von Georg G. (df2au)


Lesenswert?

AVR-Net-IO von Pollin? Fertige Hardware, Beispielsoftware im Forum, 
preiswert.

von Lothar (Gast)


Lesenswert?

Alexander Koch schrieb:
> Ich bin nun leider Mikrocomputer Neuling.

Dann würde ich etwas "Fertiges" nehmen. Dieses MC-Board wird mit einer 
Demo geliefert. Zur Demo gehört der "uIP Webserver", damit kann man 
Taster und Sensoren abfragen. Man kann entweder die Ergebnisse 
periodisch als UDP über Ethernet versenden. Oder man hat auf einem PC am 
Netzwerk einen Browser laufen (Firefox), der die Ergebnisse vom MC 
abholt (das nennt sich AJAX z.B. mit JavaScript).

https://www.olimex.com/Products/ARM/NXP/LPC1766-STK

Die Taster und Sensoren werden über den UEXT-Stecker angeschlossen, oder 
per Pinleiste angelötet. Damit wäre die Software erledigt.

Falls das später mal ein Produkt werden soll, sollte man natürlich eine 
eigene Platine machen, auf der nur MC und Ethernet-Chip (PHY) drauf ist. 
Wäre dann also ziemlich klein.

von Alexander K. (_alex)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Dann würde ich dir definitiv zu einem Arduino raten.
Danke für die Bildliche Erklährung.
Wo finde ich denn so einen Arduino?

Lothar schrieb:
> Dann würde ich etwas "Fertiges" nehmen
Genau so was Fertiges habe ich mir vorgestellt. ich muss jetzt leider 
auf den Bus.
Vielen Dank bis jetzt für die vielen Hilfreichen Antworten ich schau in 
den nächsten Tagen auf die Beiträge, muss mich jetzt erst mal auf mein 
Studium Konzentrieren.

von Selfhorst (Gast)


Lesenswert?

Das Pollinboard reicht doch vollkommen. Hat alles an Hardware drauf und 
Software gibt es auch zu genüge.
Die Umsetzung dürfte nichtmal einen Tag benötigen.

von Konrad S. (maybee)


Lesenswert?

Selfhorst schrieb:
> Die Umsetzung dürfte nichtmal einen Tag benötigen.

Deine Einschätzung ist in diesem Fall wohl etwas zu optimistisch. 
;-)

von Karl H. (kbuchegg)


Lesenswert?

Selfhorst schrieb:
> Das Pollinboard reicht doch vollkommen. Hat alles an Hardware drauf und
> Software gibt es auch zu genüge.

Das Problem dürfte eher sein:
Bis er sich in die Geheimnisse der TCP/IP Programmierung eingearbeitet 
hat, ist es April.

Für den Arduino gibt es wenigstens eine Latte an fertigen Libs, die ihm 
den Netzwerk-Kram auf der Ebene abnehmen, die er braucht.

von Lothar (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Arduino

Kann es sein, dass die Leute die Arduino empfehlen, VORHER schon 
AVR-Experten waren? Für einen Anfänger ist es gleich kompliziert, ein 
Arduino zu nehmen, oder ein beliebiges anderes Board, bei dem 
Programmbeipiele für die wichtigsten Dinge dabei sind. Oder warum nicht 
gleich Linux, Raspberry Pi ist bestimmt noch einfacher.

Ich habe ihm aber das Olimex-Board LPC1766 empfohlen, weil er dort im 
uIP Programmbeipiel nur minimal ergänzen muss, um beliebig UDP zu 
senden. Ausserdem ist der Schaltplan dabei, mit dem er sich bei Bedarf 
eine eigene Platine nur mit MC und PHY machen kann.

von Karl H. (kbuchegg)


Lesenswert?

Lothar schrieb:
> Karl Heinz Buchegger schrieb:
>> Arduino
>
> Kann es sein, dass die Leute die Arduino empfehlen, VORHER schon
> AVR-Experten waren?

Ich orientiere mich da eigentlich eher an der Arduino Zielsetzung:
Ein µC-Board für Leute, die sonst nichts mit Programmieren am Hut haben. 
Handwerker, Künstler, Hausfrauen, ....
Und wenn man so sieht, was diese Leute damit machen, dann muss man 
sagen: Die Italiener haben ihre Zielsetzung anscheinend gut erfüllt.
Dazu kommt, dass der ganze Themenkreis rund um den Programmer, dessen 
Installation, warum AVR-Studio ihn nicht erkennt etc., etc.  wegfällt.

Dazu kommt, dass die Arduino Gemeinde mittlerweile groß ist und es viele 
Stellen gibt, die er um Hilfe anlaufen kann. Und gerade für jemanden, 
dessen Kentnisse bei 'if, for-Schleifen, etc' aufhören, ist das ein 
nicht zu unterschätzendes Thema.

Ansonsten hab ich mit Arduino nicht viel am Hut.

von Lothar (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Ein µC-Board für Leute, die sonst nichts mit Programmieren am Hut haben.
> Handwerker, Künstler, Hausfrauen, ....

Hier zur Abschreckung eine Diskussion im Arduino-Forum zu udp_send:

http://arduino.cc/forum/index.php/topic,49488.0.html

von Frank K. (fchk)


Lesenswert?

Alexander Koch schrieb:
> Hallo,
> ich habe vor kurzem als Werkstudent angefangen.
> Ich soll mithilfe eines Mikrocontrollers Taster und einige Drehwertgeber
> abfragen und das Ergebnis als UDP/IP Paket in das System schicken.
> Ich bin nun leider Mikrocomputer Neuling.

Die Lösung mit dem geringsten Hardwareaufwand ist ein PIC18F67J60. Ein 
einziger Chip, in dem alles drin ist: Prozessor, Speicher, Ethernet MAC, 
Ethernet PHY. Kleiner und billiger geht es nicht.

Wenn Du ein fertiges Board brauchst:

https://www.olimex.com/Products/PIC/Proto/PIC-P67J60/

Zum Debuggen brauchst Du das hier:

https://www.olimex.com/Products/PIC/Programmers/PIC-KIT3/

MPLAB8 IDE, C18 Compiler und die Application Libraries mit dem IP-Stack 
bekommst Du bei Microchip gratis gedownloaded.

fchk

von Karl H. (kbuchegg)


Lesenswert?

Lothar schrieb:
> Karl Heinz Buchegger schrieb:
>> Ein µC-Board für Leute, die sonst nichts mit Programmieren am Hut haben.
>> Handwerker, Künstler, Hausfrauen, ....
>
> Hier zur Abschreckung eine Diskussion im Arduino-Forum zu udp_send:
>
> http://arduino.cc/forum/index.php/topic,49488.0.html

:-)

Hab mir gerade von Olimex die Demo geholt (ist doch die in 
simple/EMAC?). Wenn du denkst dass er DAMIT klar kommt, bei 0 Ahnung 
und, warte mal, jetzt haben wir Anfang Dezember und er hat 1 Tag pro 
Woche. Er hat also 4, 8, 12, ganze 12 Tage (+ eventuell noch eine 
Zusatzwoche), na dann ...

von Lothar (Gast)


Lesenswert?

Frank K. schrieb:
> Die Lösung mit dem geringsten Hardwareaufwand ist ein PIC18F67J60.

Und was ist mit dem Softwareaufwand? Erst mal die Patches unten rechts 
und dann? Außerdem will er nicht debuggen, es soll laufen :-)

von Karl H. (kbuchegg)


Lesenswert?

> Und was ist mit dem Softwareaufwand? Erst mal die Patches unten rechts
> und dann? Außerdem will er nicht debuggen, es soll laufen :-)


Ganz genau darum geht es.
Er braucht nicht die technisch brillianteste Lösung, sondern ein 
Basissystem mit dem er in kürzester Zeit (und das kürzest ist wörtlich 
zu nehmen), mit nicht besonders guten Kentnissen (eher schlechten ... 
wir kennen ja unsere Pappenheimer), zu einer Lösung kommt. Rein von da 
her scheiden viele gute Boards schon von vorne herein aus. Die sind zwar 
technisch brilliant und auch vom Preis/Leistung her unschlagbar, aber es 
würde für ihn viel zu lange dauern, da etwas auf die Beine zu stellen.
Es muss amerikanisch ... äh ... einfach ... sein und er braucht eine 
gute Unterstützung, auch in Form von Menschen. Und es dürfen nicht zu 
viele Stolpersteine existieren. Das sind IMHO die wichtigsten 
Forderungen. Ob der Prozessor jetzt mit 16Mhz oder mit 70Mhz getaktet 
wird, ist hingegen wiederrum für seine Aufgabenstellung völlig 
irrelevant.

von Lothar (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Hab mir gerade von Olimex die Demo geholt (ist doch die in
> simple/EMAC?)

uip_webserver:

Man kann es später sehr elegant machen, mit uip_send (UDP-Paket) oder 
httpd_handle_input/output (AJAX).

Aber die Holzhammermethode für Anfänger wäre, einfach in httpd-fsdata.c 
die data_index_html auf die gewünschte Länge zu kürzen und das Ergebnis 
der Taster und Sensoren als Text am Anfang da periodisch 
reinzuschreiben.

von Alex_ (Gast)


Lesenswert?

Hey Lothar, wenn du denkst, dass das Board einfach ist, dann vertraue 
ich dir da einfach, bestelle es und probiere es einfach aus.
Was ist das denn für eine Entwicklungsumgebung?
Ist die da dabei?

von PittyJ (Gast)


Lesenswert?

Ich habe letztens auf einem Arduino mit Ethernet Shield UDP-Pakete 
verschickt.
Waren ohne Kommentar ca 30 Zeilen C-Code.



#include <SPI.h>
#include <Client.h>
#include <Ethernet.h>
#include <Server.h>
#include <Udp.h>

// the media access control (ethernet hardware) address for the shield:
byte ba_Mac[6] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//the IP address for the shield:
byte ba_IP[4] = { 192, 168, 2, 77 };

byte ba_ServerIP[4]        = { 192,168,2,82 };

unsigned char uca_Data[3]="PJ";

// The setup() method runs once, when the sketch starts
void setup()
{

  Ethernet.begin( ba_Mac, ba_IP);

  Udp.begin(26266);
}

void loop()
{
  int i_ReturnValue;

  delay(4000);

  i_ReturnValue = Udp.sendPacket(uca_Data,
                                 2,
                                 ba_ServerIP,
                                 26266
                                 );    // send new status byte


} // loop()



Auf dem PC muss allerdings ein Gegenstück bestehen.

von Lothar (Gast)


Lesenswert?

Wie ist es denn gelaufen?

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.