Jeffrey Cross
Jeffrey Cross

Bertemu dengan Pinguino!

Terdapat lebih daripada sekadar PIC 32-bit yang berasaskan "Arduino-compatible" di blok dan yang satu ini, Pinguino, adalah papan yang saya sangat berminat - kebanyakannya kerana ia dari pembuat (untuk pembuat) bukan syarikat yang begitu banyak dan usaha ke arah rantaian alat sumber terbuka. Saya menghantar e-mel kepada perancang dan pembuat lembaga ini mengenai sejarahnya, perbezaan antara papan mereka dan chipKIT Uno32. Teruskan membaca untuk gambaran yang hebat dengan Jean-Pierre Mandon dan Tsvetan Usunov.

PT: Terima kasih kerana menjawab soalan-soalan ini!

Jean-Pierre Mandon: Besar untuk melihat anda berminat dengan Pinguino. Kami kini sedang berusaha untuk pembebasan seterusnya yang perlu memasukkan banyak perkara hebat (sokongan OTG untuk Android ADB, perisai kos rendah zigbee dan lebih ...).

Kami tidak akan cuba untuk mendakwa bahawa Pinguino adalah "papan serasi Arduino 100%" seperti yang dikatakan Microchip untuk cipKIT. Matlamat kami adalah untuk menambahkan fungsi ke papan asal Arduino seperti yang kami lakukan untuk 8 versi bit. Sokongan CDC adalah salah satu penambahbaikan (hanya menggunakannya dengan arahan yang mudah) dan OTG untuk PIC32 akan diuruskan dalam semangat yang sama.

Dan tentu saja, salah satu larangan dan cabaran utama kami adalah untuk menyediakan rantaian Sumber Terbuka. Beberapa bulan yang lalu, kami memutuskan untuk membina (dari sumber GCC) rantai alat kami sendiri untuk PIC32, langkah seterusnya adalah untuk pelabuhan Pinguino pada papan OLIMEXINO (ARM) dengan fungsi yang sama.

Akhir sekali, matlamat Pinguino tidak menjadi papan Microchip tetapi digunakan untuk banyak papan yang berbeza tanpa memerlukan pengetahuan tahap rendah pengawal mikro yang digunakan.


PT: Apa sejarah di belakang Pinguino?

Jean-Pierre: Projek Pinguino bermula pada tahun 2008. Matlamat utama adalah untuk membuat papan pembangunan yang boleh anda bina di garaj anda. Alat ini pada asalnya direka untuk pelajar seni (salah satu pekerjaan saya adalah guru di makmal robot Aix en provence sekolah seni). Anda boleh membina Pinguino dengan $ 4 mikro-pengawal yang mempunyai sistem USB sebenar (versi 8 bit berfungsi dengan 18F2550 atau 18F4550) dengan hanya beberapa komponen, walaupun pada papan hitam.

Saya membina IDE dari awal dengan Python dan pengkompil SDCC. SDCC bukan pengkompil C ++, jadi untuk memastikan keserasian dengan bahasa Arduino, saya menggunakan penterjemah preprocessor python untuk arahan C ++ untuk bahasa C. Sejak beta 2, pengguna boleh menambah perpustakaan mereka sendiri ke IDE dan sebahagian daripadanya dilesenkan oleh pencipta mereka. (Servo, LCD dan sebagainya ...)

Oleh kerana Beta 1, mengganggu boleh digunakan di Pinguino, fungsi panggil balik memberikan pengguna keupayaan untuk menggunakan semua gangguan cip tersebut.

Oleh kerana Pinguino 8 bit tidak diedarkan, kebanyakan orang yang menggunakan papan ini membina sendiri, mewujudkan versi mereka sendiri. Banyak reka bentuk yang berbeza wujud dan beberapa papan komersial serasi dengan bootloader dan Pinguino IDE.

