Møt Pinguino! - 💡 Fix My Ideas

Møt Pinguino!

Møt Pinguino!


Forfatter: Ethan Holmes, 2019

Det er mer enn bare en 32-bit PIC-basert "Arduino-kompatibel" på blokken, og denne, Pinguino, er et styre som jeg var ganske interessert i - for det meste fordi det er fra en maker (for beslutningstakere) ikke et selskap så mye og innsatsen mot en åpen kildekode verktøykjede. Jeg mailet designer og maker av dette styret og spør om historien, forskjellene mellom styret og chipKIT Uno32. Fortsett å lese for en fantastisk oversikt med Jean-Pierre Mandon og Tsvetan Usunov.

PT: Takk for at du svarer på disse spørsmålene!

Jean-Pierre Mandon: Flott å se deg er interessert i Pinguino. Vi jobber nå med neste utgivelse, som skal inneholde mange flotte ting (OTG-støtte for Android ADB, Zigbee lavpris skjold og mer ...).

Vi ville ikke prøve å hevde at Pinguino er et "100% Arduino-kompatibelt kort" som Microchip sa til chipKIT. Vårt mål er å legge til funksjonalitet til det originale Arduino-kortet som vi gjorde for 8 bitversjonen. CDC-støtte er en av disse forbedringene (bare bruk den med enkle instruksjoner) og OTG for PIC32 vil bli styrt i samme ånd.

Og selvfølgelig var en av våre hovedrestriksjoner og utfordringer å gi en åpen kildekode-kjede. For noen måneder siden bestemte vi oss for å bygge (fra GCC-kilden) vår egen verktøykjede for PIC32, neste trinn vil være å port Pinguino på OLIMEXINO-styret (ARM) med samme funksjonalitet.

Endelig er målet med Pinguino ikke å være et Microchip-kort, men å bli brukt på mange forskjellige brett uten behov for lav kunnskap om mikrokontrolleren som brukes.


PT: Hva er historien bak Pinguino?

Jean-Pierre: Pinguino-prosjektet startet i 2008. Hovedmålet var å lage et utviklingsforum du kan bygge i garasjen din. Dette verktøyet ble opprinnelig designet for kunststuderende (en av jobben min er lærer i robotlabben i Aix en provence kunstskole). Du kan bygge en Pinguino med en $ 4 mikro-kontroller som har et ekte USB-system (8 bits versjonen fungerer med 18F2550 eller 18F4550) med bare noen få komponenter, selv på en beadboard.

Jeg bygget IDE fra bunnen av med Python og SDCC kompilatoren. SDCC var ikke en C ++-kompilator, for å holde kompatibilitet med Arduino-språket brukte jeg en python-forprosessor-oversetter for C ++-instruksjonene for C-språket. Siden beta 2 kan brukerne legge til egne biblioteker til IDE, og noen av dem er lisensiert av sin skaperen. (Servo, LCD etc ...)

Siden Beta 1, kan avbrudd brukes i Pinguino, gir en tilbakeringingsfunksjon brukeren muligheten til å bruke all avbrudd av brikken.

Da Pinguino 8 bit ikke distribueres, bygde de fleste av brukerne av dette brettet seg selv, og skaper sin egen versjon. Det er mye forskjellig design, og noen kommersielle bord er kompatible med bootloader og Pinguino IDE.

I 2009 bestemte jeg meg for å port Pinguino til 32 bit Microchip mikrokontrolleren. Hovedproblemet var å finne en åpen kildekode verktøykjede for styret. Den første designen ble opprinnelig laget av Fred Eady fra EDTP. Fred designet et brødbrett (keiser 460) som ble den første Pinguino32-brettet. Pinguino IDE har blitt tilpasset til å jobbe med både lite versjon av Microchip compiler og Code sourcery MIPS. Etter en viss innsats for å innlemme Microchip-kompilatoren til Pinguino-verktøypakken, bestemte vi oss for at den beste løsningen var å bygge fra GCC-kilden for å skape en ekte open source-kompilator for Microchip 32 bit-chip. Den nåværende versjonen av kompilatoren 32 biter av Pinguino er basert på GCC 4.5.2 og binutils 2.21. Newlib brukes som hoved C-biblioteket.

I 2011 bestemte Olimex seg for å bygge et Pinguino-bord i Arduino-ånden for å holde kompatibilitet med eksisterende skjold. Vi ba Tsvetan Usunov om å bygge dette styret og holde ideen om at Pinguino må være åpen maskinvare og åpen programvare, slik at designen skal være tilgjengelig selv om et 32 ​​biters brett er vanskelig å bygge i en garasje.

