Microcontroller

Hey,

ich würde gerne anfangen mit Microconrollern zu experimentieren. Zu mir selbst würde ich sagen das ich gute Kenntnisse im programmieren von SPSen, Logo’s und EIB-Bauteilen habe. Grundwiessen zum Thema Reglungstechnik sind auch vorhanden.

Mein geplanntes Projekt:
Ich würde gerne eine kleine Drohne/ Quadrocopter bauen die sich selbst in der Luft ausbalanciert. (würde eine Lagesensor + Höhensensor verwenden)

Jetz zu meiner Frage:
Was brauch ich „alles“ um Microcontroller zu programmieren?

  • kann ich jede CPU nehmen?

  • Wie stelle ich eine Schnitstelle zwischen meinem Computer und meinen Baustein her? (RS232, USB)

  • Gibt es eine Platinenlayout für eine art Diagnosebaord, mit meheren I/Os (am besten auch 2 Analoge), an dem man einfache Versuchsaufbauten / LED’s anschliesen kann.

So jetz noch zum Abschluss ein kleine (wahrscheins sehr verrückter) Gedankengang meiner seits.

Ich besitze ein defektes Smartphone, kann ich es für meine Zwege umbauen? Theoretisch gesehen ist ja alles vorhanden. CPU, Lagesensor, Display, GPS-Module, USB-Schnistelle, Tastertur etc.

Hi,

Du hast hier ein richtiges Bündel an Fragen zusammengestellt, die zum Teil aber zusammenhängen. Es ist schwierig den Einstieg zu finden…

Zunächst mal etwas Wichtiges zu Quadrocoptern oder auch Mikro-Koptern. Diese Teile sind wahrhaft mustergütige Beispiele für angewandte Regelungstechnik. Bevor ich hier anfange zu erzählen lege ich Dir nahe folgenden Seite zu besuchen:

http://www.mikrokopter.com/

Drt kannst Du Dir zunächst mal die Basics anlesen. Holger habe ich selbst mal kennengelernt, er ist ein Freak auf diesem Gebiet.

Hier steht auch einiges zu den Prozessoren und dem Programmieren.

Ich selbst experimentiere seit einiger Zeit nur noch mit Atmel-Prozessoren. Um hiermit erste Gehversuche zu starten genügt sogar ein einfaches Steckbrett aus dem Elektronikladen. Programmiert wird das Ganze je nach „Progger“ über eine beliebige Schnittstelle.

Auch hier rate ich Dir zunächst die Lektüre eines Tutorials z.B. hier:

http://www.mikrocontroller.net/articles/AVR

und dann je nach Geschmack Assembler oder C.

Ich würde sagen, danach kannst Du Deine Fragen sicherlich etwas genauer auf den Punkt bringen und eines ist klar - ohne das Lesen diverser Datenblatter und Befehlstabellen wirst Du nicht weiter kommen. Deine u.g. Kenntnisse helfen sicherlich beim Verständnis, das Programmiernen ist aber schon anderes, als Du es im Umfeld Regelungstechnik kennengelernt hast.

Grüße
Mic

