Forum

Einloggen | Registrieren | RSS  

DH3FAA

E-Mail

31.12.2017,
11:40
 

Mikrocontroller (Elektronik)

Hallo
Kennt jemand eine Möglichkeit, Miktocontroller zu programmieren, ohne vorher
aufwendig irgendeine Programmiersprache lernen zu müssen?
Ich bin mir nicht sicher, ob ich dieses abstrakte Thema mit meinen 69 Windungen
noch erlernen kann.

bastelix(R)

06.01.2018,
23:27

@ DH3FAA

Mikrocontroller

» So habe ich mir z.B. mit dem Eintritt ins Rentenalter
» eine Schreinderei eingrichtet und arbeite nun mit Holz (Möbel und
» Türen/Fenster).
Schreinern ist auch ein schönes Hobby. Damit hab ich auch angefangen, bisher nur etwas Möbel erweitern (mehr Fachböden, abschleifen und neu einlassen) oder mal ein Regal fürs Oszi zusammenschustern. Macht aber echt Spaß und ist auch entspannend wenn man den ganzen Tag auf Arbeit vorm Rechner sitzt. Nur der Platz in meiner Werkstatt ist leider sehr begrenzt. Naja ich hab ja noch 30 Jahre bis zur Rente, vielleicht schauts bis dahin etwas anders aus ;-)

» Von Beruf bin ich Elektromeister. Lernen fällt mir grundsätzlich nicht
» schwer, zumal ich Übung darin habe.
Das ist sehr gut. Als IT-ler muss ich von Berufswegen auch immer wieder neues lernen, mir gehts nur beim Lernen für die Hobbies etwas zu langsam.

bastelix(R)

06.01.2018,
22:32

@ xy

Mikrocontroller

» » Als was würdest du BASCOM dann bezeichnen?
» Ein umfangreiche IDE, mit einer Programmiersprache, die an BASIC erinnert.
Ok, können wir uns auf "Eine umfangreiche IDE mit einem BASIC-Dialekt" einigen?

» » Vielleicht noch etwas zu meinem Hintergrund: Ich bastel mit E-Technik (und Holz und Metall) aber nicht mit Informatik. Informatik habe ich studiert
» » (höhere Programmiersprachen waren einer meiner Studienschwerpunkte) und ich arbeite seit 14 Jahren als Softwareentwickler und seit zehn Jahren auch
» » noch als Softwarearchitekt.
» Klar, dass du das anders siehst.
Ja, aber darum denke ich auch, dass ich das einschätzen kann.

Mir ist eben eingefallen, dass Sel mit einem normal gedruckten Buch aufgrund seiner Augen relativ wenig anfangen kann. Aber das Buch gibt es auch als PDF-Download-Version, sogar ein paar Euro günstiger als die gebundene Ausgabe.

DH3FAA

E-Mail

05.01.2018,
14:29

@ bastelix

Mikrocontroller

» Hallo
»
» » Kennt jemand eine Möglichkeit, Miktocontroller zu programmieren, ohne
» vorher aufwendig irgendeine Programmiersprache lernen zu müssen?
» Naja... Eine Programmiersprache wirst du dafür so oder so lernen müssen. So
» schwer ist das aber nicht, weil Programmiersprachen in den meisten Fällen
» relativ simpel gestrickt sind und dir der Compiler recht schnell sagt wenn
» du dich im Ton vergriffen hast ;)
»
» XY hat ja schon den Arduino empfohlen, dem kann ich nur zustimmen. Der
» Arduino wurde ursprünglich entworfen um Gestaltern (Künstler, Designer,
» etc.) ein einfaches Tool an die Hand zu geben etwas mit µCs zu machen. Die
» Community rund um die Arduinos ist recht groß, es gibt also viele
» Beispiele, Tutorials und fertige Bibliotheken für spezielle Aufgaben
» (Displays ansteuern, Sensoren auslesen, ...) Die Programmiersprache des
» Arduino ist eine Untermenge von C++ welche relativ einfach zu erlernen ist
» und wenn man dann etwas über den Tellerrand hinaus programmieren möchte
» könnte man auf der Arduino-Plattform bei C aus dem Vollen und bei C++ fast
» aus dem Vollen Schöpfen ;)
»
» Für den Anfang einen Arduino UNO, damit fährst du vermutlich am besten. Ein
» Lernpaket mit zusätzlichen Bauteilen und einem Buch ist vermutlich nicht
» verkehrt, sofern es das Budget hergibt (soweit ich weiß kosten die ja gerne
» mal fast 100 Euro).
»
» » Ich bin mir nicht sicher, ob ich dieses abstrakte Thema mit meinen 69
» Windungen noch erlernen kann.
» Naja, ein Freund von mir kommt mit seinen 63 Windungen und Arduino sowie
» Raspberry PI recht gut zurecht, das lernen geht halt etwas langsamer. Ein
» Bekannter von dem ist mittlerweile auf dem Raspberry PI verdammt fit - mit
» 85 Windungen. Alter schützt vor lernen nicht ;-)

