Forum: Mikrocontroller und Digitale Elektronik Einstieg in µC-Programmierung: Fragen zu UNO R3 usw.


von Wilson (Gast)


Lesenswert?

Guten Moin zusammen,

will jetzt endlich mal mit µC anfangen, hab ne Weile rumgelesen und bin 
beim UNO R3 gelandet, das gibt es sehr günstig oft schon mit Displays, 
wie ihr bestimmt alle eh wisst.

Zunächst die wichtigste Frage: Kann das Teil als Programmer genutzt 
werden oder kann man da nur Codes drauf spielen die nur mit der Hardware 
also mit dem UNO funktionieren?
Ich meine damit, ob man Schaltungen bauen kann, wo man den zuvor im UNO 
programmierten µC einfach in den Sockel stecken kann.

Ich habe eine konkrete Idee für eine Schaltung bei der ich für mich 
teilweise schon länger interessante Dinge probieren kann und womit ich 
jemandem auch noch nen Gefallen tun könnte wenn ichs hinkriege, 
Schulterklopfer sind immer fein, da bleibt auch mehr Platz in den 
Taschen ;)
Also: Ein Thermo- Hygroschalter mit Drehencoder für die Eingabe und das 
Scrollen im Menü auf einem 3310 Display, einfach weil ich zwei davon 
habe und um allgemein Displays ansteuern lernen, ASCII und so, gibt ja 
reichlich Beispielcodes für. Der Sensor wird wohl ein DHT11/22 wegen der 
1-Wire-Programmierung, weil es das Teil oft in den Sets dabei gibt und 
weil man da am öftersten auf Beispiele stößt. Und das Teil soll dann 
natürlich schalten, denk mal so 5-6 Relais.

Könnte man das mit nem UNO machen? Und reichen die Ports(?) des Atmega 
für so ein Vorhaben?

Möchte erstens nicht für jedes Projekt ein neues UNO kaufen und vorallem 
find ich recht unschön fertige Systeme als Basis eigener Projekte zu 
nehmen, ist irgendwie wie Vorgezeichnete Bilder auszumalen aber zum 
Lernen umso besser.

Hoffe könnt mir da helfen,

LG, Wilson

von Peter Pan (Gast)


Lesenswert?

Kann als Programmer genutzt werden. Nähere findest du bei arduino.cc.
Deine Ideen sollte alle ohne weiteres machbar sein. Lediglich bei 3310 
Display bin ich mir nicht sicher. Hab ich bislang nicht gemacht. Habe 
nur die 16x2/16x4 Displays mit I2C. Würde dir nahelegen ein solches 
Display einzusetzen. Du brauchst somit nur 2 Datenleitungen (A4 und A5) 
und es gibt fertige Libs.

Ports hat der Arduino genug. Wenns doch mal knapp wird, Stichwort 
ShiftRegister (ua. 74HC595).

Zu den Encodern kann ich nichts sagen, bislang nicht mit gearbeitet. 
Würde es aber vorerst nicht verneinen.

von Wilson (Gast)


Lesenswert?

Danke Peter.
Cool :) Ja, will ein Set holen wo ein 16x2 oder 16x4 Display bei ist. 
Das soll natürlich alles nach und nach zusammenfinden, experimentiere 
erstmal mit den Sachen einzeln und dann, wenn ich es einigermaßen kann, 
versuch ich alles zusammen zu fügen.

von datasheet (Gast)


Lesenswert?

Ich dachte immer das Arduino ist erfunden worden, um nicht in die 
Mikrocontrollerprogrammierung einsteigen zu müssen. Schließlich nutzt Du 
ja nur die Libs, die ein anderer geschrieben hat. Mit Arduino musst du 
kein Register selber schreiben.
Musste halt mal schauen, ob Du eine Lib für Encoder und eine fürs 3310 
findest. Pass aber auf, das 3310 Display wird mit 3,3V angesteuert.
Viel Spaß bei der "Entwicklung"

Data

von Pickett (Gast)


Lesenswert?