Hallo Felix,
eine gezielte Antwort auf deine Frage welchen MC du für deine
Experimente und Projekte nehmen sollst kann ich dir nicht geben,
da es 1. eine Menge verschiedene MC’s und/oder viele die sich nur in Deteils (z.B. IN-OUT’s digital/analog ) unterscheiden. Ich benutze für meine kleinen Projekte einen MC von Freescale ( MC9S08QG8 und/oder MC9S08QG4 ) und für größere den R8C13 von Renesas. Der Vorteil vom MC9S008… ist dass es Ihn in einem PDIP Gehäuse (für einen Hobyyelektroniker noch problemlos zu Löten) gibt, er aber nur 14 I/O’s hat ( 4 davon kann man auch als analoge Eingänge kopnfigurieren ). Den R8C13 gibt es nur im PLQP0032GB-A Gehäuse und ist dadurch nur bedingt für eine Hobbyelektroniker geeignet ( man bekommt aber eine Platine mittels der man ihn auf ein 24 pol. PDIP Format bringen kann. Den R8C13 hat eine RS232 Schnittstelle über die man den MC programmieren kann. Den MC9S…programmiere ich über eine USB-Adapter USBSPYDER08 (USB to BDM Ineterface ) von SoftTec. Beide MC’s sind 8Bit MC aber zum Start würde ich mit 8Bit MC beginnen und erst danach auf 16… oder 32 Bit wechseln. Über beide MC’s findest du im Internet genügend Literatur und Beispiele, am besten auf der Internetseite von ELEKTOR ( www.elektor.de ).
Da bekommst du auch ein recht preisgünstiges Starterkit ( 13,95 €)
Auch für den MC90… gibt es günstige Starterkits.
Das Smartphone ist nicht geeignet als Grundlage für dein Projekt, da die einzelnen Komponenten ( Lagesensor, Display, GPS-Module, USB-Schnitstelle) meist in einem IC zusammengefasst sind und daher fest zugeordnet sind und daher nicht für eine eigene Programmierung verwendbar sind. Außerdem ist die CPU meist eine spezielle, nur für Smartphones hergestellte und Hardwaremäßig vorprogrammiert.
Ich hoffe dir damit etwas geholfen zu haben.
MfG
der LEGORENTNER

Die MC-Hersteller bieten meistens Evalboards an, mit denen man herumspielen kann. Dort findest du auch die „Debugger“ und „Programmer“ um deine Software auszuprobieren.
Hersteller sind neben vielen anderen:
Microchip, Fairchild, ST,… musst du einfach mal Googeln.
Dein Handy kannst du verwenden. Dazu musst du versuchen die Bauteilbezeichnung und Hersteller von den Peripherien heraus zu bekommen, dann kannst du dir die Datenblätter besorgen und deinen eigenen Prozessor anlöten - den MC von deinem Handy kannst du wahrscheinlich nicht verwenden.
Viel Erfolg und vor allem: Viel Spaß beim ausprobieren.

Hallo Felix,

>Mein geplanntes Projekt:
>Ich würde gerne eine kleine Drohne/ Quadrocopter >bauen die sich selbst in der Luft ausbalanciert.

Wenn Du das wirklich alles(!) selbst entwickeltn willst (aus Freude an dem Projekt/der Technik, oder aus sonstwelchen Gründen) - Respekt.
Ich hatte mich vor Jahren schon einmal selbst damit befasst; ist aber liegengeblieben. Heute würde ich das nicht mehr komplett von Grund auf neu/selber entwicklen, sondern Teile einer erprobten Plattform verwenden (z.B. http://www.mikrokopter.de).

>Jetz zu meiner Frage:
>Was brauch ich „alles“ um Microcontroller zu programmieren?

Das wichtigste: Du musst Dich als Nicht-Professioneller für eine MC-Plattform/Hersteller entscheiden. Du wirst es nur schwer (und mit finanziellem Einsatz) schaffen, mehr als nur eine Plattform/Hersteller zu beherrschen.

Eine kleine Auswahl: Atmel (atmel.com), PIC (microchip.com/), ARM (verschiedene), MSP (ti.com),…

Gute Quelle zum anlesen: http://www.mikrocontroller.net/

Was brauchst Du:
* Onlinequellen
* Bücher
* Funktionierende Beispiele, wenn Du wirklich bei NULL anfängst
* C/ASM Kenntnisse; mit Basic-Dialekten (z.B. BASCOM) wirst Du m.E. bei einem Flugkörper-Projekt nicht weit kommen.
* Eine Entwicklungsplattform für die Zielarchitektur.
(=fertiges Board mit I/O und Programmierinterface)
* Entwicklungssoftware (je nach Zielarchitektur) [IDE, Compiler, Debugger, Programmer]
* Um ein bisschen Hardware-verarbeitung (Löststation, Messgeräte aller Art) wirst Du m.E. nicht herumkommen (wenn nicht schon vorhanden)

>kann ich jede CPU nehmen?
eine CPU ist in einem MC enthalten; der Mehrwert eines MC macht aber die Vielfalt aus.
Alleine bei den Atmels/Pics gibt es jeweils zig Varianten (8,16,32Bit CPU, Anzahl I/O, Timer, A/D, UART, USB,…)

>Wie stelle ich eine Schnitstelle zwischen meinem >Computer und meinen Baustein her? (RS232, USB)
Im besten Fall kann der MC direkt mit der Aussenwelt kommunizieren; neben der Hardware (RS232|Tx/Rx, oder USB bei den ftdichip.com) brauchst Du natürlich noch eine Software. Im Falle des Programmierens des MC stellen die MC entsprechende Programmierschnittstellen oder Loader zur Verfügung.

> Gibt es eine Platinenlayout für eine art >Diagnosebaord, mit meheren I/Os (am besten auch 2 >Analoge), an dem man einfache Versuchsaufbauten / >LED’s anschliesen kann.
Empfehlung meinerseits:
Schaue Dir http://www.arduino.cc/ an.
Hat eine grosse Fan-Gemeinde (falls Dir das wichtig ist) und passt von der MC-Familie (Atmel) zu http://www.mikrokopter.de.

Es gibt aber von jedem Hersteller direkt oder ThirdParty Entwicklungsboards (siehe z.B. http://www.mikrocontroller.net/).

>verrückter) Gedankengang meiner seits.
Wenn Du einen Zugang zu einer Entwicklungssoftware (IDE/Compiler; Programmer) und der entsprechenden Hardware (evtl via JTAG Interface) hast [woran es vermutlich scheitern wird], ist das nicht unmöglich…

Viele Grüße, Stephan

Danke für die Tipps die Webseiten lese ich mir heute Abend mal in Zeit durch.

und dann je nach Geschmack Assembler oder C.

Ich nehm lieber C da schon ein grundwiessen vorhanden ist.

Und auf jeden fall nochmal danke für deine Antwort

)

Ok danke für die Antwort :wink:
soweit ich mich jetz schon endschieden habe wird es das Arduino startet kit.

und Danke für deine Antwort :wink:

felix

Wenn Du das wirklich alles(!) selbst entwickeltn willst (aus
Freude an dem Projekt/der Technik, oder aus sonstwelchen
Gründen) - Respekt.

Würd sagen ein großteil wegen dem Spaßfaktor und anderer seits find ich Problemstellungen lösen meistens Toll. Zudem vollende ich gerade meine Ausbildung zum Elektroniker und habe öfters ein bisschen Zeit auf der Arbeit zum basteln daher kommt auch der gedanke :wink:
Ich würde gerne das Projekt weitgehend frei entwerfen zumindest was das Programm angeht wegen der Platine und dem aufbau des Quatrocoptors würd ich mich an ein schon bestehendes Projekt aus dem Internet anlehnen.

>Jetz zu meiner Frage:
>Was brauch ich „alles“ um Microcontroller zu programmieren?

* Funktionierende Beispiele, wenn Du wirklich bei NULL
anfängst

Ja,ich fange bei Null an, wollte mir eigentlich auch zuerst ein kleines Testmodul bauen zum experimentieren z.B. Motoransteuern oder Analogwertverarbeitung

* C/ASM Kenntnisse; mit Basic-Dialekten (z.B. BASCOM) wirst Du
m.E. bei einem Flugkörper-Projekt nicht weit kommen.

C kentnisse sind vorhanden wen auch nicht viele, arbeite aber bereits daran :wink:

* Um ein bisschen Hardware-verarbeitung (Löststation,
Messgeräte aller Art) wirst Du m.E. nicht herumkommen (wenn
nicht schon vorhanden)

Ist vorhanden :smile:

Empfehlung meinerseits:
Schaue Dir http://www.arduino.cc/ an.
Hat eine grosse Fan-Gemeinde (falls Dir das wichtig ist) und
passt von der MC-Familie (Atmel) zu http://www.mikrokopter.de.

Der MC wirds wahrscheinlich werden:wink:

Danke für deine Antwort

gruß :wink:

Hi,

die bevorzugte Schnittstelle zwischen Microcontroller und PC ist RS232. Falls dein PC oder Laptop so einen Anschluss nicht hat, kannst du auch einen RS232 zu USB-Adapter verwenden. Das klappt in den meisten Fällen problemlos.

Ich habe den Microcontroller damals in der Berufsschule im Unterricht durchgenommen. Wir haben mit Assembler und später mit C programmiert.

Du solltes da also gewisse Kenntnisse einer der beiden Sprachen haben. Bei Assembler musst du halt die Bits von Hand durch die Gegend schieben und in die verschieden Register oder auf die Anschlüsse schreiben. Das ist ziemlich mühsam. Wenn du es kannst, würde ich eher zu C raten (aber die Kenntnisse, die man durch Assembler erhält sind halt schon hilfreich).

Das mit dem Smartphone wird wohl nichts werden (kann mich aber auch irren). Mir fällt spontan keine Idee ein, wie man da das Programm draufbekommen sollte und dann ist immer noch die Frage, ob die Architektur der CPU das mitmacht.

Apropos CPU: Du brauchst einen zur Architektur der CPU passenden Compiler und eine Entwicklungsumgebung. Wir haben das Programm µVision der Firma Keil benutzt (das ist bei kleineren Programmen kostenlos).

Für das Programm und alles Weitere, möchte ich dich auf die Webseite von Herrn Kraus, den Microtontroller-Papst an meiner Schule verweisen:

http://www.elektronikschule.de/~krausg/

Da findest du alles, vom µVision, über Microcontroller-Bausätze, bis zu Preisen, Anleitungen, Datenblättern und Dokumentation fürs Programmieren mit Assembler des jeweiligen Boards.

Am besten schreibst du mal Herrn Kraus an und lässt dich beraten (die Mailadresse ist auch auf der Webseite).

Die Bausätze funktionieren wirklich gut (hab selber schon einen zusammengelötet) und sind auch gar nicht soooo teuer. Einfach mal durcklicken und anschreiben.

So, jetzt hast du erstmal was zu stöbern. Viel Spaß dabei.