Pada tahun 2009, saya memutuskan untuk memindahkan Pinguino kepada pengawal microchip 32 bit Microchip. Masalah utama ialah mencari rantaian alat sumber terbuka untuk lembaga. Reka bentuk pertama pada asalnya dibuat oleh Fred Eady dari EDTP. Fred mencipta papan papan roti (Maharaja 460) yang menjadi papan pertama Pinguino32. IDE Pinguino telah disesuaikan untuk berfungsi dengan kedua versi lite dari compiler Microchip dan kod MIPS. Setelah beberapa usaha untuk memasukkan compiler Microchip ke suite alat Pinguino, kami memutuskan bahawa penyelesaian terbaik adalah untuk membina dari sumber GCC untuk membuat pengkomputer sumber terbuka yang sebenar untuk cip Microchip 32 bit. Versi semasa pengkompil 32 bit Pinguino didasarkan pada GCC 4.5.2 dan binutils 2.21. Newlib digunakan sebagai perpustakaan utama C.

Pada tahun 2011, Olimex memutuskan untuk membina papan Pinguino dalam semangat Arduino untuk menjaga keserasian dengan perisai yang sedia ada. Kami meminta Tsvetan Usunov untuk membina papan ini memandangkan idea bahawa Pinguino mestilah terbuka perkakasan dan perisian terbuka, jadi reka bentuk harus tersedia walaupun papan 32 bit sukar dibina di garaj.

Papan ini mula-mula dibentangkan di Nuremberg untuk dunia tertanam tahun ini. 3 bulan kemudian, Microchip dan Digilent memulakan papan chipKIT dengan versi diubahsuai Arduino IDE dan keserasian 100% (jadi mereka berkata). chipKIT adalah papan yang sama seperti yang kami bentuk, tetapi saya rasa papan kami lebih baik!

Perbezaan utama adalah:

  • Bekalan kuasa industri dari 9 hingga 24Vcc
  • Bunyi rendah
  • Pengawal voltan kuasa ultra rendah
  • Pengecas Li-Ion bersepadu di atas kapal
  • pembaca kad mikro-sd
  • Penyambung UEXT yang memberikan keupayaan untuk menggunakan modul UEXT kos rendah dari OLIMEX atau buatan rumah
  • USB OTG dengan pengurusan kuasa

Pada masa ini, kami sedang berusaha untuk mengeluarkan IDE seterusnya. Siaran ini menggabungkan sokongan OTG, sokongan Zigbee, sokongan CDC untuk PIC32. Saya sedang mengusahakan kelas Android untuk menggunakan Pinguino 32 sebagai tuan rumah ADB yang membenarkan penggunaan peranti sejak Android 1.6. Tugas saya seterusnya ialah menulis kod untuk menggunakan Pinguino 32 sebagai alat Android untuk versi sejak 2.3.4. Tugas ini haruslah mudah kerana dewan perlu menjadi papan Host untuk bekerjasama dengan ADK.

Dengan chipKIT, matlamat Microchip mungkin untuk menggantikan pengawal mikro Atmel oleh Microchip-controller. Dengan Pinguino matlamat kami adalah untuk memberi keupayaan bagi pengguna untuk mencuba banyak konsep tanpa pengetahuan yang luas. Perpustakaan zigbee misalnya boleh digunakan dengan hanya 3 arahan (zigbee.init, zigbee.send, zigbee.read) dan semangat mesti sama untuk Android ADB, ADK dan lain-lain ... Jika anda sudah menggunakan perpustakaan Microchip, saya pasti anda akan memahami apa yang saya ingin jelaskan :-)

Kami mahu memasukkan dalam IDE yang bukan sahaja menggunakan bahasa Arduino tetapi semua yang berguna, jadi anda tidak menghabiskan masa belajar lembaran data. Untuk IDE, kami sedang menjalankan pelabuhan untuk peranti ARM dengan papan OLIMEXINO.

Saya berjumpa dengan Melonee Wise (garasi Willow) di parti kampus terakhir di Valencia dan kami bercakap tentang ROS dan bagaimana kami boleh membenamkannya dalam Pinguino32 untuk memandu robot.


