Nous avons tout mis en place concernant la raspberry PI et les softwares pour la Explore NFC pour que nos badges soient détectés, nous avons réussi à les faire détecter mais maintenant nous devons importer un système de chronométrage avec un chronomètre codé en python.
Notre projet consiste à créer une simulation de course de cyclisme, il y a normalement deux coureurs qui possèdent un badge NFC, nous devons faire détecter le temps, les départs, arrivés, nombre tours et faux départs.
Nous sommes actuellement perdus, vu que notre prof est ignorant avec nous, celui-ci s'occupe que du groupe qui représentera le lycée pour un évènement de course, nous, nous sommes mis de côté et devons être "autonome" selon lui ainsi que de trouver des solutions, mais après maintes recherche sur le web, nous n'avons toujours pas de solutions..
Si vous pouviez nous éclaircir sur comment procéder à l'installation d'un programme python sur notre carte raspberry PI, nous commençons à douter de notre projet et de sa facilité / difficulté,
Je vous remercie.
Voici notre programme en python:
Code : Tout sélectionner
[code]#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from tkinter import *
import time
from functools import partial
class Chronometre(Frame): # definition de la class'Chronomètre' dans Frame
def __init__(self, parent=None, **kw): # definition initiale de la class
Frame.__init__(self, parent, kw)
self._start = 0.0
self._elapsedtime = 0.0
self._running = 0
self.timestr = StringVar()
self.makeWidgets()
def makeWidgets(self): #definition pour afficher le temps
l = Label(self, textvariable=self.timestr)
self._setTime(self._elapsedtime)
l.pack(fill=X, expand=NO, pady=10, padx=10)
def _update(self): # definition du reset
self._elapsedtime = time.time() - self._start
self._setTime(self._elapsedtime)
self._timer = self.after(50, self._update)
def _setTime(self, elap): #définition du temps en minutes/secondes/millisecondes
minutes = int(elap/60)
seconds = int(elap - minutes*60.0)
hseconds = int((elap - minutes*60.0 - seconds)*100)
self.timestr.set('%02d:%02d:%03d' % (minutes, seconds, hseconds))
def Start(self, event=None): #lancement du chrono s'il est en arrêt
if not self._running:
self._start = time.time() - self._elapsedtime
self._update()
self._running = 1
def Stop(self): # arrêt du chrono s'il est en marche
if self._running:
self.after_cancel(self._timer)
self._elapsedtime = time.time() - self._start
self._setTime(self._elapsedtime)
self._running = 0
def Reset(self): # remise à zéro du chrono
self._start = time.time()
self._elapsedtime = 0.0
self._setTime(self._elapsedtime)
def get(self) :
return self._running
def masw(Event,sw):
if sw.get() :
sw.Stop
print ('stop')
else:
sw.Start
print ('start')
def masv(Event,sv):
if sv.get() :
sv.Stop
print ('stop')
else:
sv.Start
print ('start')
def start_chronos(chronos, event):
for chrono in chronos:
chrono.Start()
def reset_chronos(chronos, event):
for chrono in chronos:
chrono.Reset()
def stop_chrono_gauche(chrono, event):
chrono.Stop()
def stop_chrono_droit(chrono, event):
chrono.Stop()
def main(): # definition de la fenetre de tkinter
root = Tk()
root.title('projet 2014-2015')
sw = Chronometre(root)
sw.pack(side=LEFT,padx=30,pady=30)
sv = Chronometre(root)
sv.pack(side=RIGHT,padx=30,pady=30)
root.bind('<a>', partial(start_chronos, (sw, sv)))
root.bind('<z>', partial(stop_chrono_gauche, (sw)))
root.bind('<e>', partial(stop_chrono_droit, (sv)))
root.bind('<r>', partial(reset_chronos, (sw, sv)))
root.mainloop()
if __name__ == '__main__':
main()