Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jbdesbas/pyphone
ESP8266 + téléphone à cadran
https://github.com/jbdesbas/pyphone
dfplayer-mini diy fun micropython micropython-esp8266 phone toy
Last synced: 4 days ago
JSON representation
ESP8266 + téléphone à cadran
- Host: GitHub
- URL: https://github.com/jbdesbas/pyphone
- Owner: jbdesbas
- License: gpl-3.0
- Created: 2023-10-19T08:17:47.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-28T15:02:44.000Z (about 1 year ago)
- Last Synced: 2023-12-28T16:26:05.008Z (about 1 year ago)
- Topics: dfplayer-mini, diy, fun, micropython, micropython-esp8266, phone, toy
- Language: Python
- Homepage:
- Size: 422 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pyPhone
Projet de détournement d'un ancien téléphone ☎ à cadran.
De la musique (ou autre fichier mp3) est diffusée dans le combiné lorsqu'il est décroché.
Le cadran permet de choisir la piste à lire.![Un téléphone à cadran et une carte de développement](pyphone.jpg)
## Pré-requis
### Hardware
- ESP8266-12F (Nodemcu) flashée avec [MicroPython](https://micropython.org)
- [DFPlayer mini](https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299) + carte Micro SD### Software
- [esptools](https://github.com/espressif/esptool) pour flasher la carte (`esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 ESP8266_GENERIC-20231005-v1.21.0.bin`)
- [ampy](https://github.com/scientifichackers/ampy) pour uploader le code (`ampy --port /dev/ttyUSB0 put pyphone/main.py`)
- [picocom](https://github.com/npat-efault/picocom) pour accéder au REPL via le port série ( `picocom /dev/ttyUSB0 -b 115200`)## Montage
NodeMCU **D1** : Combiné (0V si décroché, PULLUP si raccroché)
NodeMCU **D2** : **BUSY** DFPlayer (Low si lecture en cours)
NodeMCU **D4** : **RX** DFPlayer (Transmission de commande lecture/stop)
NodeMCU **D5** : Cadran fil bleu (cf. infra) - Indique si on touche le cadran
NodeMCU **D6** : Cadran fil rouge (cf. infra) - Renvoi les impulsions quand le cadran est relaché
DFPlayer **SPK_2** : Haut-parleur du combiné, fil bleu clair (ajouter une resistance de 4,7k pour atténuer le volume (parasites possibles si resistance trop faible)). Tester également avec **DAC_L**.
Ne pas oublier la **masse** pour le nodeMCU, DFPlayer, Haut-parleur (fil rouge (!)) et cadran (fils bleu-blanc et rouge-blanc).
## Carde SD
Arborescence :
Les répertoires 001 à 010 correspondent au numéro choisi sur le cadran (`010` pour le zéro).
Le répartoire `099` est lu en boucle lorsque le combiné est décroché (tonalité d'attente).Seul le canal gauche est envoyé au combiné.
```
.
├── 001/
│ ├── 001_title.mp3
│ ├── 002_title.mp3
│ └── 003_title.mp3
├── 002/
│ ├── 001_title.mp3
│ ├── 002_title.mp3
│ └── 003_title.mp3
├── ...
├── 010/
│ ├── 001_title.mp3
│ ├── 002_title.mp3
│ └── 003_title.mp3
├── 098/
│ └── 001_nouveau_message.mp3
└── 099/
└── 001_waiting_tone.mp3
```## Cadran
![A screenshot of logic analyzer](rotary_logic_screenshot.png)
La lecture du signal des fils rouge et bleu du cadran permet de récuperer la valeur (1-10) choisie
par l'utilisateur.Le signal bleu (_channel 0_) est `TRUE` en temps normal, il passe à `FALSE` dès que l'utilisateur
actionne le cadran.Le signal rouge (_channel 1_) est `FALSE`. Il emet _n_ impulsion `TRUE` lorsque le cadran est relaché.
La durée d'une impulsion est d'environ 75ms, mais elle est dépendante de la vitesse
à laquelle le cadran tourne après avoir été relaché. Si l'utilisateur freine le cadran,
la durée des impulsions peut être fortement rallongée (_cf._ capture). Le temps entre 2 impulsions est
plus stable (~30ms).## Remericements
Les contributeurs de [micropython-dfplayer](https://github.com/redoxcode/micropython-dfplayer)