GithubHelp home page GithubHelp logo

techplexengineer / easyj4frc Goto Github PK

View Code? Open in Web Editor NEW
8.0 6.0 2.0 21.98 MB

Easily program your FRC robot with the block programming tool Blockly

Home Page: http://easyj.team5122.com/

License: Apache License 2.0

Python 3.24% HTML 3.32% JavaScript 87.11% CSS 0.69% PHP 1.26% Makefile 0.18% Closure Templates 3.92% POV-Ray SDL 0.22% Dockerfile 0.01% Shell 0.04%

easyj4frc's Introduction

EasyJ4FRC

Easily program your FRC robot with the block programming tool Blockly

My goal is to allow FRC Rookies and new programmers to get their feet wet with some Java code using the WPI Robotics Library.

Demo

A recent build of the EasyJ4FRC environment is available here:
EasyJ4FRC Demo

Prerequisites

You'll need:

  • Python 2.7+ (but not Python3)
  • Webserver with PHP

Building & Hacking

  1. Create a directory to work in I'll call mine working
  2. Download a copy of EasyJ4FRC and
  3. unzip it into a folder within working, I'll call mine EasyJ4FRC
  4. Download a copy of the Closure library
  5. unzip master.zip it into a folder in working, it must be called closure-library-read-only
  6. Go into the EasyJ4FRC folder and try running the build script(build.py) now. This will generate the conpressed version of Blockly.
  7. Make the working folder web accessible. Apache if you are on linux, or XAMPP otherwhise. You'll need PHP
  8. Now using your web server, open apps/robotbuilder/index.php and begin hacking!

Note: I have only tested these instructions on Linux.

Credits

EasyJ4FRC is based on Google Blockly.
Blockly Demo

Todos

  • Custom input checkers (ie: Joystick button valid values are 1-12) [EasyJ.Checker.*]
  • Change the root block to be two function blocks teleop & auto
  • Loadable Demos
  • Help Pages
  • About page
  • Settings Page
    • Alter package [x]
    • Alter Robot Class [x]
    • Ensure entered package and class are valid
  • Command Base
    • multiple class tabs
    • add new subsystems
    • add new commands
  • Easier deploys (update toolbox, update path) (rsync in make)
  • Fix digital & analog 'Get' blocks
  • Test, Test, Test - Make sure the blocks generate good code
  • Add more blocks
    • Gyro [x]
    • Variables
    • Lists
    • Subroutines
    • Accelerometer
    • Smart Dashboard
    • Pneumatics [x]
      • Compressor [x]
      • Solenoids [x]
      • Pressure switch (part of compressor object)
    • Digital Output [x]
    • Relay [x]
    • Encoder
    • I2C
    • PID
    • Servo
    • Iterative Robot [x]
    • Ultrasonic
    • Watchdog?
  • Make types more like Java types (double, float, int, long ...)
  • Save/Load (localstorage)
    • Google Drive?
    • Gist?
    • To file?
  • Could we dump out a netbeans project?
  • make a desktop version
  • make a cool logo
  • handle variable rename
  • hide blocks until variable exists (disable instead of hide)
  • set warning on orphanned blocks
  • change "Declare" to "Create"
  • Add more examples
  • add tool tips for blocks
  • add help url for blocks
  • remove old logic checking value blocks
  • ensure blockly default blocks have the next and previous statment type properly specified
  • Setup warning on non-init blocks
  • Once the declare block has been used the modifier blocks are enabled. THe problem is the modifier blocks have a new variable option. Actually It probably shouldn't exist on any of the modifier blocks. We need a way to make sure that the modifier blocks are set to one of the variables which exists because of a decleare block. One possible solution is to have value ports and create blocks in the menu for each variable.
  • need a test procedure for the code
  • It would be nice to handle port assiginments better, so that the same port can not be multiply selected
  • Should the robot drive block which creates 4 motor controller objects add the MC objects to the variable dropdown so that they can be independently accessed?
  • remove the compresor block
  • make all of the declare blocks the same color so that it is more obvious where they go.
  • Add a description to the save system
  • allow fields to have their own tool tips

easyj4frc's People

Contributors

jgrindlegit avatar techplexengineer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

jgrindlegit qbzjs

easyj4frc's Issues

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.