Forum: Mikrocontroller und Digitale Elektronik Cortex M oder A für Roboter?


von Can C. (moklok)


Lesenswert?

Hallo,

Vorgeschichte:
sehe mich gerade nach der richtigen Rechenmaschine für einen Roboter 
um...  das tolle und gleichzeitig der Fluch an der Geschichte ist, dass 
mir nicht genau gesagt werden kann, wohin die Reise denn gehen soll.  So 
ne art Glücksfall, dass unsere Vertriebler jemanden einen haufen Geld 
abgeschwatzt haben, ohne zu sagen, was das genau werden soll...  ihr 
wisst schon... ganz modern und state of the arts...

habe ne menge auf Mikrocontrollern gearbeitet (Atmega, ARM7), welche von 
ihrer Komplexitaet her noch zu überschauen waren...

Suche:
Da ich sowieso eins auf den Deckel bekommen werde, weil am ende nicht 
rauskommt, was der kunde wollte, möcht ich mich wenigstens 
weiterentwickeln.

Daher suche ich einen Mikrocontroller mit den folgenden eigenschaften
- preis ist egal
- stromversorgung ist gesichert
- soll alles mögliche möglichst schnell können
Es soll also der dickste uC sein, den man bekommen kann... das ganze ist 
nur dadurch begrenzt, dass der uC von seiner Komplexität her auch von 
einer Person (mir) zu stemmen sein soll.

Das gibt viel raum zum herumspinnen:

1. Nehme einen Intel i7 und pack diesen auf ein kleines Board.
- macht es sinn die dinger selber zu proggen?  oder brauch man da schon 
Windows/Linux?  wie schwierig ist das ganze drum herum aufzubauen?  da 
brauch man doch einen hochfrequenz spezialisten? (ein fertiger PC soll 
es nicht sein, da ich nichts lerne und das ding auf dem roboter sitzen 
soll)

2. Nehme einen mini PC.
- einen fertigen will ich nicht nehmen, da ich wieder nichts lerne.
- zu dieser klasse gehoeren doch auch schon die Cortex A prozessoren? 
ist das ganze drumherum auch wieder was fuer einen 
hochfrequenz-techniker oder liesse sich hier der aufbau ähnlich wie bei 
den uCs machen?

3. Nehme einen dicken uC
- bin hier ziemlich schnell bei Cortex M4 gelandet. gibt es dazu 
(besser=dickere) alternativen?


Würde mich freuen, wenn ihr erfahrenen mich in die richtige Richtung 
stoßen könntet.

von Lattice User (Gast)


Lesenswert?

Zu 1:
Mit Intel i7, (oder auch den kleineneren) ist ein eigenens Board extrem 
aufwendig. Braucht ausserdem ein angepasstes BIOS (teuer).
Als System entweder ein teures RTOS oder Windows/Linux.
Sinnvoll ist hier nur ein fertiges IndustrieMB einzusetzen.

Zu 2.
Mini PC, Mit Intel Atom gilt das Gleiche wie bei 1.
Zu ARM Cortex A siehe unten.

Zu 3.
Cortex M4 ist unter Umständen nicht flexibel genug, vor allem wenn die 
SW Anforderungen steigen.


Für den Einsatz auf einem eigenen Board empfiehlt sich als Kompromiss 
ein Arm 9 (z.B. Atmel AT91..) oder Cortex A8 (z.B. TI). Die lassen sich 
noch ohne zu grossen Aufwand zu Fuss programmieren, taugen aber auch für 
Linux., bzw wenns sein muss auch WindowsCE. Gibt ausserdem ünstige RTOS. 
Zudem haben diese oft auch noch Dinge wie ADC, PWM, I2C, SPI ... on 
Chip.

von tom (Gast)


Lesenswert?

...was soll denn der roboter alles können/machen und wie sich bewegen ?

von Arc N. (arc)


Lesenswert?

Can Cobe schrieb:
> 3. Nehme einen dicken uC
> - bin hier ziemlich schnell bei Cortex M4 gelandet. gibt es dazu
> (besser=dickere) alternativen?

Kommt drauf an, s.u.

>
> Würde mich freuen, wenn ihr erfahrenen mich in die richtige Richtung
> stoßen könntet.

1. In der Leistungsklasse ist ein Betriebssystem (insb. schon passend 
angepasstes inkl. aller Treiber) sinnvoll
2. Schnell = HF
3. SoCs sind "etwas einfacher", da "weniger" extern angebunden werden 
muss
4. TMS320DM8148 (Cortex-A8 + C674x DSP 1)), OMAP5432 (2x A15 @ 2 GHz, 2x 
M4 2)

