Jeffrey Cross
Jeffrey Cross

Lerne das Pinguino kennen!

Es gibt mehr als nur ein 32-Bit-PIC-basiertes „Arduino-compatible“ im Block, und dieses Pinguino ist ein Board, das mich sehr interessiert hat - hauptsächlich, weil es von einem Hersteller (für Hersteller) nicht so sehr zu einem Unternehmen kommt und die Bemühungen um eine Open-Source-Toolkette. Ich habe dem Designer und Hersteller dieses Boards eine E-Mail mit der Frage nach seiner Geschichte, den Unterschieden zwischen dem Board und dem chipKIT Uno32 gegeben. Lesen Sie weiter für einen fantastischen Überblick mit Jean-Pierre Mandon und Tsvetan Usunov.

PT: Danke für die Beantwortung dieser Fragen!

Jean-Pierre Mandon: Schön, dass Sie sich für Pinguino interessieren. Wir arbeiten jetzt an der nächsten Version, die viele großartige Dinge enthalten sollte (OTG-Unterstützung für Android ADB, Zigbee Low Cost Shield und mehr…).

Wir würden nicht versuchen zu behaupten, dass das Pinguino ein "100% Arduino-kompatibles Board" ist, wie Microchip für das chipKIT sagte. Unser Ziel ist es, das ursprüngliche Arduino-Board so zu ergänzen, wie wir es für die Bit-Version getan haben. Die CDC-Unterstützung ist eine dieser Verbesserungen (verwenden Sie sie einfach mit einfachen Anweisungen), und OTG für PIC32 wird auf dieselbe Weise verwaltet.

Eine unserer größten Einschränkungen und Herausforderungen war natürlich die Bereitstellung einer Open Source-Kette. Vor einigen Monaten haben wir beschlossen, (aus der GCC-Quelle) unsere eigene Werkzeugkette für PIC32 aufzubauen. Als nächsten Schritt wird Pinguino mit den gleichen Funktionen auf das OLIMEXINO-Board (ARM) portiert.

Schließlich ist es das Ziel von Pinguino, keine Microchip-Platine zu sein, sondern auf vielen verschiedenen Platinen verwendet zu werden, ohne dass Kenntnisse über den verwendeten Mikrocontroller erforderlich sind.


PT: Was ist die Geschichte des Pinguino?

Jean-Pierre: Das Pinguino-Projekt wurde 2008 gestartet. Das Hauptziel bestand darin, ein Entwicklungsboard zu bauen, das Sie in Ihrer Garage bauen können. Dieses Tool wurde ursprünglich für Kunststudenten entwickelt (eine meiner Aufgaben ist eine Lehrerin im Roboterlabor der Kunstschule Aix en provence). Sie können ein Pinguino mit einem $ 4-Mikrocontroller bauen, der über ein echtes USB-System verfügt (die 8-Bit-Version arbeitet mit einem 18F2550 oder 18F4550), und zwar mit nur wenigen Komponenten, sogar auf einem Beadboard.

Ich habe die IDE mit Python und dem SDCC-Compiler von Grund auf neu erstellt. SDCC war kein C ++ - Compiler. Um Kompatibilität mit der Arduino-Sprache zu gewährleisten, habe ich einen Python-Präprozessor-Übersetzer für die C ++ - Anweisungen für die C-Sprache verwendet. Seit der Beta 2 können Benutzer ihre eigenen Bibliotheken zur IDE hinzufügen, und einige von ihnen werden von ihrem Ersteller lizenziert. (Servo, LCD usw.)

Da Beta 1 Interrupt in Pinguino verwendet werden kann, gibt eine Callback-Funktion dem Benutzer die Möglichkeit, den gesamten Interrupt des Chips zu verwenden.

Da Pinguino 8 Bit nicht verteilt wird, haben die meisten Benutzer dieses Board es selbst erstellt und eine eigene Version erstellt. Es gibt viele verschiedene Designs und einige kommerzielle Boards sind mit dem Bootloader und der Pinguino IDE kompatibel.