Tsvetan Usunov: Mengenai bahagian perkakasan, berikut adalah perbezaan:

  1. CipKIT Uno32 menggunakan pengawal LM1117, ini bermakna sehingga 15 volt bekalan kuasa dan NO kuasa yang rendah kerana LM1117 memerlukan 5 mA untuk beroperasi, kami menggunakan DCDC yang membolehkan sehingga 30V bekalan kuasa input dan menggunakan LDOs kuasa ultra rendah sehingga jumlah penggunaan adalah sekitar 20-30uA jika anda meletakkan PIC tidur
  2. dia chipKIT menggunakan FT232 sedangkan PIC32 memiliki periferal USB yang sangat bodoh dan hanya membuang ruang papan untuk membayar sesuatu yang PIC32 sudah ada, Pinguino memiliki USB dan USB-OTG yaitu mereka juga dapat bertindak sebagai host USB, jadi secara asli menyokong Android ADK
  3. Pinguino mempunyai pengecas li-po yang dibina dan beralih antara bekalan kuasa bateri luaran-usb secara automatik, tanpa menggunakan jumper, ini bermakna Pinguino boleh digunakan sebagai peranti pegang tangan (pada kuasa bateri) apabila disambungkan ke USB atau kuasa luaran. Ia akan mengecas bateri secara automatik dan mula mengambil kuasa dari bicu USB atau Power sebaik sahaja kuasa digunakan.
  4. Semua komponen di Pinguino dipilih dengan teliti untuk bekerja pada -25 + 85C. Ini adalah gred suhu perindustrian manakala Uno32 adalah gred suhu komersil 0-70C
  5. PIC32 kami dengan flash 256K, Uno32 adalah kilat 128K
  6. Pinguino mempunyai kad microSD untuk pembalakan data, Uno32 tidak
  7. Pinguino mempunyai Clock Real Time, Uno32 tidak
  8. Pinguino mempunyai pengawal selia voltan berasingan pada bahagian analog dan digital untuk mengurangkan bunyi bising, Uno32 tidak mempunyai analog analog berasingan

Secara umumnya, PIC32-PINGUINO adalah derivat seperti Arduino yang paling canggih di pasaran, melihat skematik untuk chipKIT Uno32 direka untuk menjadi murah untuk pengeluaran, tetapi walaupun di sana mereka gagal dengan FT232 di papan, yang hanya menunjukkan bahawa lelaki perisian mereka tidak berupaya sama sekali jika mereka tidak boleh menggunakan peranti USB dalaman dan bukannya meletakkan penukar USB RS232 yang tidak berguna, yang hanya melumpuhkan kuasa USB PIC32.

Apabila kami mencipta PIC32-PINGUINO, kami mempunyai reka bentuk kuasa, industri dan bunyi bising yang rendah. Sekiranya kita terpaksa membuat sesuatu seperti Uno32, kita mungkin akan melakukannya lebih murah;) Sebenarnya terdapat PIC32-MICRO dalam cara yang mempunyai reka bentuk kuasa yang rendah, mempunyai USB-OTG, SD-CARD dan semua port PIC32 yang terdapat pada pengetua pelarian . Ia akan menjadi kira-kira EUR12-15 runcit, lembaga baru ini tidak akan menjadi gred perindustrian, ia akan mengambil kuasa hanya dari USB atau oleh pengawal selia 5-15V luaran dan ia direka dengan papan papan pemikiran untuk kegunaan rumah, kami akan mempunyai prototaip pertama seterusnya minggu dan pengeluaran pada bulan Oktober.

