Difference between revisions of "Raspberry Pi Programming"

From eLinux.org
Jump to: navigation, search
m
(created a page called "How to set up java")
(38 intermediate revisions by 20 users not shown)
Line 5: Line 5:
 
==Programming languages, IDEs, etc==
 
==Programming languages, IDEs, etc==
  
===Languages tested on Alpha board===
+
===Tested on Alpha board===
  
* Interp
 
* Scala
 
 
* Clojure
 
* Clojure
* OCaml
+
* gas (GNU assembler) <ref>http://www.vanhaarlem.eu/assembler</ref>
 
* gcc
 
* gcc
 
* g++
 
* g++
 +
* Interp
 +
* Mono (C#)
 +
* OCaml
 +
* NodeJS 0.6.18 (Javascript)
 +
* Perl
 
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
 
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
* Perl
 
 
* Ruby 1.9.2 (KidsRuby)
 
* Ruby 1.9.2 (KidsRuby)
 +
* Scala
 +
* [http://nimrod-code.org/ Nimrod]
 +
* [http://freecode.com/projects/tinybc Tiny BASIC for Curses]
  
===Expected to work===
+
===Tested on RPi===
  
 +
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
 +
* [[Scratch_on_RPi|Scratch]]
 
* Java
 
* Java
 +
**  [[How to set up java]] and add access to the hardware
 +
** gcj - for Java code compilation,
 +
** depending on ''floatness'', Oracle JVM may or may not be available. For now, only soft-float JVM is available. See [http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html here] for thorough description.
 +
** Other JVMs are compared [http://www.raspberrypi.org/phpBB3/viewtopic.php?f=34&t=15639 here].
 +
* PHP
 +
* Groovy
 +
* [[Free Pascal on RPi|Free Pascal Compiler / Object Pascal language]]
 +
* [[Lazarus on RPi|Lazarus]], the professional cross-platform IDE for [[Free Pascal]].
 +
* [http://xxicc.org GalaxC programming language and XXICC "Chicken Coop" environment] (works in progress)
 +
* [[CSharp_on_RPi|C#]]
 +
 +
===Expected to work===
 
* Eclipse
 
* Eclipse
 
* Tcl/Tk
 
* Tcl/Tk
* Lazarus
 
 
* (maybe) BoaConstructor
 
* (maybe) BoaConstructor
 
* Anjuta for C/C++
 
* Anjuta for C/C++
Line 39: Line 57:
 
** [http://sdlbasic.sf.net sdlbasic] - BASIC interpreter for game development  
 
** [http://sdlbasic.sf.net sdlbasic] - BASIC interpreter for game development  
 
** [http://www.yabasic.de/ yabasic] - Yet Another BASIC interpreter   
 
** [http://www.yabasic.de/ yabasic] - Yet Another BASIC interpreter   
 
+
* [http://regina-rexx.sourceforge.net/ Regina Rexx]
 
<blockquote>''See also:'' [[RaspberryPiBoard/EducationalLinks]] for education-friendly languages.</blockquote>
 
<blockquote>''See also:'' [[RaspberryPiBoard/EducationalLinks]] for education-friendly languages.</blockquote>
  
Line 50: Line 68:
 
* [http://education.mit.edu/starlogo/ Star Logo]
 
* [http://education.mit.edu/starlogo/ Star Logo]
 
* [http://primerlabs.com/codehero PrimerLabs CodeHero]
 
* [http://primerlabs.com/codehero PrimerLabs CodeHero]
 +
* [http://www.lazarus.freepascal.org Lazarus] I was working on LaZor'''OS4'''Pi a while back to provide a on-device IDE but I'm stuck with only a VGA monitor + chroot. Will pick it back up asap for it is a great combination. (Used: Fedora, [http://razor-qt.org/ Razor-QT desktop] and Lazarus-QT+FreePascal. 2nd attempt => [http://funtoo.org Funtoo])
 +
* [http://code.google.com/p/yad YAD] 'Yet Another Dialog' for fast GUI scripting in BASH.
 +
* [https://sites.google.com/site/easybashgui EasyBashGui] Want to keep it fast and simple than this is your tool. Goes even faster with the code snippets from Komodo Edit + BASH Menu plugin.
 +
* [http://bluegriffon.org BlueGriffon] is a very slick WYSIWYG editor for HTML5.
 +
* [http://fpgui.sourceforge.net fpGUI Toolkit] has been tested and fully working on the RPi. fpGUI is a custom drawn, full featured, cross-platform GUI toolkit that has been in development since 2006. fpGUI can be use for Desktop or Embedded environments, and is suitable for commercial and open source projects. Implemented 100% in Object Pascal, and producing small executables and very low library dependency (just the standard X11 - no Qt or GTK etc required). For a very quick setup of the Free Pascal Compiler & fpGUI Toolkit, download the starter archive (3.5MB download) from http://www.turbocontrol.com/easyfpgui.htm. Unzip, and you are ready to go! fpGUI includes lots of ready made widgets, a documentation viewer (docview), a Visual GUI Forms Designer (uidesigner), and an IDE (maximus). The IDE is still in the very early stages of development, but any programmer editor could be used with fpGUI too.
 +
* [https://github.com/rec/pi3d Pi3D hardware accelerated 3D (and 2D) for python] - still being improved but works now
 +
* [http://learn.adafruit.com/webide/overview Adafruit Learning System Raspberry Pi WebIDE] - allows programs to be written, compiled, and executed on the RPi via a web interface.
  
 
==Robotics==
 
==Robotics==
 
* [http://mindstorms.lego.com/en-us/Default.aspx Lego Mindstorms]
 
* [http://mindstorms.lego.com/en-us/Default.aspx Lego Mindstorms]
 
* [http://edu.kde.org/kturtle/ KTurtle] and other Logo/[http://en.wikipedia.org/wiki/Turtle_graphics turtle graphics] (The IO board supports motor drive outputs)
 
* [http://edu.kde.org/kturtle/ KTurtle] and other Logo/[http://en.wikipedia.org/wiki/Turtle_graphics turtle graphics] (The IO board supports motor drive outputs)
 +
 +
==Would Be Great If These Worked==
 +
* wvdial -- Dialer for Land-line, GSM, UMTS modems and other serial devices.
 +
* VHDL -- VHDL (VHSIC hardware description language) is a hardware description language used in electronic design automation to describe digital and mixed-signal systems such as field-programmable gate arrays and integrated circuits.
 +
* Verilog -- Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits at the register-transfer level of abstraction.
  
 
==Uncategorised==
 
==Uncategorised==
 
* [http://wiki.sugarlabs.org/go/What_is_Sugar%3F Sugar Learning Platform: An alternative to the Desktop metaphor of the GUI]
 
* [http://wiki.sugarlabs.org/go/What_is_Sugar%3F Sugar Learning Platform: An alternative to the Desktop metaphor of the GUI]
* [http://futureboy.us/frinkdocs/ Frink]
+
* [http://futureboy.us/frinkdocs/ Frink] - A language that tracks units of measure through all calculations.  If Java works, Frink will work.  Frink runs under any version of Java 1.1 or later.  Can work without GUI, with AWT GUI, or with Swing GUI, or run on Android if that's what you're using.
 
* [http://www.geometricalgebra.net/gaviewer_download.html GAViewer]
 
* [http://www.geometricalgebra.net/gaviewer_download.html GAViewer]
 
* [http://www.geogebra.org/cms/ GeoGebra]
 
* [http://www.geogebra.org/cms/ GeoGebra]
Line 63: Line 93:
  
 
See also [[:Category:Education]]
 
See also [[:Category:Education]]
 
  
 
== References ==
 
== References ==

Revision as of 03:36, 24 March 2013

Back to the Hub.


Software & Distributions:

Software - an overview.

Distributions - operating systems and development environments for the Raspberry Pi.

Kernel Compilation - advice on compiling a kernel.

Performance - measures of the Raspberry Pi's performance.

Programming - programming languages that might be used on the Raspberry Pi.


Programming languages, IDEs, etc

Tested on Alpha board

Tested on RPi

Expected to work

See also: RaspberryPiBoard/EducationalLinks for education-friendly languages.

Graphical Programming

  • Gambas - possibly a good choice; easy like old visual basic
  • Scratch
  • Alice
  • Android App Inventor
  • Kodu
  • Star Logo
  • PrimerLabs CodeHero
  • Lazarus I was working on LaZorOS4Pi a while back to provide a on-device IDE but I'm stuck with only a VGA monitor + chroot. Will pick it back up asap for it is a great combination. (Used: Fedora, Razor-QT desktop and Lazarus-QT+FreePascal. 2nd attempt => Funtoo)
  • YAD 'Yet Another Dialog' for fast GUI scripting in BASH.
  • EasyBashGui Want to keep it fast and simple than this is your tool. Goes even faster with the code snippets from Komodo Edit + BASH Menu plugin.
  • BlueGriffon is a very slick WYSIWYG editor for HTML5.
  • fpGUI Toolkit has been tested and fully working on the RPi. fpGUI is a custom drawn, full featured, cross-platform GUI toolkit that has been in development since 2006. fpGUI can be use for Desktop or Embedded environments, and is suitable for commercial and open source projects. Implemented 100% in Object Pascal, and producing small executables and very low library dependency (just the standard X11 - no Qt or GTK etc required). For a very quick setup of the Free Pascal Compiler & fpGUI Toolkit, download the starter archive (3.5MB download) from http://www.turbocontrol.com/easyfpgui.htm. Unzip, and you are ready to go! fpGUI includes lots of ready made widgets, a documentation viewer (docview), a Visual GUI Forms Designer (uidesigner), and an IDE (maximus). The IDE is still in the very early stages of development, but any programmer editor could be used with fpGUI too.
  • Pi3D hardware accelerated 3D (and 2D) for python - still being improved but works now
  • Adafruit Learning System Raspberry Pi WebIDE - allows programs to be written, compiled, and executed on the RPi via a web interface.

Robotics

Would Be Great If These Worked

  • wvdial -- Dialer for Land-line, GSM, UMTS modems and other serial devices.
  • VHDL -- VHDL (VHSIC hardware description language) is a hardware description language used in electronic design automation to describe digital and mixed-signal systems such as field-programmable gate arrays and integrated circuits.
  • Verilog -- Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits at the register-transfer level of abstraction.

Uncategorised

See also Category:Education

References