Skip to content

Commit fbbe1b7

Browse files
committed
firmware: add satellite step 04 MCU temperature
1 parent bfbceb7 commit fbbe1b7

6 files changed

Lines changed: 194 additions & 3 deletions

File tree

.github/workflows/altair-v5-ui-check.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,16 @@ jobs:
130130
echo 'Step 03 must remain transmit-only'
131131
exit 1
132132
fi
133+
step_04='firmware/satellite/04_mcu_temperature_tx/Altair_Satellite_04_MCU_Temperature_TX/Altair_Satellite_04_MCU_Temperature_TX.ino'
134+
grep -Fq 'float readMcuTemperatureC()' "$step_04"
135+
grep -Fq 'readInternalTemperatureAdc()' "$step_04"
136+
grep -Fq 'dtostrf(temperatureC, 0, 1, temperatureText)' "$step_04"
137+
grep -Fq '"02,%05lu,%05lu,1.00,4.20,%s,1,"' "$step_04"
138+
grep -Fq 'radio.transmit(telemetryPacket)' "$step_04"
139+
if grep -Eq 'startReceive|radio\.receive|radio\.readData' "$step_04"; then
140+
echo 'Step 04 must remain transmit-only'
141+
exit 1
142+
fi
133143
static_nano='firmware/satellite/arduino_nano_static_tx/Altair_Satellite_Arduino_Nano_Static_TX/Altair_Satellite_Arduino_Nano_Static_TX.ino'
134144
grep -Fq '1.00,4.20,' "$static_nano"
135145
grep -Fq 'readMcuTemperatureC()' "$static_nano"

.github/workflows/firmware-build.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ jobs:
4545
- name: Спутник — шаг 03, UPTIME Arduino Nano
4646
id: satellite-step-03-uptime
4747
project: firmware/satellite/03_uptime_tx
48+
- name: Спутник — шаг 04, температура кристалла Arduino Nano
49+
id: satellite-step-04-temperature
50+
project: firmware/satellite/04_mcu_temperature_tx
4851
- name: Спутник — Arduino Nano
4952
id: satellite-nano
5053
project: firmware/satellite/arduino_nano

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
- **[Шаг 01 — передатчик неизменяемого пакета для Arduino Nano](firmware/satellite/01_static_telemetry_tx/Altair_Satellite_01_Static_Telemetry_TX/Altair_Satellite_01_Static_Telemetry_TX.ino)**
2828
- **[Шаг 02 — передатчик со счётчиком пакетов для Arduino Nano](firmware/satellite/02_packet_counter_tx/Altair_Satellite_02_Packet_Counter_TX/Altair_Satellite_02_Packet_Counter_TX.ino)**
2929
- **[Шаг 03 — передатчик со счётчиком пакетов и UPTIME](firmware/satellite/03_uptime_tx/Altair_Satellite_03_Uptime_TX/Altair_Satellite_03_Uptime_TX.ino)**
30-
- [Передатчик для Arduino Nano с измерением температуры кристалла](firmware/satellite/arduino_nano_static_tx/Altair_Satellite_Arduino_Nano_Static_TX/Altair_Satellite_Arduino_Nano_Static_TX.ino)
30+
- **[Шаг 04 — передатчик с измерением температуры кристалла](firmware/satellite/04_mcu_temperature_tx/Altair_Satellite_04_MCU_Temperature_TX/Altair_Satellite_04_MCU_Temperature_TX.ino)**
31+
- [Предыдущий отдельный передатчик для Arduino Nano с измерением температуры кристалла](firmware/satellite/arduino_nano_static_tx/Altair_Satellite_Arduino_Nano_Static_TX/Altair_Satellite_Arduino_Nano_Static_TX.ino)
3132
- [Двусторонний скетч спутника для Arduino Nano](firmware/satellite/arduino_nano/Altair_Satellite_Arduino_Nano/Altair_Satellite_Arduino_Nano.ino)
3233
- [Двусторонний скетч спутника IntroSat для STM32F103C8T6 / Blue Pill](firmware/satellite/stm32/Altair_Satellite_STM32/Altair_Satellite_STM32.ino)
3334

firmware/README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,17 @@
2525
| 01 | Весь пакет неизменяемый | [`Altair_Satellite_01_Static_Telemetry_TX.ino`](satellite/01_static_telemetry_tx/Altair_Satellite_01_Static_Telemetry_TX/Altair_Satellite_01_Static_Telemetry_TX.ino) |
2626
| 02 | Увеличивается только поле `PACKET` | [`Altair_Satellite_02_Packet_Counter_TX.ino`](satellite/02_packet_counter_tx/Altair_Satellite_02_Packet_Counter_TX/Altair_Satellite_02_Packet_Counter_TX.ino) |
2727
| 03 | Поле `UPTIME` показывает секунды после запуска | [`Altair_Satellite_03_Uptime_TX.ino`](satellite/03_uptime_tx/Altair_Satellite_03_Uptime_TX/Altair_Satellite_03_Uptime_TX.ino) |
28+
| 04 | Поле `MCU_TEMP` измеряется внутренним каналом ATmega328P | [`Altair_Satellite_04_MCU_Temperature_TX.ino`](satellite/04_mcu_temperature_tx/Altair_Satellite_04_MCU_Temperature_TX/Altair_Satellite_04_MCU_Temperature_TX.ino) |
2829

2930
В шаге 01 одна и та же строка `02,00001,00015,1.00,4.20,31.6,1,07` передаётся сразу после запуска и затем раз в секунду.
3031

3132
В шаге 02 номер пакета последовательно изменяется от `00001` до `99999`. Остальные телеметрические параметры остаются постоянными.
3233

33-
В шаге 03 дополнительно изменяется `UPTIME`: поле содержит число секунд с момента включения Arduino Nano. Поле `CHECKSUM` пересчитывается автоматически. Приёмник и обработка команд во всех трёх шагах отсутствуют.
34+
В шаге 03 дополнительно изменяется `UPTIME`: поле содержит число секунд с момента включения Arduino Nano.
3435

35-
Следующие учебные варианты будут добавляться как шаги 04, 05 и далее без изменения предыдущих примеров.
36+
В шаге 04 поле `MCU_TEMP` заполняется по внутреннему температурному каналу ATmega328P. Это температура кристалла, а не воздуха; для приемлемой абсолютной точности требуется калибровочная поправка. Поле `CHECKSUM` пересчитывается автоматически. Приёмник и обработка команд во всех четырёх шагах отсутствуют.
37+
38+
Следующие учебные варианты будут добавляться как шаги 05, 06 и далее без изменения предыдущих примеров.
3639

3740
### Другие существующие бортовые скетчи
3841

0 commit comments

Comments
 (0)