GithubHelp home page GithubHelp logo

adamj537 / ardublockedu Goto Github PK

View Code? Open in Web Editor NEW

This project forked from taweili/ardublock

1.0 2.0 0.0 21.51 MB

ArduBlock is a Block Programming Language for Arduino.

License: GNU General Public License v3.0

Shell 0.28% Java 99.57% Ruby 0.15%

ardublockedu's Introduction

Note: I (Adam) have been notified that there is a bug which prevents ArduBlockEdu from working with the Arduino software v.1.6.12 or later. I've not yet fixed this, but it's on my to-do list.

ArduBlock Education Edition

ArduBlock is a Block Programming Language for Arduino. The language and functions model closely to Arduino Language Reference. This version of ArduBlock is tweaked to more closely resemble the Arduino language, and is meant to teach kids programming basics before transitioning to C or C++. Some of the changes:

  • Block names match the Arduino Language Reference as much as possible. For example, the original ArduBlock had a block called "repeat"; this version has a block named "for" - this way kids will get to know the concept of a for loop.
  • Block drawers are organized to match the Arduino Libraries as much as possible.
  • Code produced is as human-readable as possible. Variable or function names aren't changed unless absolutely necessary. All code is indented four spaces.
  • Third-party libraries are removed, so kids don't feel as overwhelmed.

Installation

After building this, copy the target/ardublock-all.jar to Arduino\tools\ArduBlockTool\tool. Then open the Arduino IDE, and go to Tools --> ArduBlock Education Edition.

Building The Project

This project is written in Java, so you can use Netbeans (if you're unsure what version, try Java SE; also the installer will prompt you to install the JDK) or Eclipse to modify and compile it. I (Adam) am using Netbeans. This project also uses a build manager called Maven, which nicely ensures that most dependancies are downloaded to your computer when you compile for the first time. Also, if using Netbeans, note that the most recent JDK may not work with it JDK 8 works well. If you want to modify ArduBlock, and are also using Netbeans, there are a few things you need to do:

  • Clone this repository. Hopefully that's an obvious step :)
  • Clone the openblocks repository. Openblocks is the code that makes all the pretty blocky shapes, and must be on your machine.
  • Open both projects in Netbeans. With Netbeans, there's not a central project file you can click to open the project. Instead, you must first open Netbeans, and use Netbeans to open the project.
  • The first time you build, make sure you have an internet connection, as Maven will need to download dependancies.
  • Build openblocks.
  • Build arduBlock. ** Netbeans will complain about not knowing what the "main" class is. To fix that, right-click on your Project in the project explorer, click on Properties --> Run --> Set "Main Class" to "com.ardublock.Main". ** Netbeans may complain about not being able to download the pde-1.0.jar file. To fix that, go to the Netbeans Project Explorer and navigate to ArduBlock --> Dependancies --> Right-click on pde-1.0.jar and click "Manually install artifact". Browse to the pde.jar file included in the lib folder of the ardublock repository.

To Do List

Most of the features I'd like to implement have to do with functions with arguments. There's currently a block that allows you to create your own function with a single argument, and it must be an integer.

  • Make it work with the latest version of Arduino (see note above).
  • There's a bug in the function-with-argument block that causes a compiler error if you use the default argument. Fixing this is my top priority.
  • Figure out how to support multiple function arguments. Maybe with a "glue" operator?
  • Make variable type change based on what you add to function
  • Add help documentation.
  • Translate comments into code.
  • Fix the "save as picture" feature.

Authors

Authors of the original version:

License

This file is part of ArduBlock.

ArduBlock is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ArduBlock is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with ArduBlock. If not, see http://www.gnu.org/licenses/.

ardublockedu's People

Contributors

aarn avatar adamj537 avatar danielfsc avatar haobug avatar heqichen avatar joselorente avatar karlth avatar ldgneto avatar leoyan avatar taweili avatar tonycallear avatar wheels123 avatar xeecos avatar zvikapika avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.