WHY Je viens de me mettre en colère, et maintenant j'y réfléchis.
WHAT C'est une méthode pour attraper des wakasagi à l'aide d'une tarte à la râpe. La pêche à Wakasagi consiste à faire un trou dans la glace et à attraper un poisson.
--Une caméra et un moteur sont attachés à la tarte à la râpe --Lorsque le traitement d'image peut détecter l'atari de la pointe de la tige, le moteur tourne.
Je n'ai jamais fait de travail électronique, donc je n'ai fait que les préparatifs minimaux. Fondamentalement, la tarte aux râpes vient avec:
--Alimentation électrique: le problème est qu'il n'y a pas d'alimentation électrique sur la glace, j'utilise donc la batterie pour charger le smartphone. --Caméra: caméra WEB ordinaire pour environ 1000 yens -Adaptateur WiFi ―― Le problème est que le Wifi ne vole pas sur la glace.
SSH -X
et testez-la.En commutant la sortie de GPIO (0, 1), il est possible de tourner dans le sens horaire ou antihoraire.
Installez rpi.gpio
pour le contrôler depuis python.
sudo apt-get install python-rpi.gpio
Code de test qui tourne dans le sens horaire pendant 2 secondes → tourne dans le sens antihoraire pendant 2 secondes.
import RPi.GPIO as GPIO
import time
def init_gpio():
GPIO.setmode(GPIO.BCM)
channel_list = [14, 15, 18]
GPIO.setup(channel_list, GPIO.OUT)
def stop():
GPIO.output(14, False)
GPIO.output(15, False)
GPIO.output(18, False)
def rotate_right(duration):
stop()
GPIO.output(14, True)
GPIO.output(15, False)
GPIO.output(18, True)
time.sleep(duration)
stop()
def rotate_left(duration):
stop()
GPIO.output(14, False)
GPIO.output(15, True)
GPIO.output(18, True)
time.sleep(duration)
stop()
def cleanup():
GPIO.cleanup()
init_gpio()
rotate_right(2)
rotate_left(2)
cleanup()
Il semble que je peux en quelque sorte tourner le fil.
La caméra seule doit détecter les petits mouvements à l'extrémité de la tige. Cette fois, j'ai essayé d'utiliser un filtre à particules. Le filtre à particules est un algorithme qui génère de manière aléatoire un grand nombre de particules, sélectionne les particules proches de l'état souhaité et les suit à plusieurs reprises. Comme il est difficile de ne détecter que la pointe de la tige, nous avons cette fois mis en œuvre une solution minutieuse consistant à ** mettre du papier vert sur la pointe de la tige **.
Prenant cela au sérieux, l'algorithme est le suivant.
--En mode initial, déplacez la tige en mode attractif.
--Lorsque la secousse de la tige disparaît, l'étape suivante consiste à passer en mode détection.
--Si
――S'il y a une forte secousse de la canne, levez-la en mode poisson et passez en mode attente.
--Attendez que la touche s
soit enfoncée en mode veille
--S'il n'y a pas de détection pendant un certain temps, il passe au mode d'attraction initial. Répétez ceci
Un script python principalement construit sur glace.
https://github.com/tan-z-tan/raspi_fishing/blob/master/src/RaspiFishing.py
Passer l'interface graphique avec SSH -X
Il est écrit sur le site.
Tout cela parce que je l'ai implémenté sur glace sans penser à rien.
motor.rotate_left(0.53)
motor.rotate_right(0.7)
Les constantes comme 0,53 et 0,7 sont des constantes chaudes pour les artisans qui ont pris le temps et les efforts. Cela est dû au fait que l'angle de rotation est légèrement différent même si le nombre de secondes est le même pour le bobinage et la descente du moteur.
J'ai pu l'attraper. L'apparition d'un pauvre wakasagi attrapé par une machine. Je suis heureux.
** Tarte Razz: 2 animaux ** ** Moyenne humaine: 6,75 animaux **
** Conclusion: vous pouvez mieux attraper si vous le faites **
Quand je l'ai écrit sérieusement, il y avait trop peu de poissons dans l'ensemble et je pouvais à peine faire un test. Quand il sera temps d'attraper 100 wakasagi, ce sera un travail mécanique juste pour le mettre et le relever, donc s'il est mécanisé, ce sera efficace. .. .. Devrait être.
Je veux organiser un concours de pêche Razzpie.
Recommended Posts