2009 entschied ich mich, Pinguino auf den 32-Bit-Microchip-Mikrocontroller zu portieren. Das Hauptproblem bestand darin, eine Open-Source-Toolkette für das Board zu finden. Der erste Entwurf wurde ursprünglich von Fred Eady von EDTP hergestellt. Fred entwarf ein Breadboard (Kaiser 460), das das erste Pinguino32-Board wurde. Die Pinguino IDE wurde angepasst, um sowohl mit der Lite-Version des Microchip-Compilers als auch mit Code-Sourcery-MIPS zusammenzuarbeiten. Nach einigen Bemühungen, den Microchip-Compiler in die Pinguino Tool Suite zu integrieren, entschieden wir uns für die beste Lösung, aus der GCC-Quelle zu bauen, um einen echten Open-Source-Compiler für Microchip 32-Bit-Chips zu erstellen. Die aktuelle Version des Compilers 32 Bit von Pinguino basiert auf GCC 4.5.2 und Binutils 2.21. Newlib wird als Haupt-C-Bibliothek verwendet.

Im Jahr 2011 beschloss Olimex, ein Pinguino-Board im Arduino-Geist zu bauen, um die Kompatibilität mit vorhandenen Schilden zu gewährleisten. Wir baten Tsvetan Usunov, dieses Board zu bauen, wobei die Idee beibehalten werden sollte, dass Pinguino offene Hardware und offene Software sein muss, sodass das Design verfügbar sein sollte, auch wenn ein 32-Bit-Board in einer Garage schwer zu bauen ist.

Dieses Board wurde dieses Jahr erstmals für Embedded World in Nürnberg präsentiert. 3 Monate später starteten Microchip und Digilent das chipKIT-Board mit einer modifizierten Version der Arduino IDE und einer 100% igen Kompatibilität (sagen sie). chipKIT ist ziemlich dasselbe Board, das wir entwickelt haben, aber ich denke, unser Board ist besser!

Die Hauptunterschiede sind:

  • Industrielle Stromversorgung von 9 bis 24 Vcc
  • Wenig Lärm
  • Ultra-Low-Power-Spannungsregler
  • Li-Ion-Ladegerät an Bord integriert
  • Micro-SD-Kartenleser
  • Der UEXT-Connector ermöglicht die Verwendung kostengünstiger UEXT-Module von OLIMEX oder von hausgemachtem
  • USB-OTG mit Energieverwaltung

Wir arbeiten derzeit an der nächsten Version der IDE. Diese Version enthält OTG-Unterstützung, Zigbee-Unterstützung und CDC-Unterstützung für PIC32. Ich arbeite an einer Android-Klasse, um Pinguino 32 als ADB-Host zu verwenden, der die Verwendung von Geräten seit Android 1.6 ermöglicht. Meine nächste Aufgabe ist es, den Code für die Verwendung des Pinguino 32 als Android-Gadget für Versionen seit 2.3.4 zu schreiben. Diese Aufgabe sollte einfach sein, da das Board ein Host-Board sein muss, um mit dem ADK arbeiten zu können.

Mit chipKIT besteht das Ziel von Microchip wahrscheinlich darin, den Atmel-Mikrocontroller durch einen Microchip-Mikrocontroller zu ersetzen. Mit Pinguino möchten wir dem Benutzer die Möglichkeit geben, viele Konzepte ohne umfangreiches Wissen auszuprobieren. Die Zigbee-Bibliothek zum Beispiel kann mit nur 3 Anweisungen verwendet werden (zigbee.init, zigbee.send, zigbee.read) und der Geist muss für Android ADB, ADK usw. derselbe sein. Wenn Sie bereits Microchip-Bibliotheken verwendet haben, bin ich mir sicher werde verstehen was ich erklären wollte :-)

Wir möchten in die IDE integrieren, dass nicht nur die Arduino-Sprache verwendet wird, sondern alles, was nützlich ist, so dass Sie keine Zeit damit verbringen, Datenblätter zu studieren. Für die IDE arbeiten wir mit der OLIMEXINO-Karte an einem Port für ARM-Geräte.