Wilson schrieb:
> Zunächst die wichtigste Frage: Kann das Teil als Programmer genutzt
> werden oder kann man da nur Codes drauf spielen die nur mit der Hardware
> also mit dem UNO funktionieren?
> Ich meine damit, ob man Schaltungen bauen kann, wo man den zuvor im UNO
> programmierten µC einfach in den Sockel stecken kann.

Auf dem UNO R3 steckt ein Atmega328, mit dem man sein Programm testen 
kann. Anschließend kann man diesen auch in einer eigenen Schaltung 
betreiben, die wie der UNO ebenfalls einen 16MHz Quarz hat.

Aber: damit der Atmega ein Programm vom UNO aufgespielt bekommen kann, 
braucht man ein kleines Hilfsprogramm (bootloader), das zuvor in den 
Atmega328 programmiert wurde. Das kann der UNO selber nicht und muß mit 
einem separaten Prommer gemacht werden.
Wenn man einen UNO kauft, ist dieser Bootloader schon im Atmega328 
vorhanden.

> vorallem
> find ich recht unschön fertige Systeme als Basis eigener Projekte zu
> nehmen

Bleib auf dem Teppich. Zum Anfangen ist es schon gut, ein Blinkprogramm 
für eine LED zu haben, mit dem man erste Erfahrungen macht.
Wenn du dann eines Tages merkst, was mit dem UNO-Paket alles nicht geht, 
kannst du das Board auch mit anderen Entwicklungsumgebungen nutzen.

von Wilson (Gast)


Lesenswert?

Ouh man, wusste, dass sowas kommt :P Ich dachte ich blick da langsam 
durch aber...
So wie ich es verstanden hab ist Arduino doch eine andere Möglichkeit 
AtMega zu programmieren, sowie AVR? Und dass man die Libs selbst 
erstellt, nur eben für den Anfang fertiges verwendet.

Was ich lernen will steht ja eigentlich oben, Programmieren von 
Mikrocontrollern und das Realisieren eigener Schaltungen, dachte schon 
an PIC hab mich dann aber für AtMega entschieden, weil es verbreiteter 
zu sein scheint.

Könnt ihr mir bitte helfen da einzusteigen? Hab jetzt auch nicht die 
dicke Kohle, deswegen scheint das UNO perfekt für mich, aber 
ISP-Programmer, z.B. STK500 kosten ja auch sowas um den Dreh.
UNO ist aber auch eine fertige Schaltung, sodass man die Fehler auf die 
Programmierung eingrenzen kann. Was von beiden wäre Sinnvoller?

Ich hab mir nach und nach VB.NET und HTML beigebracht und bin grad bei 
C/C++ zu lernen aber noch relativ am Anfang, das ist mit ein Grund warum 
AtMega.

Denke mal ihr seht schon, dass ich keinen richtigen Durchblick habe, 
deswegen die Bitte mir zu helfen die richtige Hardware zu finden, 
ausgehend aus der oben beschriebenen Idee, hab da noch ein paar mehr, 
die auf den einzelnen Komponenten und unterschiedlichen Kombinationen 
basieren.

LG Wilson

von Pickett (Gast)


Lesenswert?

Wilson schrieb:
> Hab jetzt auch nicht die
> dicke Kohle, deswegen scheint das UNO perfekt für mich,

Dann laß die ganzen Erweiterungen weg und beschränke dich nur auf das 
UNO-Board. Die IDE dazu kannst du schon vorher herrunterladen und 
ansehen. Beispiele sind schon dabei und sind eben Spiele, die schnell 
langweilig werden aber auch motivieren können.

Um Ausgaben anzuzeigen, gibt es in der IDE unter Tools->SerialMonitor 
die Möglichkeit, sich Werte auf dem PC anzeigen zu lassen.

Du kannst deine Programme auch von Anfang an in C schreiben, Arduino 
nutzt im Kern ein WIN-AVR. C-Beispiele gibt es hier im AVR-Tutorial.
Irgendwann kommt dann der Punkt, wo du einen ISP-Prommer und AVR-Studio 
haben möchtest. Du mußt nur einfach irgendwo anfangen.