Untuk sisi perisian JP boleh memberitahu anda lebih banyak tetapi inilah yang saya perhatikan:

  1. Pinguino menggunakan GCC tetapi JP perlu menulis semula semua PIC berkaitan perpustakaan kerana Microchip tidak mahu membuka mereka, pada mulanya, kami fikir ia tidak baik kerana perlahan projek itu, tetapi kemudiannya kami mendapati bahawa dengan GCC kami bebas dari mana-mana penjual
  2. Pinguino boleh dan akan menyokong seni bina CortexM3, ini bermakna lembaga baru dengan STM32, NXP, TI dan lain-lain. Vendor boleh menambah (agak mudah) kerana Pinguino lebih terbuka kepada arkitek baru daripada Arduino

Ini bermakna kemerdekaan platform HARDWARE, iaitu anda tidak dilampirkan kepada vendor silikon tertentu, anda boleh menggerakkan projek anda dengan mudah melalui platform perkakasan yang berbeza menggunakan satu PINGUINO IDE :)


Jean-Pierre: Mengenai perkakasan, saya fikir Tsvetan menceritakan sebahagian besar perbezaan antara Pinguino dan chipKIT. Saya hanya mahu menambah bahawa kami mempunyai penyambung UEXT. Penyambung ini adalah sihir, anda boleh menggunakan UART2, I2C atau SPI untuk memacu perisai luaran tanpa menggunakan ruang pada bahagian atas papan. Modul Zigbee adalah contoh yang baik dan kami mempunyai banyak projek (bluetooth, modul wifi yang kini dibawah pembangunan perisian). Saya merancang untuk merekabentuk modul UEXT khusus yang boleh diselaraskan (contohnya zigbee dan bluetooth, yang pertama menggunakan SPI, yang kedua menggunakan UART2).

Mengenai bekalan kuasa, saya mencipta beberapa ujian (di sini).

Saya fikir USB OTG adalah perkara yang paling penting kerana kami tidak dapat membangunkan antara muka Android dengan penukar USB / bersiri dan banyak projek masa depan kami yang berasaskan USB Host (contohnya, mengawal webcam murah, tetikus untuk digunakan sebagai pengikut baris untuk robot, papan kekunci dan sebagainya ....)

Di sisi perisian, pengkompil kami adalah berdasarkan GCC dan sokongan C ++ sedang dalam perjalanan. Perpustakaan C didasarkan pada Newlib dan sumber terbuka sepenuhnya. compiler chipKIT berdasarkan GCC tetapi perpustakaan C didasarkan pada perpustakaan mips. Kami tidak boleh berharap untuk mempunyai sumber perpustakaan ini, dan walaupun beberapa fungsi tahap rendah perlu ditingkatkan pada pengkompil kami, saya rasa Newlib adalah pilihan terbaik untuk pengguna. Saya tidak membaca perjanjian lesen untuk chipKIT, tetapi saya tidak pasti anda boleh mengembangkan aplikasi komersil dengan "persekitaran bebas" ini (seperti biasa dengan Microchip).

Semua perpustakaan yang digunakan dalam Pinguino32 telah ditulis dari awal kecuali fail header untuk pemproses dan runtime. Microchip memberikan projek Pinguino sebagai lesen penuh untuk fail-fail yang memberi kuasa untuk menghasilkan dan mengedarkan fail-fail ini.

Mengenai perkembangan, seperti kata Tsvetan, matlamat kami adalah untuk pelabuhan Pinguino ke platform lain dan menjaga keserasian yang baik dalam sistem 8 bit. Sebagai contoh, pustaka Android akan dipindahkan ke platform 8 bit dengan cip hos USB yang memberi keupayaan untuk antaramuka pengguna buatan Android dengan cip 18F. Matlamat Pinguino adalah satu set alat, bebas daripada platform yang digunakan.

Selepas Android, saya merancang untuk memindahkan perpustakaan FLAC untuk PIC32 Pinguino untuk menggunakannya sebagai perakam audio atau pemain tanpa sebarang perisai.


Nota editor: Saya membantu Jean-Pierre Mandon dan Tsvetan Usunov dengan teks bahasa / struktur wawancara ini kerana bahasa Inggeris bukan bahasa ibunda mereka.

Kongsi

Meninggalkan Komen