Ich habe Melonee Wise (Willow-Garage) auf der letzten Campus-Party in Valencia getroffen und wir haben über ROS gesprochen und wie wir es in Pinguino32 einbetten können, um Roboter zu fahren.


Tsvetan Usunov: In Bezug auf die Hardwareseite sind hier die Unterschiede:

  1. Der chipKIT Uno32 verwendet einen LM1117-Regler. Dies bedeutet bis zu 15 Volt Spannungsversorgung und KEINE geringe Leistung, da der LM1117 5 mA benötigt, um zu funktionieren. Wir verwenden DCDC, der eine Eingangsstromversorgung von bis zu 30 V ermöglicht, und verwenden LDOs mit niedrigem Stromverbrauch liegt bei 20-30 uA, wenn Sie den PIC in den Ruhezustand versetzen
  2. Das chipKIT verwendet FT232, während PIC32 über USB-Peripheriegeräte verfügt, was enorm dumm ist und nur Platz verschwendet, um etwas zu bezahlen, was PIC32 bereits hat. Pinguino hat USB und USB-OTG, dh sie können auch als USB-Host fungieren, also nativ unterstützt das Android ADK
  3. Pinguino hat ein Li-Po-Ladegerät eingebaut und schaltet automatisch zwischen externer USB-Batterieversorgung um, ohne Jumper zu verwenden. Dies bedeutet, dass Pinguino als tragbares Gerät (im Akkubetrieb) verwendet werden kann, wenn es an USB oder eine externe Stromversorgung angeschlossen ist. Der Akku wird automatisch aufgeladen und die Stromversorgung über die USB- oder Netzbuchse erfolgt, sobald die Stromversorgung eingeschaltet ist.
  4. Alle Komponenten von Pinguino sind sorgfältig ausgewählt, um auf -25 + 85C zu arbeiten. Dies ist ein industrieller Temperaturbereich, während Uno32 ein kommerzieller Temperaturbereich von 0-70 ° C ist
  5. Unser PIC32 ist mit 256K Flash ausgestattet, Uno32 ist 128K Flash
  6. Pinguino verfügt über eine microSD-Karte zur Datenprotokollierung, Uno32 jedoch nicht
  7. Pinguino hat eine Echtzeituhr, die Uno32 nicht
  8. Pinguino verfügt über separate Spannungsregler an den analogen und digitalen Teilen, um das Rauschen zu reduzieren. Die Uno32 verfügt nicht über separate analoge Spannungsregler

Im Allgemeinen ist PIC32-PINGUINO das am weitesten entwickelte Arduino-artige Derivat auf dem Markt. Das Schaltbild für das chipKIT Uno32 wurde so konzipiert, dass es für die Produktion günstig ist, aber selbst dort versagten sie mit dem FT232 auf der Platine, was nur das zeigt Ihre Software-Leute sind nicht sehr fähig, wenn sie nicht die internen USB-Peripheriegeräte verwenden können, anstatt einen unbrauchbaren USB-RS232-Konverter einzusetzen, der nur die PIC32-USB-Stromversorgung beeinträchtigt.

Bei der Entwicklung von PIC32-PINGUINO hatten wir ein niedriges Energie-, industrielles und geräuschunempfindliches Design im Sinn. Wenn wir so etwas wie Uno32 machen müssten, würden wir es wahrscheinlich billiger machen;) Tatsächlich ist PIC32-MICRO unterwegs, das mit einem Low-Power-Design ausgestattet ist und über USB-OTG, SD-CARD und alle PIC32-Ports verfügt, die in den Breakout-Headern verfügbar sind . Das neue Board wird nicht für industrielle Zwecke geeignet sein, sondern nur über USB oder externe 5-15V-Regler. Es ist speziell für den Heimgebrauch entwickelt worden. Wir werden die ersten Prototypen entwickeln Woche und Produktion im Oktober.