Hallo
Ja, das Zitat "Alter schützt vor lernen nicht" ist durchaus richtig. Was mich betrifft:
Ich lerne pausenlos irgend etwas. So habe ich mir z.B. mit dem Eintritt ins Rentenalter
eine Schreinderei eingrichtet und arbeite nun mit Holz (Möbel und Türen/Fenster).
Von Beruf bin ich Elektromeister. Lernen fällt mir grundsätzlich nicht schwer, zumal
ich Übung darin habe.

xy(R)

E-Mail

04.01.2018,
17:45

@ bastelix

Mikrocontroller

» Als was würdest du BASCOM dann bezeichnen?

Ein umfangreiche IDE, mit einer Programmiersprache, die an BASIC erinnert.


» Vielleicht noch etwas zu meinem Hintergrund: Ich bastel mit E-Technik (und
» Holz und Metall) aber nicht mit Informatik. Informatik habe ich studiert
» (höhere Programmiersprachen waren einer meiner Studienschwerpunkte) und ich
» arbeite seit 14 Jahren als Softwareentwickler und seit zehn Jahren auch
» noch als Softwarearchitekt.

Klar, dass du das anders siehst.

bastelix(R)

03.01.2018,
22:04

@ xy

Mikrocontroller

» » BASCOM ist ein BASIC-Dialekt für AVRs.
»
» Nein.
Erster Satz auf der Homepage: "BASCOM-AVR© is the original Windows BASIC COMPILER for the AVR family."

Und unten unter Key Benefists: "Structured BASIC with labels."
Quelle: https://www.mcselec.com/index.php?option=com_content&task=view&id=14&Itemid=41

Zudem sind die Syntax und die Definition der Sprachelemente analog zu anderen BASIC-Dialekten.

Als was würdest du BASCOM dann bezeichnen? Die Schlüsselwörter für 1-Wire, CAN, etc. ( https://avrhelp.mcselec.com/functionalreference.htm ) findest du in BASIC-Dialekten für den PC nicht. Da diese laut Doku Schlüsselwörter sind gehören sie zur Programmiersprache, nicht zu einer Bibliothek.

» » Ich rate eher davon ab als
» » µC-Einsteiger auf BASCOM zu setzten. Vorab, ich kenne BASCOM nur von der
» » Beschreibung auf deren Webseiten und einigen Programmen über die ich im
» » Internet gestolpert bin und versucht habe zu lesen aber ich kann BASIC
» » (und noch viele andere Programmiersprachen).
» Du kennst es nicht, weißt aber, dass es für Anfänger ungeeinet ist. Kurios!
Dir muss ich hier unterstellen, dass du das von dir Zitierte absichtlich missverstanden hast ;-)

