github repository is here https://github.com/hishizuka/pizero_bikecomputer
(2020/4/30) Nous avons revu la structure de l'article et changé la "dernière mise à jour" de l'article original "[Une histoire que j'ai essayé de faire un ordinateur de vélo avec un boyau, mais elle a été relativement réussie](https: // qiita .com / hisi / items / 8f77fd4655027fac7c7d) ».
C'est le 22e jour du Calendrier de l'aventars du vélo de route 2019. C'est un article très unique, mais merci.
J'essaye de fabriquer un ordinateur de vélo à partir de rien depuis plusieurs années. Depuis que j'ai atteint une certaine forme au printemps 2019, j'ai publié "Histoire que j'ai essayé de faire un ordinateur de vélo avec un gachi et c'était relativement bon" fait. ~~ En fait, c'était un texte d'application pour Maker Faire Tokyo 2019, donc je l'ai écrit avec beaucoup d'ingrédients de poème, mais j'ai été brillamment rejeté (rires) ~~
Heureusement, ce message lui-même a reçu une excellente réponse, alors cette fois j'ai profité de l'occasion pour transcrire la suite.
Cette fois, nous publierons la recette (programme + comment assembler), alors essayez-la en bougeant réellement vos mains! Nous espérons que vous ressentirez le nouveau plaisir de pouvoir créer votre propre appareil à partir d'un seul petit ordinateur.
Le volume de l'article étant devenu assez important, l'explication du programme sera publiée à une date ultérieure, et des mises à jour détaillées quotidiennes seront publiées sur Twitter. Merci de votre collaboration.
(2020/4/29) La description de "Dernière mise à jour" est décrite dans le premier article "[Histoire que j'ai essayé de faire un ordinateur de vélo avec Gachi, mais cela a été relativement réussi](https://qiita.com/hishi/ Je l'ai fusionné dans items / 8f77fd4655027fac7c7d) "et je l'ai supprimé de cet article.
Je fabrique un ordinateur de vélo pour vélos de sport avec Raspberry Pi Zero W. Pour les fonctions et la configuration matérielle en cours d'implémentation, lisez "L'histoire que j'ai fait un ordinateur de vélo avec beaucoup d'efforts et il a été relativement réussi". S'il te plait donne moi.
Ça ressemble à ça maintenant. Il est étanche dans une certaine mesure en remplaçant l'étui pour smartphone de Topeak.
Comme il n'y a pas de boîtier extérieur, les boutons sont un peu difficiles à appuyer, mais ils peuvent être utilisés normalement. En 2019, nous avons obtenu des données de plus de 2500 km (= environ une demi-journée 50 km x 4 semaines x 12 mois quelque part le samedi et le dimanche). (Je rate le moment où j'ai pu courir un total de 200 km ou plus les samedis et dimanches sans aucune restriction ...)
Eh bien, attendez, la recette sera dévoilée. C'est assez long, alors veuillez l'utiliser lorsque vous avez du temps libre.
Tout d'abord, essayez de démarrer le logiciel sur votre PC.
Environnement d'exécution --python (série 3) Commande --pip3
Apportez-le du référentiel avec la commande git.
$ git clone https://github.com/hishizuka/pizero_bikecomputer.git
Faites une copie du fichier d'initialisation.
$ cd pizero_bikecomputer
$ cp install/setting-orig.conf setting.conf
$ cp layouts/layout-cycling.yaml layout.yaml
Installez les packages requis. PyQtGraph a été partiellement modifié, veuillez donc installer celui-ci dans mon dépôt.
$ pip3 install PyQt5 numpy oyaml pillow
$ pip3 install git+https://github.com/hishizuka/pyqtgraph.git
Vérifiez s'il peut être démarré.
$ python3 pizero_bikecomputer.py
Avec l'option --demo, les nombres peuvent ou peuvent ne pas apparaître correctement.
Les répertoires et fichiers de configuration nécessaires (setting.conf) seront créés au premier démarrage, fermez-les donc une fois.
Les boutons en bas de l'écran sont comme vous pouvez le voir, mais les fonctions suivantes sont attribuées dans l'ordre à partir de la gauche. (En fait, la pression courte et la pression longue peuvent être modifiées)
--Bouton gauche (←): se déplacer entre les écrans --Bouton Wrap: Wrap. Appuyez et maintenez enfoncé pour réinitialiser à l'arrêt, et sortez le fichier d'ajustement (modifiable) dans le dossier du journal. --Bouton de menu: voir ci-dessous --Bouton Start / Stop: transition entre les états de démarrage et d'arrêt. Appuyez et maintenez pour terminer le programme. --Bouton droit (→): se déplacer entre les écrans
Vient ensuite l'écran de menu. En décembre 2019, je ne l'ai pas encore fait, alors ne vous attendez pas (rires)
Comme vous pouvez l'imaginer,
status = True```, l'appairage avec différents capteurs est possible.L'une des principales caractéristiques de ce programme est que vous pouvez développer un programme qui dessine l'écran directement sur la machine réelle sur un PC sans l'écrire. Les valeurs du capteur de pression et du GPS ne peuvent être confirmées que sur la machine réelle, mais il est beaucoup plus efficace d'écrire l'écran et la logique principale sur un PC.
Maintenant que vous avez atteint ce point, affichons-le sur le bureau réel!
Il est facile d'obtenir un total d'environ 10 000 yens, qui a été introduit dans "Histoire que j'ai fait un ordinateur de vélo avec beaucoup d'argent et c'était relativement bon". Faisons en fait un ordinateur de vélo avec différentes configurations.
Il y en a beaucoup, alors faites de votre mieux pour IYH ou achetez-les à Akihabara!
--Raspberry Pi Zero (W, WH) (environ 1000 yens) --Pour la configuration, voir l'article de l'auteur "Raspberry Pi Zero (W, WH) Setup" etc.
--Compétences pour manipuler le fer à souder ――Parler de vélos, ce n'est probablement pas grave si vous avez la dextérité pour changer les fils. --Compétences qui vous permettent de vérifier le fonctionnement des pièces individuelles en vous référant au HP du distributeur (sauter de manière appropriée dans ce texte)
Le matériau principal est comme ça.
Je vais les assembler.
Si vous trouvez cela difficile, nous vous recommandons de vérifier d'abord que le PiTFT fonctionne, puis de vérifier un par un le module GPS, l'Enviro pHAT et le dongle USB ANT +, puis étape par étape.
De plus, dans un premier temps, il est préférable de connecter le module GPS à l'Enviro pH AT à l'aide d'un cavalier facile à retirer de la broche GPIO à l'intérieur du PiTFT. Si vous voulez le rendre aussi compact que possible comme l'auteur, supprimez autant que possible les broches supplémentaires et effectuez un câblage aérien compliqué et étrange, mais veuillez noter que ce type de modification magique prend du temps et des efforts.
Installez le dongle USB Enviro pH AT et ANT +. Enviro pHAT a un capteur sur le côté imprimé, donc je pense qu'il vaut mieux le faire face vers l'extérieur. (S'il est à l'intérieur, il captera plus de chaleur du CPU.) Insérez également le dongle USB ANT + dans la borne micro USB à l'intérieur.
Enviro pHAT est directement câblé là où il est nécessaire. Le célèbre pHAT du marché peut dire quelle broche vous utilisez sur le site Raspberry Pi Pinout.
Connectez le PiTFT 2,4 pouces.
Le PiTFT 2,4 pouces a une broche GPIO dépassant sur le côté, de sorte qu'il peut être connecté avec un fil de liaison.
Cela ressemblera à ceci quand il sera complètement fait.
Chaque pièce est fixée avec des vis. Puisque le bouton PiTFT est un type qui est poussé par le haut, s'il n'est pas fixé, il sera parfois trop poussé et la connexion avec le corps principal sera coupée, ce qui me rend très triste. De plus, le dongle USB ANT + et le câble d'alimentation sont fixés avec du ruban adhésif pour éviter les vibrations. Je n'ai eu aucun problème depuis que je suis arrivé à cette méthode. S'il y a un espace entre le connecteur et la carte, insérez un matériau de rembourrage approprié et fixez-le avec du ruban adhésif.
Je veux rendre mon prototype aussi fin que possible, j'ai donc supprimé toutes les broches GPIO vers l'extérieur dans le PiTFT. (Il y a deux colonnes verticales entre le dongle ANT + et le GPS en bas à droite du centre de l'image ci-dessus)
De plus, il est directement soudé au Raspberry Pi Zero WH sans utiliser de prise pin côté PiTFT.
On suppose que ce qui suit est fait.
--Raspbian Buster est installé (pas Lite)
Si vous pouvez le faire jusqu'à présent, l'objectif est proche.
Tout d'abord, connectez-vous avec SSH et modifiez certains paramètres avec raspi-config.
$ sudo raspi-config
Lorsque vous atteignez ce point, redémarrez (
sudo reboot` ``).
Vient ensuite le festival de mise à jour.
$ sudo apt update
$ sudo apt upgrade
$ sudo rpi-update
$ sudo apt-get remove piwiz
$ sudo reboot
À ce stade, aucune application ne devrait remplir l'écran d'elle-même au démarrage. (En raison du changement de mot de passe, l'assistant de configuration initiale piwiz)
C'est un festival d'installation d'ici. Encore une fois, effectuez la procédure d'installation effectuée dans «Confirmer le démarrage sur PC» et la procédure spécifique à Raspberry Pi.
Apportez-le du référentiel avec la commande git.
$ cd $HOME
$ git clone https://github.com/hishizuka/pizero_bikecomputer.git
$ cd pizero_bikecomputer
$ cp layouts/layout-cycling.yaml layout.yaml
Installez les packages requis. Raspbian Buster semble être inclus depuis le début sauf pour cython. PyQtGraph a été partiellement modifié, veuillez donc installer celui-ci dans mon dépôt.
$ sudo apt-get install python3-pip cython3 cmake gawk python3-numpy python3-pyqt5
$ sudo apt-get install wiringpi python3-smbus python3-rpi.gpio python3-psutil python3-pil
$ sudo pip3 install oyaml
$ sudo pip3 install git+https://github.com/hishizuka/pyqtgraph.git
(Ajouté le 30 avril 2020) Veuillez également installer ce qui suit pour stabiliser la connexion sqlite3.
sudo pip3 install git+https://github.com/dashawn888/sqlite3worker#egg=sqlite3worker
Installez le programme de contrôle du rétroéclairage pour PiTFT 2.4 et le programme d'arrêt.
(PiTFT 2.Programme de contrôle du rétroéclairage pour 4)
$ sudo cp install/usr/local/bin/disable-pitft /usr/local/bin/
$ sudo chmod 755 /usr/local/bin/disable-pitft
$ sudo cp install/usr/local/bin/enable-pitft /usr/local/bin/
$ sudo chmod 755 /usr/local/bin/enable-pitft
$ sudo cp install/etc/systemd/system/disable-pitft.service /etc/systemd/system/
(Programme d'arrêt)
$ sudo cp install/usr/local/bin/pizero_bikecomputer_shutdown /usr/local/bin/
$ sudo chmod 755 /usr/local/bin/pizero_bikecomputer_shutdown
$ sudo cp install/etc/systemd/system/pizero_bikecomputer_shutdown.service /etc/systemd/system/
(Réflexion en service)
$ sudo systemctl daemon-reload
$ sudo systemctl enable disable-pitft.service
Vérifiez s'il peut être démarré à ce stade. La première commande est une magie qui commence sur PiTFT.
$ export DISPLAY=:0.0
$ python3 pizero_bikecomputer.py -f
Un exemple de journal d'exécution est présenté ci-dessous. Depuis Enviro pHAT est connecté, le message "True (existence)" est affiché autour de I2C au début. Le premier démarrage prendra un certain temps car une compilation de cython s'exécutera.
Loading original modules...
config : 2.125001 sec
GPS : False
ANT : False
RPi GPIO : True
I2C( ENVIRO ) : True
I2C( LSM303D ) : True
I2C( BMP280 ) : True
SPI : True
/usr/lib/python3/dist-packages/Cython/Compiler/Main.py:367: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/pi/pizero_bikecomputer/modules/logger/cython/crc16_c.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
logger_core : 26.252219 sec
gui_pyqt : 3.164116 sec
Loading modules... done : 31.548674 sec
/proc/device-tree/hat/product : Adafruit PiTFT HAT - 2.4 inch Resistive Touch
/proc/device-tree/hat/vendor : Adafruit Industries
logger_core : init...
PiTFT 2.8(r) : True
GPS/ANT+/I2C/GPIO/integrate/start: ['0.000380', '0.001742', '0.239424', '0.000563', '0.000490', '0.493737']
logger_core : setup ambient...: done 9.1e-05 sec
logger_core : loading course...
logger_core : loading course...: done 0.011168 sec
config/logger: ['0.073537', '0.870578']
running in PyQt...
libEGL warning: DRI2: failed to authenticate
calibrated position
Qt version: 5.11.3
['rfkill', '--json']
pyqt_graph : get_track(init) : 0.005978 sec
gui_pyqt:
base : 1.5448
widget : 2.8341
button : 0.0854
Merci beaucoup.
Il est très difficile à utiliser si vous le démarrez à chaque fois depuis le terminal, je vais donc faciliter le démarrage à partir de l'écran plus tard. Quittez avec ctrl -c du terminal.
Si vous venez si loin, il est temps de faire une pause!
Installez le service GPSd et le package utilisé par python.
$ sudo apt-get install python3-tz gpsd gpsd-clients python3-pyproj
$ sudo pip3 install gps3 timezonefinder
$ sudo cp install/etc/default/gpsd /etc/default/gpsd
$ sudo systemctl restart gpsd
Pour vérifier si GPSd fonctionne correctement, utilisez la commande cgps
ou `` gpsmon``` pour vérifier si la valeur est obtenue. Si vous le laissez à l'extérieur pendant quelques minutes, le GPS peut être complété et des informations telles que la latitude et la longitude circuleront.
Comme avec PyQtGraph, l'openant a été partiellement modifié, veuillez donc installer celui dans mon référentiel.
$ sudo apt-get install libusb-1.0-0 python3-usb
$ sudo pip3 install git+https://github.com/hishizuka/openant.git
Si vous pouvez installer à la fois GPS et ANT +, le début du journal d'exécution passera à True.
Loading original modules...
config : 2.952061 sec
GPS : True
ANT : True
Modifiez le début du bloc [ANT] dans setting.conf pendant que le programme (pizero_bikecomputer.py) n'est pas en cours d'exécution.
[ANT]
status = True
Si vous venez si loin, il est temps de faire une pause! (La deuxième odeur d'humour)
Pour une utilisation en tant que petit appareil plutôt que comme ordinateur de bureau, démarrez automatiquement ou ajoutez un bouton de démarrage sous une forme facile à appuyer.
Pour le moment, n'effectuez que l'ancien démarrage automatique et ajoutez des boutons si nécessaire. S'il n'y a pas de bouton, le problème est lorsqu'il se fige au milieu, auquel cas vous devez vous connecter en SSH à partir de votre smartphone et taper manuellement la commande de redémarrage ou redémarrer.
Il se termine par les trois lignes suivantes. Buster à partir de 2020/1 est une condition préalable. Cela peut ne pas être possible si la version, etc. change.
$ mkdir -p ~/.config/lxsession/LXDE-pi
$ cp /etc/xdg/lxsession/LXDE-pi/autostart ~/.config/lxsession/LXDE-pi/
$ echo "@/home/pi/pizero_bikecomputer/exec.sh" >> ~/.config/lxsession/LXDE-pi/autostart
Référence: Raspberry Pi Official Forum https://www.raspberrypi.org/forums/viewtopic.php?t=249620
Il est plus intelligent de passer directement sans passer par X, mais si vous démarrez directement sans passer par X avec PyQt5 installé avec la commande apt, le panneau tactile ne semble pas fonctionner, alors compilez Qt5 et PyQt5 avec tslib activé. est nécessaire. Si vous voulez vraiment utiliser l'écran tactile, augmentez 4 Go de Rasberry Pi 4 pour la compilation. Cette zone sera décrite dans la suite.
(Comme il est assez long, veuillez le sauter si vous n'en avez pas besoin)
Puisqu'il est impossible de modifier les paramètres sur le petit écran de bureau de PiTFT, modifiez les paramètres de l'écran via VNC.
$ sudo apt install tightvncserver
$ tightvncserver :1
(Lors de la fermeture de tightvncserver)
$ $ tightvncserver -kill :1
Après avoir défini le mot de passe de connexion, connectez-vous avec VNC. Pour Windows, installez la visionneuse VNC (RealVNC etc.). Le nom du serveur est le même que celui connecté par SSH etc., et le port est la version 5901.
macOS est inclus par défaut, alors appuyez sur "Se connecter au serveur" (commande + k) en bas du menu Aller dans le Finder et connectez-vous à vnc: //raspberrypi.local: 5901.
Il n'y a aucun mal à l'utiliser à une résolution normale, mais lorsque vous l'utilisez à 320x240, tout est superflu, je vais donc l'effacer.
Les 2ème à 4ème lanceurs d'applications à partir de la gauche ne sont pas nécessaires, donc cliquez avec le bouton droit pour supprimer (3e à partir du haut).
Cliquez avec le bouton droit sur la barre supérieure pour accéder aux paramètres du panneau.
Pannel Applets efface les icônes de plateau inutiles à l'extrême droite ainsi que celles inutiles.
Ensuite, il y a trop de menus, alors supprimez-les également. Lancez l'éditeur de menu principal dans les préférences.
Avec Applications sélectionnées dans le coin supérieur gauche, décochez les cases de chaque menu du centre, sauf Préférences. Ensuite, créez un élément avec le deuxième bouton Nouvel élément en haut à droite.
Tapez le nom du programme et appuyez sur le bouton Parcourir à côté du champ Commande.
Sélectionnez exec.sh dans le dossier où vous avez placé le programme (/ home / pi / pizero_bikecomputer /).
Ceci termine la saisie. Appuyez sur OK pour revenir.
Le nouvel élément sera placé sous Préférences, donc avec l'élément ajouté sélectionné, appuyez sur le bouton Monter à l'extrême droite de l'écran pour le placer au moins au-dessus des Préférences.
Avec cela, le nombre de menus a diminué et ce programme sort en premier.
Redémarrez et vérifiez à partir de l'écran de la machine réelle.
Les boutons matériels sont conçus pour correspondre à peu près à l'écran du logiciel. C'est comme suit dans l'ordre de la gauche. (Une pression courte / une pression longue peuvent être modifiées. De plus, seul le numéro GPIO de PiTFT 2.4 est pris en charge. Pour les autres modèles, il doit être modifié dans modules / config.py)
De plus, l'affectation est modifiée sur l'écran de menu. Les affectations suivantes sont effectuées dans l'ordre à partir de la gauche.
Merci beaucoup. Maintenant, vous pouvez courir dehors.
** Dossier de cours **
Si vous souhaitez l'utiliser, placez le fichier course.tcx au format TCX sous le dossier cours. Le nom du fichier est maintenant fixe. S'il y a un fichier au démarrage, il sera lu.
** Installation sur vélo de route ** Fixez le boîtier au guidon et connectez-le à la batterie dans le sac du tube supérieur. Il n'y a pas de commutateur particulier, donc il démarrera au moment où vous le connectez. Au cas où.
** Après le démarrage ** Il faut quelques minutes pour compléter le GPS, alors attendez dans un endroit où le ciel est le plus ouvert possible. En attendant, effectuez l'appairage ANT + et une correction avancée si nécessaire.
Appuyez sur le bouton de démarrage pour démarrer l'enregistrement, appuyez sur le bouton de tour pour mesurer la section, appuyez à nouveau sur le bouton de démarrage pour terminer l'enregistrement, puis appuyez et maintenez le bouton de tour pour réinitialiser et écrire l'enregistrement. Veuillez récupérer le fichier enregistré via SFTP. J'ajouterai la méthode de téléchargement sur STRAVA dans un proche avenir.
Qu'as-tu pensé?
Nous vous serions reconnaissants de bien vouloir nous faire part de vos impressions dans la section commentaires ou sur Twitter. Surtout pour ceux qui l'ont essayé, j'aimerais l'utiliser comme référence.
Ce projet de passe-temps en est encore au point de départ car nous n'avons pas implémenté de nombreuses fonctions à fort impact qui ne sont pas disponibles sur le marché, mais nous prévoyons de continuer à y travailler, donc si vous êtes intéressé, rejoignez-nous.
La documentation n'a pas du tout rattrapé son retard, et je voudrais expliquer la méthode pour démarrer directement sans passer par X, la version à cristaux liquides réfléchissants de couleur MIP, et le programme, mais je vais encore profiter de l'occasion.
Recommended Posts