von Wilson (Gast)


Lesenswert?

Genau, erstmal irgendwo anfangen. Super Antwort, danke Pickett. Dann hab 
ich da schon richtig gelegen, für den Anfang ist es ausbaubar genug und 
ich kann mich auf die Programmierung konzentrieren.

Was ist eigentlich mit der Aussage von datasheet, dass Adruino da ist um 
µC nicht lernen zu müssen? Verwirrt mich doch irgendwie.

Danke an alle

von Markus (Gast)


Lesenswert?

Wilson schrieb:
> Hab jetzt auch nicht die
> dicke Kohle, deswegen scheint das UNO perfekt für mich, aber
> ISP-Programmer, z.B. STK500 kosten ja auch sowas um den Dreh.

Den Arduino könntest du bei Bedarf auch mal ISP Programmer verwenden:
http://arduino.cc/en/Tutorial/ArduinoISP
http://arduino.cc/en/Tutorial/ArduinoToBreadboard

von Pickett (Gast)


Lesenswert?

Wilson schrieb:
> Was ist eigentlich mit der Aussage von datasheet, dass Adruino da ist um
> µC nicht lernen zu müssen? Verwirrt mich doch irgendwie.

Betrachte die Software von Arduino als Babysprache: Mama, Papa, Auto, 
Pommes,...
Wer mit diesen Begriffen im Leben klarkommt, dem reicht Arduino.

Wenn man den Prozessor richtig nutzen möchte, muß man sich mit seinem 
Innenleben beschäftigen und ihn entsprechend programmieren.
Das wirst du nachvollziehen können, sobald du ein echtes Problem hast, 
zum Beispiel deinen Drehencoder!

Arduino wird dich aber dann auch nicht davon abhalten, effektiver zu 
programmieren. Die Hardware als solche ist in Ordnung, um auch in 
Musterstücken eingesetzt zu werden. Eine Datenausgabe auf den PC per USB 
ist damit sogar sehr einfach.

von Wilson (Gast)


Lesenswert?

Ok. Und die Adruino Software beinhaltet dann ein paar Libs, richtig? Hab 
ne Adruino Simulator App aufm Handy, da kann ich aber die vorgefertigten 
Codes(Libs?) nur an bestimmten Stellen bearbeiten, das ist in der 
richtigen Adruino Software nicht so, oder?

von Stephan B. (matrixstorm)


Lesenswert?


von Pickett (Gast)


Lesenswert?

Wilson schrieb:
> Und die Adruino Software beinhaltet dann ein paar Libs, richtig? Hab
> ne Adruino Simulator App aufm Handy, da kann ich aber die vorgefertigten
> Codes(Libs?) nur an bestimmten Stellen bearbeiten

Vergiss zunächst das ganze Zeug mit den LIBs und nimm einen richtigen 
PC.
Einen Arduino UNO R3, ein paar LEDs mit 1k Vorwiderstand + Versandkosten 
kosten rund 30€, abgesehen von irgendwelchen Billigheimern bei igitt.

Fang damit an und stelle dann die Fragen, die du jetzt noch garnicht 
kennst.

von Wilson (Gast)


Lesenswert?

Hehe, cool, bin schon auf den Beitrag gestoßen und mit dem Gedanken 
gespielt dich mal zu PMen, Stephan, wollt mich nach dem Verputzen der 
Pizza registrieren :P Aber dann kann ich dich auch hier direkt fragen: 
Du hast ja bestimmt mein Vorhaben und meine Idee gelesen, kann ich mit 
deinem Board sowas realisieren? Brauche ich da zusätzliche Hardware, 
also ausser elektronischen Bauteilen, Breadboard und so, irgendwelche 
USB-Adapter zum Beispiel? Kann man darauf Entwickeln und den AtMega in 
eigenen Schaltungen verbauen? Komme noch mit den ganzen Fachbegriffen 
nicht ganz klar.

von Wilson (Gast)


Lesenswert?