Ich habe geschrieben, dass ich eher davon abrate auf BASCOM zu setzten. Ich habe auch dazu geschrieben, wie gut ich BASCOM kenne, damit jeder selbst entscheiden kann wie er meine Einschätzung gewichten möchte. Würde ich es definitiv wissen oder hätte gar einen überprüfbaren Beweis dafür, dann hätte ich das auch so geschrieben. Es ist aber nur meine Einschätzung, dass BASCOM nicht unbedingt eine Sprache ist auf die man als Einsteiger setzten sollte. Zu dem Schluss bin ich gekommen, weil ich doch ein paar Jahre Erfahrung mit Programmiersprachen habe, mir nochmal ein paar BASCOM-Programme angeschaut und die Online-Hilfe zu BASCOM gelesen habe ( https://avrhelp.mcselec.com/ ) bevor ich den Beitrag verfasste.

Dass BASIC meiner Meinung nach eine tote Programmiersprache ist, habe ich ja schon geschrieben. Zudem finde ich, dass BASIC (egal welcher Dialekt) zu viele (Low-Level-)Funktionen als Sprachelemente, statt über eine Standardbibliothek, implementiert. Was auch dazu führt, dass der Umfang an Schlüsselwörtern bei BASIC recht aufgebläht ist, verglichen mit anderen Sprachen.

"Structured BASIC with labels." (Quellenangabe siehe oben) bedeutet, dass hier Sprungmarken verwendet werden - der gute alte GOTO-Befehl, dank dem so viel Spaghetticode und schlimmeres geschrieben wurde (Vgl. https://de.wikipedia.org/wiki/Strukturierte_Programmierung ). So einen Programmierstiel sollte sich niemand, vor allem kein Einsteiger, angewöhnen! Sprungmarken sind in einer höheren Programmiersprache einfach nicht mehr akzeptabel.

Zudem hat das Arduino-Ökosystem noch den Vorteil, dass es schon viele Beispiele, Tutorials und fertige Bibliotheken gibt, welches es einem Einsteiger erlaubt auch recht schnell ein Erfolgserlebnis zu haben. Das halte ich für sehr wichtig um für das weiter-lernen und tiefer in das Thema einzusteigen motiviert zu sein.

Sind damit meine Beweggründe etwas nachvollziehbarer beschrieben?

Vielleicht noch etwas zu meinem Hintergrund: Ich bastel mit E-Technik (und Holz und Metall) aber nicht mit Informatik. Informatik habe ich studiert (höhere Programmiersprachen waren einer meiner Studienschwerpunkte) und ich arbeite seit 14 Jahren als Softwareentwickler und seit zehn Jahren auch noch als Softwarearchitekt.
Zudem habe ich schon einigen Leuten programmieren beigebracht, in verschiedenen Sprachen. Auch das beeinflusst meine Einschätzung, aber hier ins Detail zu gehen ist mir ehrlich gesagt zu aufwändig. (Eigentlich bin ich ja auch schreibfaul)

» » BASCOM ist proprietär,
»
» Das stimmt.
Zumindest da sind wir uns schon mal einig :-)

xy(R)

E-Mail

03.01.2018,
08:27

@ bastelix

Mikrocontroller

» BASCOM ist ein BASIC-Dialekt für AVRs.

Nein.

» Ich rate eher davon ab als
» µC-Einsteiger auf BASCOM zu setzten. Vorab, ich kenne BASCOM nur von der
» Beschreibung auf deren Webseiten und einigen Programmen über die ich im
» Internet gestolpert bin und versucht habe zu lesen aber ich kann BASIC (und
» noch viele andere Programmiersprachen).

Du kennst es nicht, weißt aber, dass es für Anfänger ungeeinet ist. Kurios!


» BASCOM ist proprietär,

Das stimmt.

Udo

03.01.2018,
02:08

@ bastelix

Mikrocontroller

Bascom kenne ich auch nur am Rande. Finde es auch nicht so gut.
Was wirklich gut ist, ist MikroBasic. Hier zu finden https://www.mikroe.com/products
Das ist genau so gut wie C. Das ist auch sehr verständlich im gegensatz zu C.
Für einen Anfänger gut geeignet. Die Hardware dazu ist einiges teurer als beim Arduino.
Aber braucht man als Anfänger mehr als ein Steckbrett und Controller ?
Je einfacher die Hardware ist desto schneller kann man loslegen zu programmieren.
Und wenn man dann weitere Hardware dazu nehmen will, dann weis man direkt wie
man es anschließen muß, als wenn man alles auf einen fertigen Board hat, wo man
nicht weis wie es mit einander verschaltet ist.
Am besten ganz klein anfangen. LED zum blinken bringen, biste schon mal ein paar
Tage bis Wochen mit beschäftigt. Und versuche nicht einen fertigen Code zu nehmen.
Dabei lernst du gar nichts. Mache alles selber. Dafür gibt es Datenblätter zu jedem Controller.
Englisch ist natürlich hier zwingend notwendig.

bastelix(R)

03.01.2018,
01:14

@ DH3FAA

Mikrocontroller

Hallo

» Kennt jemand eine Möglichkeit, Miktocontroller zu programmieren, ohne vorher aufwendig irgendeine Programmiersprache lernen zu müssen?
Naja... Eine Programmiersprache wirst du dafür so oder so lernen müssen. So schwer ist das aber nicht, weil Programmiersprachen in den meisten Fällen relativ simpel gestrickt sind und dir der Compiler recht schnell sagt wenn du dich im Ton vergriffen hast ;)

