Please note that User Registration has been temporarily disabled due to a recent increase in automated registrations. If anyone needs an account, please request one here: RequestAccount. Thanks for your patience!--Wmat (talk)
Please email User:Wmat if you experience any issues with the Request Account form.

Difference between revisions of "Raspberry Pi Programming"

From eLinux.org
Jump to: navigation, search
(Tested on RPi)
(Modify Nimrod URL.)
 
(30 intermediate revisions by 16 users not shown)
Line 1: Line 1:
 
{{Template:RPi_Software}}
 
{{Template:RPi_Software}}
  
 
+
==Programming languages, IDEs, etc.==
 
+
==Programming languages, IDEs, etc==
+
  
 
===Tested on Alpha board===
 
===Tested on Alpha board===
Line 14: Line 12:
 
* Mono (C#)
 
* Mono (C#)
 
* OCaml
 
* OCaml
* NodeJS 0.6.18 (Javascript)
+
* Node.js 0.6.18 (JavaScript)
 
* Perl
 
* Perl
 
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
 
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
 
* Ruby 1.9.2 (KidsRuby)
 
* Ruby 1.9.2 (KidsRuby)
 
* Scala
 
* Scala
* [http://nimrod-code.org/ Nimrod]
+
* [http://nimrod-lang.org/ Nimrod]
 
* [http://freecode.com/projects/tinybc Tiny BASIC for Curses]
 
* [http://freecode.com/projects/tinybc Tiny BASIC for Curses]
  
===Tested on RPi===
+
===Tested on Raspberry Pi===
  
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
+
* [[CSharp_on_RPi|C#]]
 +
* [[CodeBlocks]]
 +
* [[Erlang]]
 +
* [[Forth]]
 +
* [http://xxicc.org GalaxC programming language and XXICC "Chicken Coop" environment] (works in progress)
 +
* [[Go_on_RPi|Go]]
 
* 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.
 +
** Groovy (requires Java)
 +
** Other JVMs are compared [http://www.raspberrypi.org/phpBB3/viewtopic.php?f=34&t=15639 here].
 +
* JavaScript via [[Node.js on RPi|Node.js]]
 +
* Pascal
 +
** [[Free Pascal on RPi|Free Pascal Compiler / Object Pascal language]]
 +
** [[Lazarus on RPi|Lazarus]], the professional cross-platform IDE for [[Free Pascal]].
 
* PHP
 
* PHP
* Groovy
+
* Python <ref>http://ntoll.org/article/baking-with-raspberrypipy</ref>
* [http://www.freepascal.org Free Pascal Compiler / Object Pascal language]
+
* Regina Rexx <ref>http://www.rexx.org/</ref>
* [[Lazarus on RPi|Lazarus]], the professional cross-platform IDE for Free Pascal
+
* [[Scratch_on_RPi|Scratch]]
 +
* Tcl/Tk
  
 
===Expected to work===
 
===Expected to work===
 
* Java
 
 
* Eclipse
 
* Eclipse
* Tcl/Tk
 
 
* (maybe) BoaConstructor
 
* (maybe) BoaConstructor
 
* Anjuta for C/C++
 
* Anjuta for C/C++
 
* Dev-C++
 
* Dev-C++
* CodeBlocks
 
 
* [http://www.lua.org/ Lua]
 
* [http://www.lua.org/ Lua]
 
* [http://www.bbcbasic.co.uk/bbcbasic.html BBC BASIC]
 
* [http://www.bbcbasic.co.uk/bbcbasic.html BBC BASIC]
Line 47: Line 56:
 
* [http://www.squeak.org/ Squeak implementation of Smalltalk]
 
* [http://www.squeak.org/ Squeak implementation of Smalltalk]
 
* [http://processing.org/ Processing]
 
* [http://processing.org/ Processing]
* Other BASIC variants common to Debian/Ubuntu/Fedora etc. are all likely to work fine, including:
+
* Other BASIC variants common to Debian, Ubuntu, Fedora, etc. are all likely to work fine, including:
 
** [http://http://basic256.org basic256] - educational BASIC programming environment for children  
 
** [http://http://basic256.org basic256] - educational BASIC programming environment for children  
 
** [http://www.bwbasic.at/tutorial.htm bwbasic] - Bywater BASIC Interpreter  
 
** [http://www.bwbasic.at/tutorial.htm bwbasic] - Bywater BASIC Interpreter  
Line 53: Line 62:
 
** [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]
 
* [http://regina-rexx.sourceforge.net/ Regina Rexx]
* [http://xxicc.org GalaxC programming language and XXICC "Chicken Coop" environment] (works in progress)
 
 
<blockquote>''See also:'' [[RaspberryPiBoard/EducationalLinks]] for education-friendly languages.</blockquote>
 
<blockquote>''See also:'' [[RaspberryPiBoard/EducationalLinks]] for education-friendly languages.</blockquote>
  
 
==Graphical Programming==
 
==Graphical Programming==
* [http://gambas.sourceforge.net/ Gambas] - possibly a good choice; easy like old visual basic
+
* [http://gambas.sourceforge.net/ Gambas] - possibly a good choice; easy like old Visual Basic
 
* [http://scratch.mit.edu/ Scratch]
 
* [http://scratch.mit.edu/ Scratch]
 
* [http://www.alice.org/ Alice]
 
* [http://www.alice.org/ Alice]
Line 65: Line 73:
 
* [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://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.
+
* [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.
+
* [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://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.
+
* [http://fpgui.sourceforge.net fpGUI Toolkit] has been tested and fully working on the Raspberry Pi. 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.5&nbsp;MB 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
+
* [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.
+
* [http://learn.adafruit.com/webide/overview Adafruit Learning System Raspberry Pi WebIDE] - allows programs to be written, compiled, and executed on the Raspberry Pi via a web interface.
 +
* [http://www.pridopia.co.uk/rs-pi-set-scratch.html Pridopia Scratch-RaspberryPi GPIO Driver] -- helping children / beginner programmers / hardware enthusiasts build up their skills by doing simple tasks with even easier commands / controls.
  
 
==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 I/O board supports motor drive outputs)
  
 
==Would Be Great If These Worked==
 
==Would Be Great If These Worked==
 
* wvdial -- Dialer for Land-line, GSM, UMTS modems and other serial devices.
 
* 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.
 
* 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.
+
* 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. icarus verilog (iverilog) is available at http://iverilog.icarus.com/ or apt-get install iverilog
  
 
==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] - 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.
+
* [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]

Latest revision as of 16:22, 11 January 2014

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

  • Clojure
  • gas (GNU assembler) [1]
  • gcc
  • g++
  • Interp
  • Mono (C#)
  • OCaml
  • Node.js 0.6.18 (JavaScript)
  • Perl
  • Python [2]
  • Ruby 1.9.2 (KidsRuby)
  • Scala
  • Nimrod
  • Tiny BASIC for Curses

Tested on Raspberry Pi

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 Raspberry Pi. 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.5 MB 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 Raspberry Pi via a web interface.
  • Pridopia Scratch-RaspberryPi GPIO Driver -- helping children / beginner programmers / hardware enthusiasts build up their skills by doing simple tasks with even easier commands / controls.

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. icarus verilog (iverilog) is available at http://iverilog.icarus.com/ or apt-get install iverilog

Uncategorised

See also Category:Education

References

  1. http://www.vanhaarlem.eu/assembler
  2. http://ntoll.org/article/baking-with-raspberrypipy
  3. http://ntoll.org/article/baking-with-raspberrypipy
  4. http://www.rexx.org/