Dette styret ble først presentert i Nürnberg for Embedded World i år. 3 måneder senere startet Microchip og Digilent chipKIT bordet med en modifisert versjon av Arduino IDE og en 100% kompatibilitet (slik de sier). chipKIT er ganske samme brett som vi designet, men jeg tror at styret vårt er bedre!

De viktigste forskjellene er:

  • Industriell kraftforsyning fra 9 til 24Vcc
  • Lav lyd
  • Ultra lav spenningsregulator
  • Li-Ion lader integrert ombord
  • micro-sd kortleser
  • UEXT-kontakt som gir mulighet til å bruke billige UEXT-moduler fra OLIMEX eller hjemmelaget
  • USB OTG med strømstyring

Vi jobber for tiden med neste utgave av IDE. Denne utgivelsen integrerer OTG-støtte, Zigbee-støtte, CDC-støtte for PIC32. Jeg jobber på en Android-klasse for å bruke Pinguino 32 som en ADB-vert som tillater bruk av enheter siden Android 1.6. Min neste oppgave er å skrive koden for å bruke Pinguino 32 som en Android-gadget for versjoner siden 2.3.4. Denne jobben skal være lett da styret må være vertskap for å jobbe med ADK.

Med chipKIT er målet med Microchip trolig å erstatte Atmel mikrokontrolleren med Microchip mikrokontrolleren. Med Pinguino er målet vårt å gi brukeren muligheten til å prøve ut mange konsepter uten omfattende kunnskap. Zigbee-biblioteket kan for eksempel brukes med bare 3 instruksjoner (zigbee.init, zigbee.send, zigbee.read) og ånden må være den samme for Android ADB, ADK etc ... Hvis du allerede har brukt Microchip-biblioteker, er jeg sikker på at du vil forstå hva jeg ønsket å forklare :-)

Vi ønsker å inkorporere i IDE at ikke bare Arduino-språket bruker, men alt som er nyttig, slik at du ikke bruker tid på å studere dataark. For IDE jobber vi på en port for ARM-enheter med OLIMEXINO-bordet.

Jeg møtte Melonee Wise (Willow garasje) på det siste campuspartiet i Valencia, og vi snakket om ROS og hvordan vi kunne legge det inn i Pinguino32 for å kjøre roboter.


Tsvetan Usunov: Når det gjelder maskinvare siden, her er forskjellene:

  1. ChipKIT Uno32 bruker en LM1117 regulator, det vil si opptil 15 volt strømforsyning og ingen lav effekt som LM1117 krever 5 mA å betjene. Vi bruker DCDC som tillater opptil 30 V inngangsstrømforsyning og bruker ultra low power LDOer, slik at det totale forbruket er rundt 20-30uA hvis du legger PIC til å sove
  2. han chipKIT bruker FT232, mens PIC32 har USB-kringkasting som er enormt dum og er bare en sløsing med brettomrommet for å betale for noe som PIC32 allerede har, Pinguino har USB og USB-OTG, det vil si at de også kan fungere som en USB-vert, så det er naturlig støtter Android ADK
  3. Pinguino har en li-po lader innebygd og bytter automatisk mellom strømforsyning utenom USB-strømforsyningen, uten å bruke hoppere, det betyr at Pinguino kan brukes som håndholdt enhet (på batteristrøm) når den er koblet til USB eller ekstern strøm. Det vil lade batteriet automatisk og begynne å ta strøm fra USB- eller Strømuttaket så snart det er strøm påført.
  4. Alle komponenter på Pinguino er nøye valgt for å fungere på -25 + 85C. Dette er industriell temperaturklasse mens Uno32 er 0-70C kommersiell temp klasse
  5. Vår PIC32 er med 256K flash, Uno32 er 128K flash
  6. Pinguino har microSD-kort for datalogging, Uno32 gjør det ikke
  7. Pinguino har en sanntidsklokke, Uno32 gjør det ikke
  8. Pinguino har separate spenningsregulatorer på analoge og digitale deler for å gjøre mindre støy, Uno32 har ikke separat analog vregning

Generelt sett er PIC32-PINGUINO den mest sofistikerte Arduino-lignende derivaten på markedet, og ser på skjematisk for chipKIT Uno32 ble designet for å være billig for produksjon, men selv de mislyktes med FT232 på brettet, noe som bare viser at deres programvare gutter er ikke veldig dyktige hvis de ikke kan bruke de interne USB-kringkastingene i stedet for å sette en ubrukelig USB RS232-omformer, som bare kremer PIC32 USB-strømmen.