XY hat ja schon den Arduino empfohlen, dem kann ich nur zustimmen. Der Arduino wurde ursprünglich entworfen um Gestaltern (Künstler, Designer, etc.) ein einfaches Tool an die Hand zu geben etwas mit µCs zu machen. Die Community rund um die Arduinos ist recht groß, es gibt also viele Beispiele, Tutorials und fertige Bibliotheken für spezielle Aufgaben (Displays ansteuern, Sensoren auslesen, ...) Die Programmiersprache des Arduino ist eine Untermenge von C++ welche relativ einfach zu erlernen ist und wenn man dann etwas über den Tellerrand hinaus programmieren möchte könnte man auf der Arduino-Plattform bei C aus dem Vollen und bei C++ fast aus dem Vollen Schöpfen ;)

Für den Anfang einen Arduino UNO, damit fährst du vermutlich am besten. Ein Lernpaket mit zusätzlichen Bauteilen und einem Buch ist vermutlich nicht verkehrt, sofern es das Budget hergibt (soweit ich weiß kosten die ja gerne mal fast 100 Euro).

» Ich bin mir nicht sicher, ob ich dieses abstrakte Thema mit meinen 69 Windungen noch erlernen kann.
Naja, ein Freund von mir kommt mit seinen 63 Windungen und Arduino sowie Raspberry PI recht gut zurecht, das lernen geht halt etwas langsamer. Ein Bekannter von dem ist mittlerweile auf dem Raspberry PI verdammt fit - mit 85 Windungen. Alter schützt vor lernen nicht ;-)

bastelix(R)

03.01.2018,
00:32

@ Sel

Mikrocontroller

» BASCOM kannte ich nicht. Und da gugg ich nun auch mal rein.
BASCOM ist ein BASIC-Dialekt für AVRs. Ich rate eher davon ab als µC-Einsteiger auf BASCOM zu setzten. Vorab, ich kenne BASCOM nur von der Beschreibung auf deren Webseiten und einigen Programmen über die ich im Internet gestolpert bin und versucht habe zu lesen aber ich kann BASIC (und noch viele andere Programmiersprachen).

BASCOM ist proprietär, hat keine große Community (auch wenn das sicher viele alte Hasen sehr erfolgreich einsetzten) dadurch kann man nicht auf das große Spektrum an fertigen Bibliotheken zurückgreifen wie es bei Arduino der Fall ist.

Zudem ist BASCOM eben ein BASIC-Dialekt und BASIC ist tot (auch VisualBasic ist nicht vergleichbar mit dem noch existierenden VisualBasic.NET, letzteres hat keine mit BASIC vergleichbare Syntax mehr) und BASIC ist nicht unbedingt eine Sprache mit der man menschenverständlichen Code schreibt. Schon der Zugriff auf PINs/Register ist in BASCOM für ungeübte sehr schwer lesbar, kein vergleicht zu den pinMode/digitalWrite/digitalRead-Funktionen aus dem Arduino-Umfeld. Natürlich kann man auch mit Arduino direkt die Ports in C/C++ ansprechen, was dann genau so schwer verständlich ist wie BASCOM-Code - wenn man das denn unbedingt will ;-)

Du hast geschrieben, dass du mit der Arduino IDE auch schon mal ein bestehendes Programm anpassen kannst aber beim umsetzten eigener Ideen in Code an deine Grenzen stößt. Ich würde eher sagen, dass du noch etwas das algorithmische Denken trainieren musst und etwas mehr Hintergrundwissen brauchst wie denn so ein Prozessor intern funktioniert. Welchen Unterschied machte es da eine andere Programmiersprache zu verwenden?

Einfaches Beispiel:

