|
|
(22 révisions intermédiaires par le même utilisateur non affichées) |
Ligne 1 : |
Ligne 1 : |
− | =Attiny10=
| |
| | | |
− | * [https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/ATtiny4-5-9-10-Data-Sheet-DS40002060A.pdf datasheetAttiny10] | + | =Informatique embarquée= |
| + | *[[Cours:InfoEmbarqueeConcommationMicroC|Analyse de la consommation d'un µcontroleur]] |
| + | *[[Cours:InfoEmbarqueeScrutationInterruption|Analyse de la latence (et jitter)]] |
| + | *[[Cours:InfoEmbarqueeThread|Thread avec Qt]] |
| + | *[[Cours:InstallationLinux|installation d'une distribution Linux]] |
| + | *[[Cours:BashScript|scripts]] |
| + | *[[Cours:QtMqtt|mqtt : créer un capteur/actionneur sur HomeAssistant]] |
| | | |
− | ==support utilisé== | + | =CEM= |
− | Les schémas suivants vous permettent :
| + | *https://resources.altium.com/fr/p/plongee-dans-les-contraintes-de-conception-et-de-fabrication-partie-1 |
− | *de comprendre sur quel état logique les leds s'allument | + | *https://resources.altium.com/fr/p/diving-into-the-constraints-of-design-and-manufacturing-part-two#21-espacement-des-conducteurs---clearance- |
− | *de trouver la liste des sorties
| + | *https://www.vishay.com/docs/28705/mcx0x0xpro.pdf |
− | *d'associer chaque led avec un numéro de patte
| |
− | [[Fichier:SchemaDe.png|200px]]
| |
− | | |
− | {|
| |
− | |-
| |
− | | || [[Fichier:simonsay.png|200px]]
| |
− | |}
| |
− | | |
− | | |
− | | |
− | | |
− | {|
| |
− | |-
| |
− | |[[Fichier:ATTINY10-pinout.jpg]]
| |
− | ||
| |
− | Le tableau donne la correspondance entre patte de sortie du µcontrôleur et position de(s) led(s) sur le dé :
| |
− | | |
− | | |
− | {|class="wikitable center"
| |
− | |-
| |
− | | PB0 || || PB1
| |
− | |-
| |
− | | PB3 || PB2 || PB3
| |
− | |-
| |
− | | PB1 || || PB0
| |
− | |}
| |
− | |}
| |
− | | |
− | ==Sleep modes==
| |
− | Afin de limiter la consommation de la carte, nous allons utiliser les modes d'économie d'énergie disponibles sur le µcontrôleur utilisé.
| |
− | | |
− | Le principe sera le suivant :
| |
− | #On place le µcontrôleur dans le mode d'économie d'énergie choisi -> le programme s'arrête et il faut un événement pour sortir de ce mode faible consommation
| |
− | #Le bouton déclenche une interruption externe permettant de sortir du mode d'économie d'énergie
| |
− | #On affiche un nombre aléatoire
| |
− | #Retour au mode faible consommation après quelques secondes
| |
− | | |
− | Vous vous servirez des fonctions disponibles [http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html dans le fichier {{Rouge|avr/sleep.h}}] pour passer en économie d'énergie.
| |
− | | |
− | Les différents modes sont détaillés [[media:Attiny10.pdf|Attiny10.pdf]] dans la partie 7. Le tableau donne la correspondance entre le mode de consommation et la valeur à utiliser dans les fonctions du fichier {{Rouge|avr/sleep.h}}.
| |
− | | |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Sleep Mode !! valeur programme c
| |
− | |-
| |
− | | idle || SLEEP_MODE_IDLE
| |
− | |-
| |
− | | ADC Noise Reduction || SLEEP_MODE_ADC
| |
− | |-
| |
− | | Standby || SLEEP_MODE_PWR_DOWN
| |
− | |-
| |
− | | Power-Down || SLEEP_MODE_STANDBY
| |
− | |}
| |
− | | |
− | =script shell=
| |
− | | |
− | | |
− | ==mqtt==
| |
− | | |
− | | |
− | ===HA mqtt sensor===
| |
− | * https://www.home-assistant.io/integrations/sensor/
| |
− | * https://github.com/home-assistant/core/blob/dev/homeassistant/const.py#L489
| |
− | | |
− | <source lang=bash>
| |
− | | |
− | /usr/local/bin/createHaSensor :
| |
− | #!/bin/bash
| |
− | | |
− | echo "name : $1"
| |
− | echo "device class : $2"
| |
− | echo "unit : $3"
| |
− | | |
− | topic="homeassistant/sensor/$1/config"
| |
− | payload="{\"name\": \"$1\", \
| |
− | \"unique_id\": \"$1\", \
| |
− | \"state_topic\": \"homeassistant/sensor/$1/state\", \
| |
− | \"device_class\":\"$2\", \
| |
− | \"unit_of_measurement\":\"$3\" \
| |
− | }"
| |
− | | |
− | | |
− | mosquitto_pub -t "$topic" -m "$payload" -h 192.168.0.7
| |
− | | |
− | | |
− | /usr/local/bin/deleteHaSensor :
| |
− | #!/bin/bash
| |
− | | |
− | echo "name : $1"
| |
− | echo "device class : $2"
| |
− | echo "unit : $3"
| |
− | | |
− | topic="homeassistant/sensor/$1/config"
| |
− | | |
− | mosquitto_pub -t "$topic" -m "" -h 192.168.0.7
| |
− | | |
− | | |
− | /usr/local/bin/publishHaSensor :
| |
− | #!/bin/bash
| |
− | | |
− | echo "name : $1"
| |
− | echo "valeur : $2"
| |
− | | |
− | topic="homeassistant/sensor/$1/state"
| |
− | payload="{\"name\": \"$1\", \
| |
− | \"unique_id\": \"$1\", \
| |
− | \"state_topic\": \"homeassistant/sensor/$1/state\", \
| |
− | \"device_class\":\"$2\", \
| |
− | \"unit_of_measurement\":\"$4\" \
| |
− | }"
| |
− | | |
− | | |
− | mosquitto_pub -t "$topic" -m "$2" -h 192.168.0.7
| |
− | | |
− | | |
− | </source>
| |