@Pickett
Nen PC ist schon klar, war ja nurn Simulator, wollt mal sehen wie das 
aussieht, aber ausser ein paar fertige Codes ansehen und per Mail 
versenden kann man da nichts machen, zum Glück hab ich die nicht 
gekauft.
Also kann ich den die Antwort von datasheet auslassen? Hab halt keine 
Ahnung und nehme alles ernst was man mir hier schreibt.

Was sagst du zu Stephans Board?

von Stephan B. (matrixstorm)


Lesenswert?

Wilson schrieb:
> Hehe, cool, bin schon auf den Beitrag gestoßen und mit dem
> Gedanken
> gespielt dich mal zu PMen, Stephan, wollt mich nach dem Verputzen der
> Pizza registrieren :P Aber dann kann ich dich auch hier direkt fragen:
> Du hast ja bestimmt mein Vorhaben und meine Idee gelesen, kann ich mit
> deinem Board sowas realisieren? Brauche ich da zusätzliche Hardware,
> also ausser elektronischen Bauteilen, Breadboard und so, irgendwelche
> USB-Adapter zum Beispiel? Kann man darauf Entwickeln und den AtMega in
> eigenen Schaltungen verbauen? Komme noch mit den ganzen Fachbegriffen
> nicht ganz klar.

Also kurz: Ja.
Fuer viele Dinge gibt es (bzw. hab ich) auch bereits Implementierungen.

Was ich noch nicht gemacht habe, ist der Hygrosensor - aber das sollte 
GPIO Pillepalle sein g

Du kannst das Board auch in "festen" Schaltungen verwenden, entweder so 
als Klotz oder eben nur die Schematic.
Fuer groessere Projekte empfehle ich dir ein paar 74HC595 um die Anzahl 
deiner OUT-Ports zu erhohen - die Dinger sind spottbillig und koennen 
kaskadiert werden.

...Immer her mit deinen Fragen...

MfG

von Stephan B. (matrixstorm)


Lesenswert?

Achso: Extra USB Adapter is keiner nötig (fuer keins der Features).

von Pickett (Gast)


Lesenswert?

Wilson schrieb:
> Was sagst du zu Stephans Board?

Ich kann dir auch meine Boards zeigen, andere zeigen ihre Boards und du 
wirst dich nie entscheiden können :-)

> Fuer groessere Projekte empfehle ich dir ein paar 74HC595 um die Anzahl
> deiner OUT-Ports zu erhohen - die Dinger sind spottbillig und koennen
> kaskadiert werden.

Das ist doch zunächst einmal völlig wurscht! Die Probleme werden gelöst, 
wenn sie sich stellen und nicht Monate vorab.


>> Was ganz spottenbillig ist, ist ein STM32F4-discovery board. Das kostet
>> nur die Hälfte und ist 100x schneller .....

>> Nimm besser einen PIC. Damit kann man ...

von Wilson W. (wilson)


Lesenswert?

Da hast du schon recht, ich wollte hier auch nicht allgemein fragen, ob 
jemand mir was aufbauen kann und hab mich dann für was Fertiges 
entschieden. Ich würde auf jedenfall lieber etwas kaufen, wo ich auch 
den Entwickler zu sprechen bekomme und wenn er auch noch schreibt "her 
mit den Fragen", dann denke ich schon ernsthaft darüber nach, ob ich mir 
nicht bei ihm das kaufe, weil er es auch noch bei Ebay anbietet.

Dann frag ich jetzt mal einfach direkt, ob mir einer eine Schaltung 
entwickeln/bauen kann, mit der ich all das machen kann was ich 
beschrieben hab oder ob mir Stefphans Board dafür reichen würde? Sind ja 
verschiedene "Lern"-Stufen, von 1-Wire bis Drehencoder, klar, dass ich 
mit Blink-LED anfange. Das Wichtigste ist halt, dass ich darin 
entwickeln und das dann in eigenen Schaltungen verbauen kann. Die 
Elektronik-Kentnisse und andere nötigen Fähigkeiten hab ich schon, ich 
glaub deswegen denk ich auch mal wieder zu kompliziert ;) Stephans 
Schaltung kann ich ja dann auch in die Schaltungen integrieren, die 
Bauteile hat man da, will am besten was Fertiges, um Fehler 
hardwareseitig zu vermeiden.