1) http://www.greenbaset.com/products.php?index=9&c1=
2) http://www.phytec.com/products/som/phycore/omap5.html 5430

von fly (Gast)


Lesenswert?

Ihr verkauft was ohne zu wissen was?
Und der Kunde weiss auch nicht was er will oder bekommt?

Und du entwickelst jetzt was für IRGENDEINEN Roboter? srsly?

Eure Firma lebt noch?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Erst mal, was soll den das für ein Roboter werden ????
Wie viele Achsen usw.

6-Achser gibt es wie Sand am Meer von Stäubli, Kuka, ABB, Fanuc und 
sonst auch noch viele.

Ein Prozessor wird Dir wohl auch nicht ganz reichen, denn das ganze muss 
auch Not-Aus Sicher aufgebaut sein, also mindestens noch einen zweiten 
für die Sicherheitstechnik.

Einen Cortex-M4 wäre die unterste Grenze, aber auch nur für eine 
unbedeutende Lego-Bastel-Anlage.
Wenn das was "Ordentliches" werden soll, dann braucht es auch deutlich 
mehr als "nur einen" Entwickler.

Dazu kommt noch ein gescheites Handbediengerät.

Schreibe mal etwas genauer was Du willst, bzw. machen sollst.

von hans (Gast)


Lesenswert?

> Einen Cortex-M4 wäre die unterste Grenze, aber auch nur für eine
> unbedeutende Lego-Bastel-Anlage.

Früher ist man noch mit einem Bruchteil der Rechenleistung eines Atmega 
zum Mond geflogen. Heute reicht ein CortexM4 grade noch so für Lego?

Ich denke mit einem stm32F4 kann man schon recht ordentliche Dinge tun. 
Immerhin läuft der mit 168Mhz, besitzt DMA und DSP.

Ohne Nennung der Anforderungen kann die Frage nicht beantwortet werden.

von KarlHeinzEbler (Gast)


Lesenswert?

kauf dir doch einen günstigen IndustriePC  Embedded PC mit intel i3  
i5 oder Atom.

dort läuft deine software drauf egal ob windows oder linux.

Die haben meistens auch eine IO Karte mit den PWM's erzeugen ffür 
Schrittmotoren etc.

Kommt in etwas sogar auf das gleiche raus vom Preis und hast ein 
funktionierendes system.

von Lattice User (Gast)


Lesenswert?

hans schrieb:
> Früher ist man noch mit einem Bruchteil der Rechenleistung eines Atmega
> zum Mond geflogen.

Mondlandung:
Eine Messgrösse (Bodenabstandsradar), Eine Stellgrösse (Schub), 
notwendige Reaktionszeit: viele Sekunden wenn nicht gar Minuten.

Roboter:
Unzählige Sensoren, Bildauswertung, viele Schrittmotoren etc. Notwendige 
Reaktionszeit: msec.

von Can C. (moklok)


Lesenswert?

@Lattice User:
vielen dank... ich schau mir deine vorschläge genauer an... aber ein 
frage schonmal vorweg: was macht die Cortex M4 basierten so unflexibel? 
dafuer gibts doch auch lauter OS...

@tom:
>was soll denn der roboter alles können/machen und wie sich bewegen?"
- will damit anfangen einfach vorgegegebene Positionen anzufahren
- dann wird wohl noch das ausweichen von Hindernissen hinzukommen
- dann riecht es foermlich danach, dass noch viele viele wuensche kommen 
werden... to be continued (mehr weiss ich nicht, daher suche ich eine 
Zwischenloesung, die mir möglichst viel luft nach oben laesst)

@Arc Net: danke... schau mir deine vorschlaege auch in ruhe nochmal an.


@fly:
>Ihr verkauft was ohne zu wissen was?
>Und der Kunde weiss auch nicht was er will oder bekommt?
naja, die vertriebler bomadieren den kunden mit allem moeglichen was sie 
hoeren wollen... und wenn die infos dann bei uns technikern ankommen, 
ist da absolut keine linie/richtung auszumachen.  ist halt alles dabei 
was man sich fuer so einen roboter so ausmalen kann...

>Und du entwickelst jetzt was für IRGENDEINEN Roboter? srsly?
ja