C/C++
if (Bedingung) {
MachWasIchWill;
}

BASIC/BASCOM
if Bedingung then
MachWasIchWill
end

Was du brauchst steht in dem Part "MachWasIchWill", das drumherum sind nur Kontrollstrukturen die halt von der Syntax der eingesetzten Sprache definiert werden aber nichts mit dem eigentlichen Ziel zu tun haben.

Ich würde dir eher die Lektüre des Buches "C als erste Programmiersprache: Vom Einsteiger zum Fortgeschrittenen" empfehlen. Das Buch erklärt die Grundlagen von C und wie das ganze mit dem Speicher (Heap/Stack) und so weiter funktioniert. Ich finde dieses Buch sehr gut, damit habe ich nicht nur C gelernt, sondern auch viel über die internen Abläufe in einer CPU. Auf der Ebene ist nicht so viel Unterschied zwischen einem AMD Ryzon 64Bit 3GHz und einem ATTiny85 8Bit 8MHz. Wenn du erst mal verstanden hast wie das intern auf der untersten Informatik-Ebene (da sind noch ein paar Abstraktions-Ebenen bis zur obersten E-Technik-Ebene dazwischen) dann kannst du auch deine eigenen Gedanken in Algorithmen formulieren und zu Code bringen.

Und wer jetzt einwenden möchte, dass das Buch nur C behandelt. Ja und? C++ wurde so entworfen, dass C eine gültige Untermenge der C++-Programmiersprache ist und die Arduino-IDE verwendet auch nur eine Untermenge von C++. Man kann in der Arduino-IDE auch wunderbar C-Code für den Arduino schreiben und compilieren. Wenn man erstmal etwas Übung mit C hat und algorithmisch denken kann hat man das bisschen Objektorientierung von C++ für den Arduino recht schnell nachgeholt (und selbst wenn nicht, sauber prozedural programmiert ist immer noch besser als objektorientiert-funktional-dahingewurstelt!) Wenn man dann vollständig C++ lernen möchte ist das doch etwas mehr Arbeit, aber darum geht es hier ja garnicht ;-)

xy(R)

E-Mail

31.12.2017,
19:46

@ Sel

Mikrocontroller

» » » Habe diverse Arduino in der Bastelkiste, die schmoren auf ihre
» » » Anwendung.
» »
» » Vom LKW gefallen?
»
» Nee, 2x original Arduino Uno (kein Chinaimport), ein paar Nano
» (Chinaböller).

Ich meinte wie du zu ihnen gekommen bist.


» » » Ich kam mit meinen 52 Windungen bisher beim Programmieren auf
» » » keinen grünen Zweig.
» »
» » Auch dir: Das klappt schon. Erste Aufgabe: LED blinken lassen.
»
» Blinken, Temperaturanzeige, Spannungsmessung, LCD-Display betreiben... Das
» bekomme ich mit viel Mühe hin. Dazu gibts Scripe, braucht man keinen
» Hirnschmalz. Paar kleine Änderungen im Script schaffe ich auch und die
» Bastelei läuft sogar. Aber zu mehr reicht es nicht, schon gar nicht zum
» eigenen Programmieren meiner Ideen.

Ach je, du wirst sehen, dass das gar nicht so schwer ist.

Sel(R)

E-Mail

Radebeul,
31.12.2017,
18:05

@ xy

Mikrocontroller

» » Habe diverse Arduino in der Bastelkiste, die schmoren auf ihre
» » Anwendung.
»
» Vom LKW gefallen?

Nee, 2x original Arduino Uno (kein Chinaimport), ein paar Nano (Chinaböller).

» » Ich kam mit meinen 52 Windungen bisher beim Programmieren auf
» » keinen grünen Zweig.
»
» Auch dir: Das klappt schon. Erste Aufgabe: LED blinken lassen.

Blinken, Temperaturanzeige, Spannungsmessung, LCD-Display betreiben... Das bekomme ich mit viel Mühe hin. Dazu gibts Scripe, braucht man keinen Hirnschmalz. Paar kleine Änderungen im Script schaffe ich auch und die Bastelei läuft sogar. Aber zu mehr reicht es nicht, schon gar nicht zum eigenen Programmieren meiner Ideen.

LG Sel

xy(R)

E-Mail