Stephan du verkaufst ja auch fertige Boards, machst du die auf 
Lochraster oder ätzt du die Platinen?

von Stephan B. (matrixstorm)


Lesenswert?

Hi.

Die Schaltung ist fuer Anfaenger konzipiert - daher Lochraster um es 
einfach zu halten.
Man kann sich im Löten ueben, braucht aber weder zu Aetzen noch zu 
Bohren, und kann die grossen Steckmontage Bauteile verwenden.

Letztendlich macht es die Schaltung, obwohl etwas groesser dadurch, auch 
sehr preiswert. Ggf. kommt irgendwann einmal eine SMD Version - mit dem 
Gedanken spiele ich zumindest schon ;-)

Das Board selbst ist zum Lehrnen, Probieren, Experimentieren und 
letztlich Ueben gedacht. Du steckst es auf ein Steckbrett und kannst mit 
basteln loslegen. Strom und Daten kommen aus dem USB.
Willst du die Firmware aendern, wird Knöpfchen gedrueckt und vom PC aus 
ne' neue reingeschrieben...

Grenzen sind dir nur durch die Anzahl der (freien) PINs und des (freien) 
Flashspeichers/RAM gesetzt.
Für ein schrittweise herantasten/ueben duerfte es deinen Zwecken ideal 
sein.
Ob es für deine finale Schaltung reicht, musst du abschaetzen:

  * Wie viele PINs brauchst du fuer den Drehschalter
  * Wie viele PINs brauchst du fuer externe Sensoren
  * Welches Interface fuer die Sensoren / das Display (in dem Fall SPI)
  * Wie kompliziert soll alles miteinander Wechselwirken (Speicher)

Wenn du dazu noch keine Erfahrungen hast - dann spiel erstmal mit jeder 
Komponente fuer sich, und lerne dabei wie sich alles zusammenfuegen 
laesst.

MfG

Nachtrag: Du kannst natuerlich auch das USB Inerface mit etwas know-how 
in deinen Firmwares verwenden, um es z.B. als DEBUG-ausgabe zu nutzen.

von Wilson W. (wilson)


Lesenswert?

Löten üben brauch ich glaub ich net mehr ;) Aber stimmt schon, Platine 
ätzen lassen kann ich mir auch hinterher, das Wichtigere sind erstmal 
die Komponenten und ein AtMega mit passendem Bootloader.
Du hast nicht zufällig PayPal? Zumindest bei deiner Auktion ist nur 
Überweisung angegeben.

Also soviel wie ich jetzt hier gelernt hab, ist ein IS-Programmer das 
Erste was man braucht, dann baut man eine Schnittstelle zum AtMega, um 
den Bootloader draufzuladen, dann eine Schnittstelle wie das 
tinyUSBboard um zu Programmieren, aber als Anfänger sollte man da erst 
anfangen, weil Bootloader noch zu kompliziert ist, also kann man sich 
einen IS-Programmer erstmal sparen, richtig?

MfG

Edith: Ja, so hab ich das auch vor, erstmal die einfachste Schaltung 
aufbauen, eben ne Blink-LED und dann rumprobieren, "was passiert 
wenn...", ein bisschen wenn-dann usw.

von Stephan B. (matrixstorm)


Lesenswert?

Hi.

Ja, wenn man einen Bootloader wie beim tinyUSBboard hat - kann man das 
Board auch in einen ISP flashen. (Siehe Beispiele).

Wilson W. schrieb:
> Also soviel wie ich jetzt hier gelernt hab, ist ein IS-Programmer das
> Erste was man braucht

Fuer unsere Freunde im Ausland bzw. biete ich ja nur gelegenlich an:

http://matrixstorm.com/avr/tinyusbboard/#chickenoregg


