Développement en cours !!!
19 mars 2014 à 14:59
sudo gpp ++ -o NFC NFC.cpp -lwiringPi
sudo ./NFC
sudo raspi-configensuite dans overclocking choisir le mode de votre choix pour moi le medium suffit.
sudo apt-get updatesudo apt-get upgrade
sudo mkdir ./minecraft
cd ./minecraft
sudo apt-get installer oracle-java7-jdk
wget CraftBukkit.jar
sudo chmod +x Craftbukkit.jarNe reste plus qu'a lancer votre serveur avec :
sudo java -Xms300M -jar craftbukkit.jarEt voilà le serveur se lance, c'est un peu long. Mais une fois lancer une connexion et en avant.
sudo nano mkdir ./CraftBukkit.shEnsuite on colle ceci, si cela est nécessaire on change le nom du .jar :
#!/bin/sh BINDIR=$(dirname "$(readlink -fn "$0")") cd "$BINDIR" java -Xms300M -jar craftbukkit.jar -o falseOn donne les droits au script :
sudo chmod 555 ./CraftBukkit.shEt voilà le script est prêt. Et maintenant il serait pratique de lancer se script en fond de tache, pour cela j'utilise Screen qui permet en gros de créer plusieurs terminaux dans le même terminale. Donc on commence par installer Screen :
sudo apt-get install screenEnsuite il va falloir modifier notre script pour que la commande de lancement se passe dans un autre screen, on remplace la ligne "java -Xms300M -jar craftbukkit.jar -o false" par :
screen -s minecraft java -Xms300M -jar craftbukkit.jar -o falseOn à donc créer lors du lancement du script un screen qui se nomme "minecraft", lors du lancement vous serez sur le ce fameux screen mais vous pouvez revenir sur votre espace de travail avec le raccourci ctrl-a+d, pour revenir sur le screen cette commande vous sera utile :
screen -raAd minecraftEt voilà vous avez maintenant un joli serveur minecraft en fond de tache vous pouvez quitter votre session putty et le serveur sera toujours la.
mkdir ./LCD_IPcd ./LCD_IPEnsuite on télécharge la librairie :
git clone https://github.com/quick2wire/quick2wire-python-api.git
cd ./quick2wire-python-apiEt on telecharge la derniere librairie "i2cLibrairies" avec :
sudo git clone https://bitbucket.org/thinkbowl/i2clibraries.gitVoila c'est fini pour la librairie vous devriez avoir un nouveau dossier avec à l'intérieur tout les librairie.
lcd = i2c_lcd.i2c_lcd(0x27, 0, 2, 1, 0, 4, 5, 6, 7, 3)
import sys, os
# On définie l'emplacement de la librairie
sys.path.append(r'/home/pi/LCD_IP/quick2wire-python-api')
from i2clibraries import i2c_lcd
from time import *
import socket
#Init de 'afficheur
lcd = i2c_lcd.i2c_lcd(0x27,1, 2, 1, 0, 4, 5, 6, 7, 3)
#Récupère l'adresse ip
locals = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
locals.connect(('google.com', 0))
#On affiche tout sa sur l'afficheur
LCDlcd.backLightOn()
lcd.clear()
lcd.setPosition(1, 2)
lcd.writeString(str(locals.getsockname()[0]))
lcd.setPosition(2, 0)
lcd.writeString("hello")
sudo python3 ./LCD.pyEt voila l'afficheur LCD vous affiche votre adresse IP local.
#!/bin/bash
# /etc/init.d/LCD_IP.sh
case "$1" in
start)
echo "lancement du programme de l'afficheur LCD"
#la on lance le programme
sudo python3 /home/pi/LCD_IP/LCD_IP.py &
;;
stop)
echo "arret du programme de l'afficheur LCD"
sudo killall LCD_IP.py
;;
*)
echo "Usage: /etc/init.d/LCD_IP {start|stop}"
exit 1
;;
esac
exit 0
sudo chmod /etc/init.d/LCD_IPDernière étapes ajouter se script au démarrage du système avec ceci :
sudo update-rc.d LCD_IP defaultsEt voila fini pour ce petit tuto, plus besoin de chercher sur le réseaux l'adresse de votre RPI.
git clone git://github.com/tanzilli/ablib.git
cd ablib
python setup.py installLa librairie est maintenant installée et prête à être utilisé.
from ablib import Pin
from time import sleep
while True:
led = Pin('J4.7','OUTPUT') # pin 7 du port J4 en sortie
led.on()
sleep(0.5)
led.off()
sleep(0.25)
#include "stdio.h"
#include "stdlib.h"
#include "unistd.h"
int gpioexport(int gpioid)
{
FILE *filestream;
if ((filestream=fopen("/sys/class/gpio/export","w"))==NULL) {
printf("Error on export GPIO\n");
return -1;
}
fprintf(filestream,"%d",gpioid);
fclose(filestream);
return 0;
}
int gpiosetdir(int gpioid,char *mode)
{
FILE *filestream;
char filename[50];
sprintf(filename,"/sys/class/gpio/gpio%d/direction",gpioid);
if ((filestream=fopen(filename,"w"))==NULL) {
printf("Error on direction setup\n");
return -1;
}
fprintf(filestream,mode);
fclose(filestream);
return 0;
}
int gpiogetbits(int gpioid)
{
FILE *filestream;
char filename[50];
char retchar;
sprintf(filename,"/sys/class/gpio/gpio%d/value",gpioid);
if ((filestream=fopen(filename,"r"))==NULL) {
printf("Error on gpiogetbits %d\n",gpioid);
return -1;
}
retchar=fgetc(filestream);
fclose(filestream);
if (retchar=='0') return 0;
else return 1;
}
int gpiosetbits(int gpioid)
{
FILE *filestream;
char filename[50];
sprintf(filename,"/sys/class/gpio/gpio%d/value",gpioid);
if ((filestream=fopen(filename,"w"))==NULL) {
printf("Error on setbits %d\n",gpioid);
return -1;
}
fprintf(filestream,"1");
fclose(filestream);
return 0;
}
int gpioclearbits(int gpioid)
{
FILE *filestream;
char filename[50];
sprintf(filename,"/sys/class/gpio/gpio%d/value",gpioid);
if ((filestream=fopen(filename,"w"))==NULL) {
printf("Error on clearbits %d\n",gpioid);
return -1;
}
fprintf(filestream,"0");
fclose(filestream);
return 0;
}
int main(void)
{
int led = 23; # GPIO PA23 donc son nom est 23
gpioexport(led);
gpiosetdir(led,"out");
for (;;) {
gpiosetbits(led);
sleep(1);
gpioclearbits(led);
sleep(1);
}
}
git clone https://github.com/kkiwill/Arietta_MF-RC522
cd ./SPI_Librairie
python setup install
cp ./Exemple/read.py ./MF-RC522_Librairie
python ./read.py
nano /var/log/auth.logAprès avoir vu le nombre de tentatives j'ai décidé de rechercher des solutions, je vais donc vous faire par de toutes les méthodes de protection que j'ai suivies pour sécurisé votre le serveur.
sudo nano /etc/ssh/sshd_configRechercher la ligne avec "Port" et modifier la ligne en conséquence, mais attention si vous êtes connecté en SSH vous serez aussitôt déconnecter au moment de la sauvegarde du fichier.
PermitRootLogin yespar :
PermitRootLogin no
sudo apt-get install fail2ban
dmesg
sudo apt-get install GPartedPuis dans vos application lancer GParted, vous pouvez maintenant sélectionner votre carte SD et voir quelque chose comme le screenshot ci dessous :
sudo wget http://www.acmesystems.it/download/microsd/Arietta-30aug2014/kernel.tar.bz2Téléchargement de rootfs :
sudo wget http://www.acmesystems.it/download/microsd/Arietta-30aug2014/rootfs.tar.bz2On va maintenant décompresser ces deux archives dans les partitions avec pour le kernel :
sudo tar -xvjpSf kernel.tar.bz2 -C /media/$USER/KERNEL
sudo tar -xvjpSf rootfs.tar.bz2 -C /media/$USER/rootfsPenser à remplacer $USER par votre nom d'utilisateur :). Voila votre carte est prête à être démonter la carte SD puis brancher votre Arietta G25. Prochaine étape le premier démarrage.
sudo nano /media/$USER/rootfs/etc/network/interfacesEt éditer le fichier comme ceci :
sudo nano /etc/network/interfacesPuis ajouter les lignes suivantes :
sudo ifup usb0
#!/usr/bin/env python # -*- coding: utf-8 -*- import Socket_Event import subprocess import RPi.GPIO as GPIO from Sys_Info import * # Variables globale DEBUT_TRAME = "R" FIN_TRAME = "I" SEPARATEUR = chr(0x02) # Reception de la trame et renvoie d'une autre def TraiteRecv(self, data): # Variable ToSend = "" # Test si debut et fin de trame(pour vérification de trame complète) if (data[:1] == DEBUT_TRAME and data[-1:] == FIN_TRAME): data = data[1:len(data)-1] # Selon contenue if (data == "temp"): ToSend = str(get_temperature()) if (data == "cpu"): ToSend = str(get_cpu_speed()) if (data == "uptime"): ToSend = get_up_stats()[0] if (data == "ram"): ToSend = str(get_ram()[1])+' ('+str(get_ram()[0])+')' if (data == "nbproc"): ToSend = str(get_process_count()) # GPIO mode if (data[0:2] == "GM"): try: mode = data[2:3] pin = int(data[3::]) if (mode == "I"): GPIO.setup(pin,GPIO.IN) else: GPIO.setup(pin,GPIO.OUT) except Exception, e: ToSend = ("Erreur_%s" % e) # GPIO write if (data[0:2] == "GW"): try: etat = int(data[2:3]) pin = int(data[3::]) if (etat == 1): GPIO.output(pin, GPIO.HIGH) else: GPIO.output(pin, GPIO.LOW) except Exception, e: ToSend = ("Erreur_%s" % e) # GPIO read if (data[0:2] == "GR"): try: pin = int(data[2::]) etat = GPIO.input(pin) ToSend = str(etat) except Exception, e: ToSend = ("Erreur_%s" % e) # On renvoie la donnée recu et la réponse (séparer par caract de 2) Socket_Event.EchoHandler.handle_write(self, DEBUT_TRAME + data + SEPARATEUR + ToSend + FIN_TRAME) # Definition de la socket interface = "192.168.0.13" port = 59004 # GPIO configuration GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) # Lancement de la socket server = Socket_Event.EchoServer((interface, port), TraiteRecv) server.serve_forever()
#include "../Lib/libGPIO.h" #include <stdio.h> #include <stdlib.h> int main() { GPIO led("A23"); // "A23" ou kernel id = 23 led.pinMode(OUTPUT); while(1) { Delay(250); led.digitalWrite(HIGH); Delay(250); led.digitalWrite(LOW); } }
#include "../Lib/libGPIO.h" #include <stdio.h> #include <stdlib.h> int main() { GPIO led("A23"); // "A23" ou kernel id = 23 led.pinMode(OUTPUT); while(1) { led.digitalWrite(readButton()); } }
git clone https://github.com/kkiwill/Arietta_G25_GPIO_Library.git
cd ./Arietta_G25_GPIO_Library/Example
g++ ./Blink.cpp ../Lib/libGPIO.cpp -o Blink -lrt
import picamera import time import RPi.GPIO as GPIO # Definition de l'objet camera camera = picamera.PiCamera() # Lecture de l'incrementation fichier ficR = open('/home/pi/Programme/Python/Video_Drone/Videos/INCR.txt','r+') sINCR = ficR.read(3) print sINCR iINCR = int(sINCR) ficR.close() iINCR +=1 # Ecriture du fichier d'incrementation ficW = open('/home/pi/Programme/Python/Video_Drone/Videos/INCR.txt','wb') ficW.write(str(iINCR)) ficW.close() camera.rotation = 180 camera.start_recording('/home/pi/Programme/Python/Video_Drone/Videos/Flight' + str(iINCR) + '.h264') while (1): time.sleep(1)
@reboot sudo python /home/pi/Programme/Python/Video_Drone/Video_Reboot.py
sudo apt-get install gpac
MP4Box -add ./Flight9.h264 ./Flight9.mp4