BEESM is a Linux-friendly educational Block-based End-user programming tool for SMart Environments for Bremen Ambient Assisted Living Lab-BAALL, TurtleBot3, and Arduino.
BEESM is based on Blockly, the web-based, graphical programming environment. BEESM Provides static type language blocks and code generators for BAALL, TurtleBot3 and Arduino programming.
- Programming BAALL, TurtleBot3, and Arduino with visually drag and drop code blocks
- programming TurtleBot3 based on ROS with visually drag and drop code blocks
- Generate fully compatible Arduino source code, using BlocklyDuino framework
BEESM is still under development and a few features are not yet implemented. It is currently tested under Linux Ubuntu with Python 2.7.
If you want to install it locally, get the detailed instruction in
BEESM_Installation Process.txt
.
The preffered way is to put the BEESM/web folder into a web server, such as XAMMPP and open the url like http://localhost:8012/BEESM/main/index.php for use.
You need to connect to the BAALL web server to upload the code to it.
You can run a mini webserver which is also based on CherryPy that uses the understandable functions for ROS to upload the code to a connected TurtleBot3. Copy this command from the BEESM root folder and run it in Linux Terminal:
python ros_web_server.py
All attributes are available at: http://localhost:8099/, and you can access BEESM on http://127.0.0.1:8099/
To avoid manually pasting code to the Arduino IDE, you can run a mini webserver which is based on CherryPy that uses the Arduino IDE to upload the code to a connected Arduino/WeMos boards in Linux systems. Copy this command from the BEESM root folder and run it in Linux Terminal:
python arduino_web_server.py
Please specify the portname --/dev/ttyACM0
(or it will search and guess which port to use)
When you see "Blockly-Arduino can now be accessed at
http://127.0.0.1:8090", it means that the connection stablishied properly.
Then you can access BEESM on http://127.0.0.1:8090/
- Open browser to BEESM, drag and drop blocks to Author programs for BAALL, TurtleBot3, and Arduino/WeMos boards
- Select the 'BAALL' tab to program BAALL and press 'Run Code' button.
- Run Ros on your Linux System and select the 'TurtleBot3' tab to program TurtleBot3 and press 'Run Code' button.
- Select the 'Arduino' tab to program Arduino/WeMos boards and press the 'Upload Code' button. Also, you can press 'Code Modifier' button to type Arduino code and then press 'Upload Code' button.
Mazyar Seraj (@maziarser).
Thanks to Anke Koenigschulte from CPS,DFKI GmbH.
BEESM developed in the context of project SMILE which was funded by the German Federal Ministry for Education and Research - BMBF, grant number 01FP1613.
BEESM has been inspired by BlocklyDuino and CodeIt!.
Blockly original source is Copyright of Google Inc. Blockly.
In order to highlight the codes, we used CodeHighlighter and CodeMirror.
Copyright (c) 2020 Cyber-Physical Systems (CPS), DFKI GmbH, and Group of Computer Architecture (AGRA). All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0.
The full document can be found in the LICENSE files.
- BEESM, a Block-based Educational Programming Tool for End Users. Proceedings of the 10th Nordic Conference on Human-Computer Interaction (NordiCHI), 2018.
- Smart Homes Programming: Development and Evaluation of an Educational Programming Application for Young Learners. Proceedings of the 18th ACM International Conference on Interaction Design and Children (IDC), 2019.