La fondation Arduino a été crée en 2009 il me semble. Les produits de la fondation sont devenues une sorte de norme de fait et on été énormément copiés. La fondation a connu des hauts et des bas, avec une dispute et une séparation des membres fondateurs. Quoiqu'il en soit, ce standard a permis à des millions de personnes de programmer avec une interaction entre le logiciel et le monde physique. Pour un codeur, c'est juste du bonheur !
Sur Aliexpress on trouve tous les tarifs pour un Arduino nano. Personnellement je préfère prendre une version avec les papattes soudées, même si ça coute quelques centimes de plus.
Une fois que l'on a la pièce dans les mains, le plus simple pour débuter est d'installer l'IDE de la fondation pour programmer.
Comme nous utilisons un électroaimant spécifique pour Arduino, les connexions et la programmation sont très simples quand on est habitué à cet écosystème.
Vous allez rire, mais le code utilisé pour activer l'électroaimant, c'est le code de base qui permet de faire clignoter la LED interne de l'Arduino. Chaque Arduino dispose d'une LED et un des premiers tests / exemple que l'on peut réaliser, c'est de modifier la fréquence de clignotement de la LED interne. Le code se nomme "blink".
Par défaut, c'est blink qui est installé dans l'Arduino : ça veut dire que sans rien faire du tout, en connectant l'électroaimant sur l'Arduino, vous avez déjà de quoi "tromper" le capteur REED de votre vélo Giant.
Sur l'Arduino nano en photo ci-dessus, la LED est reliée à la sortie D13 (digital 13) : il faudra connecter la broche SIG de l'électroaimant sur la pin D13 de l'arduino.
Pour tromper le capteur reed, avec le code ci-dessous, on "allume" l'électroaimant durant 50ms et on attend ensuite 1 seconde. Le Giant prend ça pour une vitesse de 7.4km/h.
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(50); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Alors le schéma, sans les alimentations des modules, mais voilà le principe. J'ai abandonné avec Fritzing qui est devenu payant et pas le temps avec Fusion...
Voici quelques idées :
lire l'aimant du vélo avec un capteur reed connecté à l'Arduio, afin de connaître la vraie vitesse pour envoyer une vitesse divisée par deux au capteur reed du vélo
proposer un bouton permettant d'envoyer la vraie vitesse V, ou V/2 : un bouton permettant de gérer deux modes donc, un "normal" et un "turbo"
totaliser les vrais kilomètres parcours et proposer un bouton pour les injecter dans le vélos : même à l'arrêt, on peut indiquer au vélo une vitesse quelconque. Si l'on sait que l'on a triché de 10km, on peut envoyer pendant une heure 10km/h au capteur reed : ça sert à avoir le compteur du vélo avec le vrai nombre de kilomètres parcourus.
Au lieu d'utiliser un Arduino à 2€, on peut utiliser un ESP8266 et proposer une interface Wifi sur un smartphone : personnellement je n'en ai pas envie, mon projet c'est de passer un peu de temps sur le débridage, pas de faire une application de niveau commercial. Mais c'est largement possible, lancez-vous si vous le souhaitez !