>Eure Firma lebt noch?
ich weiss auch nicht wie unsere vertriebler das machen... die kommen 
halt immer wieder zurueck mit einem sack voll geld.

@ Markus Müller:
>Erst mal, was soll den das für ein Roboter werden ???? Wie viele Achsen..
eigentlich sind das mehrere roboterarme... mehr als 6 achsen werden es 
wohl nicht werden (ich mach nur den uC)...  erstmal sind schrittmotoren 
angesagt

>6-Achser gibt es wie Sand am Meer von Stäubli, Kuka, ABB, Fanuc und
sonst auch noch viele.
die arme sind ne eigenentwicklung... unsere maschinenbauer haben schon 
vorarbeit geleistet (die haben dieselben probleme wie ich und einfach 
drauf losgebaut)

>Ein Prozessor wird Dir wohl auch nicht ganz reichen, denn das ganze muss
auch Not-Aus Sicher aufgebaut sein, also mindestens noch einen zweiten
für die Sicherheitstechnik.
danke fuer den tipp

>Einen Cortex-M4 wäre die unterste Grenze, aber auch nur für eine
unbedeutende Lego-Bastel-Anlage.
echt? also doch fertigen mini PC oder kennst du eine uCs alternative?

>Wenn das was "Ordentliches" werden soll, dann braucht es auch deutlich mehr als 
"nur einen" Entwickler.
sag das meinem chef

>Dazu kommt noch ein gescheites Handbediengerät.
im ersten schritt sollen die uCs einfach feste positionen anfahren...

>Schreibe mal etwas genauer was Du willst, bzw. machen sollst.
ich wuenschte ich koennte...


@hans:
ich haette auch gedacht, dass man mit den Cortex M4ern was reissen 
kann...

>Ohne Nennung der Anforderungen kann die Frage nicht beantwortet werden.
das ist ja gerade mein problem... daher sind die anforderungen:
- moeglichst viel luft nach oben offen lassen
- entwickler möchte mal ferner zukunft uC guru werden
wobei letzteres mehr prio hat, da ersteres schwerer festzunageln ist, da 
"luft nach oben" bei unterschiedlichen anforderungen ganz 
unterschiedliche ergebnisse liefern koennen.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

"Luft nach Oben" ist zu definieren mit:
- Netzwerkanbindung, Gigabit
- Diverse Protokolle per Netzwerk um Kommunikation mit einer 
überliegenden Bildverarbeitung zu erhalten
- Conveur Tracking
- Bahnoptimierung, Überschleifen etc.
- Bahnberechnung im Voraus

Dafür ist ein STM32F4x7 mit 168MHz deutlich zu schwach. Wenn das einer 
alleine schaffen will, dann braucht der vor allem Erfahrung mit 
Mathematik und Koordinatensystemen.

Warst Du überhaupt schon mal auf einer Roboter-Messe und hast Dir mal 
angeschaut was die alles so können und wie deren Steuerung aussieht?


Mollmilchlegende Eiersau...

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

z.B. Adept stellt Steuerungen für Roboter her. Kaufe die und werde 
glücklich.

von Uwe (Gast)


Lesenswert?

Die Motore mit kleinen DSPs steuern bzw. regeln oder nen Controller aus 
dem automotive bereich benutzen. Als User interface nen Embeded PC mit 
schnellem x86. Über PCIe nen FPGA mit nem DSP zusammen die die kleinen 
Motoren steuern.

> das ganze ist nur dadurch begrenzt, dass der uC von seiner Komplexität
> her auch von einer Person (mir) zu stemmen sein soll.
Hast ja nichts über die Zeit gesagt 8-)

von Svenska (Gast)


Lesenswert?

Die OMAP5 haben Dual-Cortex-A15 und Dual-Cortex-M4. Damit würdest du dir 
zumindest die zweite CPU sparen können, falls die nicht physisch 
getrennt auf einer anderen Platine liegen muss.
Prozessoren in dieser Leistungsklasse will man eigentlich nicht mehr 
händisch programmieren, d.h. da kommt ein vollwertiges Betriebssystem 
(Linux) mit allen Treibern usw. rein. Den Echtzeitanteil kannst du in 
einen der kleinen Cortexe auslagern.

Ansonsten ist das Projekt je nachdem wieviel du lernen willst, eine 
reine Zeitsenke. Wenn Zeit eine Rolle spielt, setz was fertiges drauf 
und mach den Kunden glücklich.

von Lattice User (Gast)


Lesenswert?

