first commit

This commit is contained in:
pandacraft 2025-03-21 16:04:17 +01:00
commit a5a0434432
1126 changed files with 439481 additions and 0 deletions

112
Script/install_scratch.sh Normal file
View file

@ -0,0 +1,112 @@
echo "This script will install Scratch for GrovePi+ on a standard Stretch Raspbian"
PIHOME=/home/pi
RASPBIAN=$PIHOME/di_update/Raspbian_For_Robots
DEXTER=Dexter
ROBOT_FOLDER=GrovePi
LIB=lib
LIB_PATH=$PIHOME/$DEXTER/$LIB
DEXTERLIB_PATH=$LIB_PATH/$DEXTER
SCRATCH=Scratch_GUI
SCRATCH_PATH=$DEXTERLIB_PATH/$SCRATCH
RFR_TOOLS_PATH=$LIB_PATH/$DEXTER/RFR_Tools
# let's test for the presence of ~/Dexter/lib/Dexter as a sign that all tools are
# pre-installed
if [ ! -d "$DEXTERLIB_PATH" ]
then
echo "Installation issues. Please install GrovePi first."
echo "curl -kL dexterindustries.com/update_grovepi | bash"
exit 1
fi
if [ ! -d "$RFR_TOOLS_PATH" ]
then
echo "Installation issues. Please install GrovePi first."
echo "curl -kL dexterindustries.com/update_grovepi | bash"
exit 2
fi
if [ ! -d "$PIHOME/$DEXTER/$ROBOT_FOLDER" ]
then
echo "Installation issues. Please install GrovePi first."
echo "curl -kL dexterindustries.com/update_grovepi | bash"
exit 3
fi
source $DEXTERLIB_PATH/script_tools/functions_library.sh
# feedback "Installing some libraries"
# sudo apt-get install python-smbus python3-smbus
setup_modules_and_config(){
feedback "activating I2C"
sudo sed -i "/i2c-dev/d" /etc/modules
sudo echo "i2c-dev" >> /etc/modules
sudo sed -i "/dtparam=i2c_arm=on/d" /boot/config.txt
sudo echo "dtparam=i2c_arm=on" >> /boot/config.txt
}
install_scratchpy() {
# installing scratch_controller
pushd $LIB_PATH > /dev/null
delete_folder scratchpy
git clone --depth=1 https://github.com/DexterInd/scratchpy
cd scratchpy
sudo make install > /dev/null
popd > /dev/null
}
# Copy shortcut to desktop.
install_desktop_icons() {
feedback "Installing Scratch on the desktop"
if [ -f "/usr/bin/scratch" ]
then
echo "Installing support for Scratch 1.4"
echo $RFR_TOOLS_PATH/Scratch_GUI/Scratch_Start.desktop
sudo cp $RFR_TOOLS_PATH/Scratch_GUI/Scratch_Start.desktop /home/pi/Desktop/Scratch_Start.desktop
else
echo "scratch not found"
fi
if [ -f "/usr/bin/scratch2" ]
then
echo "Installing support for Scratch 2"
pushd $PIHOME/$DEXTER/$ROBOT_FOLDER/Software/Scratch/s2pifiles > /dev/null
sudo cp extensions.json /usr/lib/scratch2/scratch_extensions/extensions.json
sudo cp piGrovePiExtension.js /usr/lib/scratch2/scratch_extensions/piGrovePiExtension.js
sudo cp grovepi.html /usr/lib/scratch2/scratch_extensions/grovepi.html
sudo cp -u grovepi.png /usr/lib/scratch2/medialibrarythumbnails/grovepi.png
popd > /dev/null
sudo cp $PIHOME/$DEXTER/$ROBOT_FOLDER/Software/Scratch/Local_Scratch2_Start.desktop /home/pi/Desktop/Local_Scratch2_Start.desktop
fi
# Desktop shortcut permissions.
sudo chmod +x $PIHOME/Desktop/*.desktop
}
feedback "Installing Scratch Environment"
setup_modules_and_config
install_scratchpy
sudo rm -r $DEXTERLIB_PATH/$SCRATCH
mkdir -p $DEXTERLIB_PATH/$SCRATCH
cp -r $RFR_TOOLS_PATH/$SCRATCH $DEXTERLIB_PATH/
install_desktop_icons
# Make select_state, error_log, nohup.out readable and writable
sudo echo "GrovePi" >> $SCRATCH_PATH/selected_state
sudo touch $SCRATCH_PATH/error_log
sudo chmod 666 $SCRATCH_PATH/selected_state
sudo chmod 666 $SCRATCH_PATH/error_log
sudo cp $PIHOME/$DEXTER/$ROBOT_FOLDER/Software/Scratch/new.sb $PIHOME/$DEXTER/$LIB/$DEXTER/$SCRATCH/new.sb
# transferring Scratch examples into proper Scratch folder
sudo rm /usr/share/scratch/Projects/$ROBOT_FOLDER 2> /dev/null
sudo ln -s $PIHOME/$DEXTER/$ROBOT_FOLDER/Software/Scratch/Examples /usr/share/scratch/Projects/$ROBOT_FOLDER 2> /dev/null
feedback "You now have a Scratch icon on your desktop. Double clicking it will start Scratch with all the necessary configuration to control your GrovePi+"
feedback "Please note that you cannot use Scratch from the menu or double click on a Scratch file to control your robot."