Da vi opprettet PIC32-PINGUINO hadde vi lav kraft, industri og lyd-immune design i tankene. Hvis vi måtte lage noe som Uno32, ville vi trolig gjøre det billigere;) Faktisk er det PIC32-MICRO på vei som har lavt strømdesign, har USB-OTG, SD-CARD og alle PIC32-porter tilgjengelig på breakout headers . Det kommer til å være om 12-15 euro i detaljhandel, dette nye brettet vil ikke være industriell karakter, det tar bare strøm fra USB eller ved ekstern 5-15V regulator og den er designet med breadboarding i tankene for hjemmebruk, vi vil få de første prototyper neste uke og produksjon i oktober.

For programvare siden kan JP fortelle deg mer, men her er det jeg la merke til:

  1. Pinguino bruker GCC, men JP måtte omskrive alle PIC-relaterte biblioteker ettersom Microchip ikke ønsket å åpne dem. Vi trodde først at det var dårlig som reduserte prosjektet, men senere oppdaget vi at med GCC er vi fri for noen leverandør
  2. Pinguino kan og vil støtte CortexM3-arkitekturen, dette betyr et nytt styre med STM32, NXP, TI etc. Leverandørene kan legge til (relativt enkelt) ettersom Pinguino er mer åpen for nye arkitekturer enn Arduino

Dette betyr HARDWARE-plattform uavhengighet, det vil si at du ikke er koblet til en bestemt silisiumleverandør, du kan enkelt flytte prosjektet ditt gjennom forskjellige maskinvareplattformer ved hjelp av en PINGUINO IDE :)


Jean-Pierre: Når det gjelder maskinvare, tror jeg at Tsvetan oppnådde det meste av forskjellen mellom Pinguino og chipKIT. Jeg vil bare legge til at vi har UEXT-kontakten. Denne kontakten er magisk, du kan bruke UART2, I2C eller SPI til å kjøre et eksternt skjerm uten å bruke plass på toppen av brettet. Zigbee-modulen er et godt eksempel, og vi har mange prosjekter (bluetooth, wifi-modul som for tiden er under utvikling av programvare). Jeg planlegger å designe en spesiell UEXT-modul som kan bli kaskad (for eksempel zigbee og bluetooth, den første som bruker SPI, den andre bruker UART2).

Når det gjelder strømforsyning, opprettet jeg noen tester (her).

Jeg tror USB OTG er det viktigste fordi vi ikke kunne ha utviklet et Android-grensesnitt med en USB / seriell omformer og mange av våre fremtidige prosjekter som er basert på USB Host (for eksempel, tilkobling av billige webkamera, mus som skal brukes som linjefølger for robot, tastatur etc ....)

På programvaresiden er vår kompilator GCC basert og C + + -støtte er på vei. C-biblioteket er basert på Newlib og helt åpen kildekode. chipKIT-kompilatoren er basert på GCC, men C-biblioteket er basert på mips-biblioteket. Vi kan ikke håpe å ha kilden til dette biblioteket, og selv om noen lavnivåfunksjoner må forbedres på vår kompilator, tror jeg Newlib er et best valg for brukeren. Jeg har ikke lest lisensavtalen for chipKIT, men jeg er ikke sikker på at du kan utvikle kommersiell bruk med dette "frie miljøet" (som vanlig med Microchip).

Alle bibliotekene som ble brukt i Pinguino32 ble skrevet fra bunnen av, unntatt toppfiler for prosessoren og runtime. Microchip ga Pinguino-prosjektet et fullstendig lisens for de filene som tillater å reprodusere og distribuere disse filene.

Når det gjelder utvikling, som sagt Tsvetan, er målet vårt å havne Pinguino til annen plattform og holde god kompatibilitet innen 8 biters system. For eksempel blir Android-biblioteket portet til 8-bits plattformen med en USB-hostchip som gir muligheten til hjemmelagde brukergrensesnitt Android med en 18F-brikke. Målet med Pinguino er å være et sett med verktøy, uavhengig av plattformen som brukes.

Etter Android planlegger jeg å porte FLAC-biblioteket til PIC32 Pinguino for å bruke det som en lydopptaker eller -spiller uten skjold.


Redaktørens notat: Jeg hjalp Jean-Pierre Mandon og Tsvetan Usunov med teksten til dette intervjuet språk / struktur siden engelsk er ikke deres morsmål.



Du Kan Være Interessert

VGA til USB power mod

VGA til USB power mod


DIY designer speil remake

DIY designer speil remake


Bygg: Crafty Alien Strikket Felted Raccoon

Bygg: Crafty Alien Strikket Felted Raccoon


Wired gjør en scannercam

Wired gjør en scannercam






Siste Innlegg