31.12.2017,
15:56

@ Sel

Mikrocontroller

» Habe diverse Arduino in der Bastelkiste, die schmoren auf ihre
» Anwendung.

Vom LKW gefallen?


» Ich kam mit meinen 52 Windungen bisher beim Programmieren auf
» keinen grünen Zweig.

Auch dir: Das klappt schon. Erste Aufgabe: LED blinken lassen.

Sel(R)

E-Mail

Radebeul,
31.12.2017,
15:02

@ xy

Mikrocontroller

» » Als Programmer verwende ich diesen hier:
» » http://shop.myavr.de/index.php?sp=article.sp.php&artID=200006
» » Damit kann man ohne spezielles Board direkt in der Schaltung das
» Programm
» » flashen (in den µC schreiben).
»
» Wenn man eh Arduino nimmt:
»
» http://rn-wissen.de/wiki/index.php?title=Arduino
»
»
» Und ich würde glatt zu einem Starterkit mit Arduino Uno raten, die gibts ja
» mit diversen Füllungen.

Danke auch von mir. BASCOM kannte ich nicht. Und da gugg ich nun auch mal rein. Habe diverse Arduino in der Bastelkiste, die schmoren auf ihre Anwendung. Ich kam mit meinen 52 Windungen bisher beim Programmieren auf keinen grünen Zweig.

Was viel hilft, hier nochmal der Link zu einer deutschsprachigen umfassenden Arduino-Referenz: https://www.arduinoforum.de/referenz.php

LG Sel

xy(R)

E-Mail

31.12.2017,
14:54

@ simi7

Mikrocontroller

» Als Programmer verwende ich diesen hier:
» http://shop.myavr.de/index.php?sp=article.sp.php&artID=200006
» Damit kann man ohne spezielles Board direkt in der Schaltung das Programm
» flashen (in den µC schreiben).

Wenn man eh Arduino nimmt:

http://rn-wissen.de/wiki/index.php?title=Arduino


Und ich würde glatt zu einem Starterkit mit Arduino Uno raten, die gibts ja mit diversen Füllungen.

simi7(R)

D Südbrandenburg,
31.12.2017,
14:44
(editiert von simi7
am 31.12.2017 um 14:52)


@ DH3FAA

Mikrocontroller

» » » Ich bin mir nicht sicher, ob ich dieses abstrakte Thema mit meinen 69
» » » Windungen noch erlernen kann.
» »
» » Keine Panik.
» » Ich habs mit 63 Windungen auch geschafft.
» » BASCOM wäre auch meine Empfehlung.
» » Hardware für 15 bis 20 € und los gehts (knallharte Typen machen das auch
» » kostenlos aus der Bastelkiste).
» »
» » Wichtig ist nur dass man dran bleibt, in dem Alter vergisst man frisch
» » gelerntes zu schnell wieder.
» » Der Vorteil bei Bascom ist das schnelle Erfolgserlebnis und das fördert
» ja
» » bekanntlich das Lernen.
»
» Hallo Simi7
» Kannst du mir eine brauchbare Hardware vorschlagen?
» Wo im Internet finde ich entsprechende Anleitung?

Als Programmer verwende ich diesen hier: http://shop.myavr.de/index.php?sp=article.sp.php&artID=200006
Damit kann man ohne spezielles Board direkt in der Schaltung das Programm flashen (in den µC schreiben).
Eine preiswerter Anfang ist ein µC als Steckmodul mit allen Anschlüssen, USB als Stromversorgung und Programmieranschluss (z.B. ebay 252742123829 oder Suchbegriff Arduino nano).

Dazu ist noch ein Steckbrett (Breadboard) für erste einfache Schaltungen sinnvoll, und das übliche Hühnerfutter halt.
Für den ersten Versuch eine LED und ein Widerstand. Quasi das "Hello World" als Blinker.
Dann googeln nach BASCOM und Anfänger.
Die kostenlose Software gibt es hier: https://www.mcselec.com/index.php?option=com_docman&task=doc_download&gid=139

Edit: hab das geklaute Bild schnell mal durch ein eigenes ersetzt.
Auf dem Brett ist noch etwas Zeug drauf was nicht zur Schaltung gehört, aber so geht der Kleinkram nicht verloren ;-)