Code Monkey home page Code Monkey logo

backend's Introduction

backend

Build CoderBot backend

CoderBot is a RaspberryPI-based programmable robot for educational purposes. Check the project website for more information.

For further information about development and technical documentation, see the Wiki.

This repository contains the backend, exposing the CoderBot API.

Quickstart

Prerequisites:

sudo apt install python3 python3-venv

Be sure you have Python 3.6. You may need to use python3.6 and python3.6-venv packages on some repositories with python3 already pointing to 3.7 (e.g. debian unstable/sid).

git clone https://github.com/CoderBotOrg/coderbot.git
cd coderbot
python3 -m venv .
source bin/activate

# Install the basic requirements
pip3 install -r requirements_stub.txt
# Additional packages if you are running the real thing
pip3 install -r requirements.txt

# Start the backend in stub mode
PYTHONPATH=stub:test python3 init.py

# or, run the real thing if you're on a physical RPi
python3 init.py

Once started, the backend will expose a number of endpoints:

backend's People

Contributors

avivace avatar bino3112 avatar dependabot[bot] avatar mikeleikele avatar previ avatar sorre97 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

backend's Issues

Add blocks to drive Servos 3 and 4

Servo 3 and 4 (1 and 2 are continuous servo, for bot motion, as an alternative to DC motors) are implemented in the python interface, but not in the Blockly interface.

i18n

Implement internationalization in the UI and programming blocks.

Help with extending coderbot (adding new Blocks)

Hi there,

We've forked your awesome project for an educational activity for students and kids here at Loughborough University and we're mostly learning as we go.

I can't seem to figure this one thing on my own so here's my question to you:

When writing your own custom Blocks (inside blocks.js) you've referenced some vars in the JavaScript/Python translations (i.e. CODERBOT_MOVE_FW_DEF_SPEED) and I can't see where the values for these names are set. I'm guessing that somehow the values in coderbot.cfg are copied to these JavaScript vars at some point, but where?

Many thanks for sharing your work and for your help!

Add "take a photo" function

Add a "take a photo" function with the ability to:
Control Mode:

  • take a snapshot from camera
  • browse saved images
    Programming mode:
  • program block to take a snapshot and save as file

Parameters page has no validation on fields

"Parameters" page provide a simple way of altering configuration parameters, but does not currently provide any validation, so it is possible (and actually easy) to save an invalid configuration which break the coderbot software, making it unusable.

program auto load and start

If the program configured as "load on start" is empty or not present, coderbot crashes.
If the program is present, it is not actually started.

add "bot status" indicator on UI

Add an "on/off" bot status indicator on UI.
The indicator must be:

  • "green" when the bot is running and reachable (wifi connection ok)
  • "red" when the bot is not reachable, a troubleshooting dialog shuld appear, showing:
    • if the correct wifi network is selected (can be done checking the client IP against a known pattern
    • if the bot is responding properly

"Update program" may consider a merge

Befor git pull on AGGIORNAMENTO you have to consider a merge, because you have this situation after a while:

pi@coderbot ~/coderbot $ git status
   On branch master
   Your branch is ahead of 'origin/master' by 12 commits.

  Changes not staged for commit:
    (use "git add/rm <file>..." to update what will be committed)
    (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   coderbot.cfg
    deleted:    data/program_.data
    modified:   data/program_no_name.data

and your pull could be refused

implement "settings" page

Implement a "settings" page with the following initial parameters:

  • program editor "level" (basic|advanced)
  • basic bot movement blocks defaults (speed, elapse)
  • camera defaults

Video streaming frozen

Sometime the video streming appear to stop.
The image is transferred to the client, but the image is not refreshed (frozen).

3d-Room recognition

It is possible to recognize 3d-environments using a simple camera or even simpler sensors. Here are some links:

This should allow to recognize walls, floors, obstacles and such.

I also develop robots and would like to get in touch with you, if you want to talk about the projects, see if we may be able to merge efforts.

implement audio speech detection

implement audio speech detection capability: the bot is able to understand a set of spoken commands from the compatible USB mic.

Implement a callback programming model

Implement a callback programming model, alongside the "polling" model.

Something like this:

def condition():

return camera.path_ahead() < 30

def handler():

bot.stop()

camera.add_handler( condition, handler)

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.