Von OMAP würde ich abraten.
Die sind für den schnelllebigen Smartphone Hype Markt gedacht, und 
keiner weiss daher wie lange die einzelnen Generationen verfügbar sind. 
Und TI hat auf diesem Markt leider keinen Fuß auf den Boden gebracht.
An Samples zu kommen ist ausserdem auch nicht einfach.

Wenns unbedingt Multicore Cortex A15 sein muss, dann mal die neuen TI 
Keystone Processoren anschauen.

von RoboterControllerAuskenner (Gast)


Lesenswert?

Was Du hier fragst ist doch absoluter Unfug. Du kannst nie erfolgreich 
sein, wenn Du Dir über den Einsatzzweck nicht im Klaren bist. Alle 
Empfehlungen sind demzufolge auch wertlos. Es ist ja gar nicht klar, was 
der Roboter eigentlich können soll. Und ein Cortex M4 und Intel i7 
unterscheiden sich wie ein Corsa vom Bentley. Ich kenne auch niemanden, 
der mit so einem Spektrum losläuft und ein Auto kauft.

Also Can Cobe, denk mal drüber nach!

von marvin m. (Gast)


Lesenswert?

Hi,

du willst flexibel sein, etwas lernen? Nimm FPGA.
Da kannst du dir beliebige Hardware (Timer, PWM, SPI....) selbst 
basteln, dann noch ein Softcore dazu - fertig.
Bei den µC kanns immer mal passieren, das ein SPI/PWM/I²C/Timer zu wenig 
da ist....

von Peter D. (peda)


Lesenswert?

Can Cobe schrieb:
> So
> ne art Glücksfall, dass unsere Vertriebler jemanden einen haufen Geld
> abgeschwatzt haben, ohne zu sagen, was das genau werden soll...

Die nehmen wohl ihre Aufgabe wörtlich und vertreiben die Kunden. Sowas 
kann leicht nach hinten losgehen.

Auch wenn es keiner gerne macht, eine Entwicklung fängt man nicht vor 
dem Pflichtenheft an.


Peter

von Can C. (moklok)


Lesenswert?

@Markus Müller:
>Dafür ist ein STM32F4x7 mit 168MHz deutlich zu schwach.
Wofür braucht man denn eine netzwerkverbindung im gigabit bereich?  Was 
fuer infos laufen denn darueber?

um eine bahn abzulaufen benoetigt man doch so gefuehlte 
20xAddition/subtraktion, 10xMultiplikation/division, paar mal wurzel 
ziehen und ein wenig trigonometrie berechnungen pro achse und 
anlaufpunkt (Rückwärtsrechnung)... reichen da die 168MHz nicht aus?

>Warst Du überhaupt schon mal auf einer Roboter-Messe
nein...  habe zwar schon ein paar roboter geproggt, aber immer mit PCs


@ Uwe und marvin m.
6 monate um ein paar vorgefertigte anlaufpunkte anzufahren... die 
naechsten 3jahre restlichen wuensche entziffern und umsetzen.  FPGA ist 
dann wohl doch zu steil was die lernkurve angeht


@Svenska
ich schau mir mal die OMAPs an.  kann man sagen, dass man ab der A 
Klasse grundsaetzlich nicht mehr alles zu fuss proggt?  wuerde gerne ein 
gefuehl dafuer bekommen.

@ Lattice User
die TI werden auch genauer unter die Lupe genommen


@RoboterControllerAuskenner
ja... ist schon ein wenig unfug... daher bin ich auf der suche nach 
einem jeep, um moeglichst auf alles einigermassen gewappnet zu sein.


@Peter Dannegger
wie wahr, wie wahr... werd dahingehend weiter versuchen das 
durchzusetzen.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

>Wofür braucht man denn eine netzwerkverbindung im gigabit bereich?

Wenn Du heute eine Schaltung entwickelst, die erst in 3 Jahren fertig 
sein sollte und danach sollte diese noch für mindestens 10 Jahre 
verkauft werden, dann sollte man unbedingt das modernste einsetzen was 
nur irgendwie machbar ist.
Bei HW ist das ein Problem, wenn es für ein Netzteil nur eine blöde 
Drossel nicht mehr gibt kann es ein Redesign bedeuten.