MfG Stephan

von Wilson W. (wilson)


Lesenswert?

Hi,

Also kann man ein tinyUSBboard so flashen, dass man ihn als ISP nutzen 
kann? Hab das auf deiner Seite schon gelesen aber nicht richtig 
verstanden. Das wäre ja natürlich umso besser.

Willst du mir evtl. ein Angebot für zwei Sets machen oder ist es dir 
lieber, wenn ich biete? Aber da ist ja leider auch nur eins, kannst ja 
auch ein Sofort-Kaufen Angebot reinstellen 2 Sets für 8€ ohne Versand, 
wäre am einfachsten und sichersten für beide, oder? Wie geschrieben, ich 
hab extra dafür noch ein bisschen Kohle bei PP gelassen, muss heute 
Abend aber eh noch zur Bank, dann müssten wirs aber schnell klären, wenn 
du überhaupt Interesse hast :P

Das mit dem "chicken or egg" hab ich auch schon gelesen, daher war ja 
auch meine Schlussfolgerung, ohne Bootloader gehts nicht, der muss 
zuerst drauf.

MfG

von Eumel (Gast)


Lesenswert?

Wilson schrieb:
> will jetzt endlich mal mit µC anfangen, hab ne Weile rumgelesen und bin
> beim UNO R3 gelandet, das gibt es sehr günstig oft schon mit Displays,
> wie ihr bestimmt alle eh wisst.

http://processors.wiki.ti.com/index.php/MSP430_LaunchPad

Günstiger, ist ein direkt unterstützer Programmer inklusive Debugger und 
ne bessere Ausstattung haben die Chips auch. Enjoy.

von Stephan B. (matrixstorm)


Lesenswert?

Wilson W. schrieb:
> Hi,
>
> Also kann man ein tinyUSBboard so flashen, dass man ihn als ISP nutzen
> kann?

Ja, man kann es in einen USBasp flashen.

Es arbeitet dann wie: http://www.fischl.de/usbasp/
Die Firmware dazu gibt es unter:
http://matrixstorm.com/avr/tinyusbboard/#firmwares

Der Bootloader "emuliert" das gleiche Protokoll, sodass man zum 
pogrammieren des Boards selbst keine andere Software braucht...

MfG

von Wilson W. (wilson)


Lesenswert?

Ok, danke.

von Stephan B. (matrixstorm)


Lesenswert?

Btw. wenn du Ideen hast wie man bestimme Dinge verstaendlicher erklaeren 
kann, oder du gar eine bessere Erklaerung hast:

Dann bitte her damit - ich bin sehr daran interessiert die Seite so 
verstaendlich wie moeglich zu machen.

MfG

von Wilson W. (wilson)


Lesenswert?

Also vom Aufbau her ist die Seite gut, klassisch übersichtlich, evtl. 
das Eagle-Projekt oder womit du das gemacht hast, zum Download anbieten, 
Schaltplan, Platinenlayout.
Grad merk ich noch, du hast bei Revision3: Schaltplan, Layout und dann 
Bilder, davor aber hast du erst Pictures, dann Revison2: Schaltplan, 
Layout, keine Bilder, vielleicht einfach Pictures: weglassen, die Bilder 
bei Revision2: einordnen, nehme mal an die gehören dazu, und die 
Schriftgröße der Revisionen so groß machen wie Pictures: oder bzw. 
Pictures: zum Kategorieabschnitt Circuits: oder so umbenennen. Hoffe das 
war jetzt nicht zuviel Klugscheisserei :P
Zum Inhalt kann ich nur sagen, es sind mehr Informationen als ich sie 
gerade verarbeiten kann, wenn ich sowas von dir kriege und ich damit 
lang genug geübt hab, geb ich dir gerne Feedback, ob es im Nachhinein 
hilfreich oder verwirrend war, bzw. was davon was.

MfG

von Stephan B. (matrixstorm)


Lesenswert?

Danke fuer die Anmerkungen.

Habe bereits einiges etwas umgebaut.

MfG

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.