Das wird ein bisschen lang, da ich alle offensichtlichen Fragen abdecken wollte, bevor sie auftauchen, einige meiner Überlegungen begründen und beweisen wollte, dass ich meine Vorarbeit geleistet habe! Wenn die Zeit knapp ist, springen Sie zum Abschnitt tl;dr, um zum Fleisch zu gelangen. Das obige Banner sagt auch, dass dies wie ein subjektiver Beitrag aussieht, also werde ich den Beitrag etwas erweitern, um genau einzugrenzen, was ich erreichen möchte.
Ich habe mich wirklich gut in Stackexchange umgesehen und es gibt ähnliche Fragen wie meine, und ich fand die Frage Beginn der PIC-Programmierung nützlich, aber die meisten wurden vor der neuen Version von MPLAB X gestellt und beantwortet, die jetzt auf Open basiert Quelle NetBeans IDE, was eine ziemliche Veränderung ist, also das Gleichgewicht kippen könnte.
Hintergrund: Ich habe mir kürzlich einen Arduino gekauft und da ich noch nie mit MCU herumgespielt habe und meine Programmierkenntnisse auf PHP beschränkt waren, war ich mit den Ergebnissen sehr zufrieden.
Es gibt ein paar "lustige" Dinge, mit denen ich anfangen möchte, bevor es mit dem "richtigen" Zeug losgeht ...
Endlich will ich....
Bauen Sie einen Datenlogger, der die Status- und Laufzeitdaten der NIBE-Wärmepumpe von der externen F2015-Einheit zum SMO 05-Controller abfängt und protokolliert, der über ein CAT5-Kabel läuft (sobald ich das Datenprotokoll herausgefunden habe!).
Verbinden Sie sich mit dem IR-Schnittstellen-„Auge“ meines Stromzählers und protokollieren Sie stündliche Messwerte des tatsächlichen Energieverbrauchs (im Gegensatz zu den sehr ungenauen, aber billigen Clamp-the-Wire-Monitoren).
Sieht so aus, als hätte ich hier eine Auswahl:
Arduino/Freeduino: Unglaublich schneller Start – ich hatte es innerhalb weniger Stunden nach dem Öffnen der Box die Worte „bereit“, dann „Taste hoch“ oder „Taste runter“ (je nach Zustand) mit der PCM-Bibliothek, dem Lautsprecher und dem Uno sprechen lassen und mit 30 Zeilen Code. Aber für jedes gleichzeitige Projekt benötigen Sie ein Arduino.
**Die Picaxe **- verwendet PicBasic und spezielle vorinstallierte PIC-Chips. Das System ist unglaublich billig und schnell zu erlernen, ermöglicht es, den programmierten Chip herauszunehmen und eigenständig in einem Steckbrett zu verwenden, aber irgendwann muss ich über PICBasic hinaus expandieren.
Sogar ich konnte mit diesen ersten beiden Optionen fertig werden. Hauptsächlich, weil jeder eine vereinfachte Hochsprache zu lernen hat und eine einfache All-in-on-IDE/Compiler/Programmierer.
Eigenständiger PIC : Dann gibt es den Standard-PIC-Chip für 2 £ und den supergünstigen K150-Programmierer, mit dem der programmierte Chip herausgenommen und eigenständig in einem Steckbrett verwendet werden kann.
Als also gestern Morgen ein K150, Kabel, CD mit Hex-Flashing-Software und ein paar PIC16F690-Chips ankamen, fing ich mit einem leeren Blatt an. Ich kann PHP schreiben und verstehe die Grundlagen objektorientierter Sprachen und habe am College ein wenig C gelernt, genug, um mich schneller mit dem Arduino zu beschäftigen, als wenn ich nichts getan hätte. Aber ich verstehe auch, dass Arduinos 'Wiring' eine extrem vereinfachte Obermenge von C ist, also muss ich natürlich mehr runter und schmutziger werden, um den K150 zu programmieren. Eines Tages vielleicht Assembler, aber um eine Hühnerstalltür zu öffnen, wenn es hell wird, bin ich ziemlich sicher, dass C ausreichen wird, um anzufangen!
Das Problem, das ich habe, ist .... so viele Möglichkeiten!
Ich hoffe, dass ich mit dieser 12-Blatt-Tabelle mit über 200 Einträgen und Links zu verschiedenen Arten von Projekten, Referenz- und Hilfeseiten usw. bewiesen habe, dass ich meine Hausaufgaben gemacht habe. Laut Chrome habe ich an dem Tag, an dem ich das K150 bekam, 118 verwandte Seiten angesehen und über 330 relevante Seiten in den letzten 4 Tagen. Also ich habe definitiv etwas Vorarbeit geleistet!
Ja, ich weiß, dass ich das PicKit3 kaufen sollte und dass der Kauf des K150 mich irgendwie zur Brut Satans macht, wie die Antworten anderer K150-Besitzer in Foren zeigen. Eines Tages werde ich es sicher kaufen, aber im Moment fange ich nur als Hobby an. Ich habe einen offiziellen Arduino gekauft, also habe ich meine Seele auf diese Weise gerettet!
tl;dr - genug Geschwätz, was ist die Frage?!
So wie ich es verstehe, kann ich einen PIC-Chip mit dem K150 oder so ziemlich jedem kompatiblen Programmierer programmieren, solange ich Hex kompilieren kann.
Wenn ich mich nicht irre, habe ich folgende Möglichkeiten:
MPLAB X und PIKlab sind beides kostenlose IDEs, die mit den meisten PIC-Chips von Microchips kompatibel sind.
Hi-Tech C Compiler, Sourceboost, Codeblocks und SDCC sind alle Microchips-kompatible Compiler, einige kostenlos wie SDCC, einige kostenlos mit eingeschränkter Funktionalität, einige nur kostenlos für einen bestimmten Chip.
Dann gibt es PicBasic Pro , 99 £ für die vollständige Suite oder 30 £ für die Studentenausgabe des Compilers allein. Im Moment sind 99 £ ein ziemlich hoher Betrag, um „ein Spiel zu haben“ – etwas, was Picbasic über C empfehlen könnte?
Ich habe mir auch einige der offiziellen und inoffiziellen Trainingsvideos für einige der oben genannten angesehen.
Zu diesem Zeitpunkt ist meine Absicht nicht die Weltherrschaft oder der nächste RaspberryPI, es ist in der Lage zu sein, eine LED blinken zu lassen, vielleicht Tastatureingaben entgegenzunehmen, vielleicht sogar einen LED-Würfel mit Charlieplex für Weihnachten zu machen.
Ich komme in die Jahre und habe nur begrenzt Verstand und Zeit; Das Offensichtliche wäre, die Zeit zu haben, alle oben genannten Dinge auszuprobieren und zu sehen, was zu mir passt. Nicht wirklich praktisch.
Ich muss eine auswählen, sie lernen und dabei bleiben. Ja, Google war mein Freund, aber viele der Bewertungen dieser IDEs und Compiler beziehen sich auf beendete alte Versionen. Ich habe sogar Links zu Seiten bei Demon Internet und Geocities gefunden - 1994-1996 scheint der Höhepunkt der Aktivität für Diskussionen über das Brennen Ihres eigenen PIC-Codes zu sein. Und in 8 Jahren ändert sich viel.
Also meine Frage wäre:
Wenn SIE jetzt anfangen würden, welche IDE und welchen Compiler würden Sie wählen und warum?
Danke und Entschuldigung, dass der Beitrag so lang geworden ist!
Wenn Sie wirklich etwas über Mikrocontroller lernen möchten , müssen Sie das Arduino und all seine Schichten, die die Details vor Ihnen verbergen, aufgeben. Ein PIC 16 ist sicherlich ein nackter Mikrocontroller.
Sie möchten auf jeden Fall MPLAB verwenden, zumindest zum Debuggen. Etwas anderes zu verwenden macht keinen Sinn, da MPLAB kostenlos ist und vom Hersteller offiziell unterstützt wird. Microchip bietet jetzt auch eine vollständige Reihe kostenloser Compiler an, mit dem einzigen Unterschied zu den Vollversionen, dass einige Optimierungen deaktiviert sind. Das sollte für jemanden, der lernt und experimentiert, keine Rolle spielen, und Sie können dieselben Compiler verwenden, die die meisten anderen Leute verwenden und die daher die auffälligsten Fehler haben.
Wenn Sie jedoch wirklich etwas lernen möchten, sollten Sie einige Projekte in Assembler durchführen. Dies wird Sie zwingen, die unteren Ebenen zu lernen und Ihre Augen dafür zu öffnen, was wirklich auf der Hardware- und Unterrichtsebene vor sich geht. Diese Einsicht ist sehr nützlich, selbst wenn Sie Code auf höherer Ebene schreiben, und Sie werden nicht zögern, hier und da ein Schlüsselmodul in Assembler zu implementieren, wenn es angebracht ist.
Ich sehe keinen Grund, die Arduino IDE aufzugeben. Es ist einfach und schnell, und wie Sie sagten, ein einfacher Satz von c +, es gibt so viele Beiträge zu dem Ding, dass es die Arbeit einfach zu einfach macht. Ich habe ein riesiges Zwei-Prozessor-Projekt mit der Arduino IDE in weniger als 2 Monaten abgeschlossen, und es funktioniert einwandfrei.
Aber wenn irgendjemand wüsste, was ich benutzt habe, würde ich mich dafür schämen, dass ich keine der konventionelleren Ideen verwendet habe. Die ganze Idee ist, Maschinencode so schnell wie möglich zu generieren, um ein funktionierendes Produkt zu erhalten.
Warum Dinge verkomplizieren?
Die arduino/atmel-Aufstellung ist unendlich einfacher als jedes andere Designstudio für eingebettete Produkte, insbesondere wenn Sie schnelle Ergebnisse und eine super kurze Lernkurve benötigen. Sag es bloß nicht dem Chef.
Anindo Ghosh
Anindo Ghosh
Nick Alexejew
Schmalzkonzepte
Schmalzkonzepte
Anindo Ghosh