Für die Software-Seite kann JP Ihnen mehr sagen, aber Folgendes ist mir aufgefallen:

  1. Pinguino verwendet GCC, aber JP musste alle mit PIC zusammenhängenden Bibliotheken neu schreiben, da Microchip sie nicht öffnen wollte. Wir dachten, das Projekt wäre schlecht, da das Projekt verlangsamt wurde. Später stellten wir jedoch fest, dass wir mit GCC keinen Anbieter mehr haben
  2. Pinguino kann und wird die CortexM3-Architektur unterstützen, das heißt, ein neues Board mit STM32, NXP, TI usw. Die Anbieter könnten (relativ einfach) hinzufügen, da das Pinguino neuen Architekturen gegenüber offener ist als Arduino

Dies bedeutet HARDWARE-Plattformunabhängigkeit, d. H. Sie sind nicht an einen bestimmten Silicon-Anbieter gebunden. Sie können Ihr Projekt mit einer PINGUINO-IDE problemlos auf verschiedenen Hardwareplattformen verschieben.


Jean-Pierre: In Bezug auf die Hardware, glaube ich, hat Tsvetan den größten Unterschied zwischen dem Pinguino und dem chipKIT aufgezählt. Ich möchte nur hinzufügen, dass wir den UEXT-Connector haben. Dieser Anschluss ist magisch. Sie können UART2, I2C oder SPI verwenden, um eine externe Abschirmung zu betreiben, ohne Platz auf der Oberseite der Platine zu benötigen. Das Zigbee-Modul ist ein gutes Beispiel und wir haben viele Projekte (Bluetooth, WLAN-Modul, die derzeit in der Softwareentwicklung sind). Ich plane, ein spezielles UEXT-Modul zu entwerfen, das kaskadiert werden kann (z. B. ZigBee und Bluetooth, das erste mit SPI, das zweite mit UART2).

In Bezug auf die Stromversorgung habe ich einige Tests erstellt (hier).

Ich denke, USB OTG ist das Wichtigste, da wir keine Android-Schnittstelle mit einem USB / Seriell-Konverter entwickelt haben könnten und viele unserer zukünftigen Projekte, die auf einem USB-Host basieren (z. B. billige Webcam-Schnittstellen, Maus) als Line-Follower für Roboter, Tastatur etc….)

Auf der Softwareseite basiert unser Compiler auf GCC und der C ++ - Support ist in Vorbereitung. Die C-Bibliothek basiert auf Newlib und ist vollständig Open Source. Der chipKIT-Compiler basiert auf GCC, aber die C-Bibliothek basiert auf der Mips-Bibliothek. Wir können nicht auf die Quelle dieser Bibliothek hoffen, und selbst wenn einige Low-Level-Funktionen unseres Compilers verbessert werden müssen, denke ich, dass Newlib die beste Wahl für den Benutzer ist. Ich habe die Lizenzvereinbarung für das chipKIT nicht gelesen, aber ich bin nicht sicher, ob Sie kommerzielle Anwendungen mit dieser „freien Umgebung“ entwickeln können (wie bei Microchip üblich).

Alle in Pinguino32 verwendeten Bibliotheken wurden von Grund auf neu geschrieben, mit Ausnahme der Header-Dateien für den Prozessor und die Laufzeit. Microchip erteilte dem Pinguino-Projekt eine Volllizenz für diese Dateien, die zur Reproduktion und Verteilung dieser Dateien berechtigten.

In Bezug auf die Entwicklung, so Tsvetan, ist es unser Ziel, Pinguino auf eine andere Plattform zu portieren und eine gute Kompatibilität innerhalb des 8-Bit-Systems aufrechtzuerhalten. Zum Beispiel wird die Android-Bibliothek mit einem USB-Host-Chip auf die 8-Bit-Plattform portiert, was die Möglichkeit für selbst erstellte Benutzeroberflächen von Android mit einem 18F-Chip bietet. Das Ziel von Pinguino ist es, eine Reihe von Tools unabhängig von der verwendeten Plattform bereitzustellen.

Nach Android plane ich, die FLAC-Bibliothek für PIC32 Pinguino zu portieren, um sie als Audiorecorder oder -Player ohne Abschirmung zu verwenden.


Anmerkung des Herausgebers: Ich habe Jean-Pierre Mandon und Tsvetan Usunov beim Text dieser Interviewsprache unterstützt, da Englisch nicht ihre Muttersprache ist.

Aktie

Leave A Comment