Daher am besten ein Standard-PC ATX Board nehmen und Linux drauf und 
darauf programmieren. (z.B. Mini-ITX mit passiv Kühlung, 24V Netzteil 
usw., gibt es hier: http://www.cartft.com/)
Die HW MUSS Erschütterungen aushalten können, denn in einer Produktion 
bewegt und vibriert ständig was.

Damit hast Du automatisch Fernwartung und LAN. HW kannst Du immer 
tauschen, modernisieren usw.

Dazu entwickelst Du Dir ein paar spezielle IO Karten um Deine speziellen 
Anforderungen an den Prozessor binden zu können, wenn es die nicht schon 
gibt.

von PittyJ (Gast)


Lesenswert?

Wir experimentieren gerade mit ComExpress Modulen herum.
Die sind einigermassen klein, gibt es von Intel Atom bis zu Core I7. Und 
die haben Standard-Schnittstellen. Standardsoftware (Windows, Linux) 
geht auch.

von MCUA (Gast)


Lesenswert?

>Es soll also der dickste uC sein, den man bekommen kann...
Eine total undefinierte Frage! Sowas gibts nicht!
Ausserdem stellt sich die Frage nach Rechenleistungs- u. 
Echtzeit-Anforderungen, ms? us? ns???
Mit nur nem PC dürfte man wohl grosse Echtzeit-Probleme kriegen.
Man kann mit einem Verbund von (mehr oder weniger) aktuellen uCs 
eigentlich alles machen. Mit einem alleine wirds wohl nicht gehen, bzw 
wird das Design wohl schnell am Anschlag sein, wenn man was erweitern 
will.

von hans (Gast)


Lesenswert?

eine Option wäre einen CortexM4 für die Echtzeitanforderungen und die 
Hardwarenahe Seite und ein Linuxsystem (mini micro oder pico itx board) 
für die Mensch-Maschine Schnittstelle oder auch komplexe Rechnungen für 
Bildverarbeitung oder Ähnliches zu verwenden.

Diese Kombination hat sich schon oft als sehr sinnvoll erwiesen.

von xxx (Gast)


Lesenswert?

Schau dir mal einen AM335x von TI an. Ist ein Arm Cortex A8, der hat 
einen Realtime Coreprozessor mit 200Mhz. Wird im Beaglebone verwendet.

von Automatisierer (Gast)


Lesenswert?

> Ihr verkauft was ohne zu wissen was?
> Und der Kunde weiss auch nicht was er will oder bekommt?

Willkommen im ganz normalen täglichen Wahnsinn!

Ich "durfte" auch schon eine Anlage mit 18 CNC-Achsen programmieren, da 
bestand das "Plichtenheft" aus 1,5 Seiten DIN-A4 mit nicht 
widerspruchsfreiem Prosa...

Ihr naiven (jungen?) Menschen habt einfach keine Ahnung, wie die reale 
Welt funktioniert.

von bösewicht (Gast)


Lesenswert?

"Spieglein, Spieglein ...
Welches Projekt wirft in nächster Zukunft den meisten Profit ab?"
Antwort:
"Suche Dir ein Mikrocontroller-forum und rufe 'Roboter-IC' in den Wald!
Schon allsbald melden sich potenzielle Kunden...!"

von Albert G (Gast)


Lesenswert?

Man man man das ist ja teilweise haarsträubend was hier so erzählt wird.

Bei DEN völlig undefinierten Anforderungen kann man eigentlich erstmal 
nur ein fertiges Modul zum experimentieren hernehmen, zunächst nur die 
Software bauen und gucken wieviel Rechenleistung denn tatsächlich 
gebraucht wird.
DANN wenn das läuft kann man sich HW in der passenden Richtung suchen.
Und wenn die Stückkosten keine Rolle spielen wäre es bescheuert einen 
Rechner selbst zu entwickeln - da nimmt man was fertiges.

von Ralph (Gast)


Lesenswert?

Can Cobe schrieb:
>>Ein Prozessor wird Dir wohl auch nicht ganz reichen, denn das ganze muss
> auch Not-Aus Sicher aufgebaut sein, also mindestens noch einen zweiten
> für die Sicherheitstechnik.
> danke fuer den tipp

Naja, einen 2. µC rein und das war es, so einfach ist es denn doch 
nicht.
Dazu gehört dann viel HW und SW logic dazu die beiden zu vergleichen und 
daraus Reaktionen abzuleiten.

Sieh dir eher mal µC an dir auch in sicherheitskritischen automotiv 
Anwendungen drin sind. Ganz besonders das Stichwort "LockStep"

zb sowas hier:
http://www.ti.com/mcu/docs/mcuprodoverview.tsp?sectionId=95&tabId=2835&familyId=1931

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.