資料介紹
描述
顯影就是讓曝光的膠片或相紙發(fā)生一系列的化學反應。它涉及帶出曝光圖像的“顯影”,停止顯影化學反應以凍結圖像的“停止”,以及消除介質(zhì)光敏性以便在正常光線下觀看的“定影”。所有的化學反應都對數(shù)量、溫度和時間敏感,不同的膠片和顯影液對顯影時間的要求也不同。顯影時間過長或過短都會改變圖像的質(zhì)量。
有一個小眾類別的暗室計時器應用程序,但我對它們有兩個關鍵問題。首先,有些提供“暗室”模式,將界面全部變?yōu)榧t色,但這并不能阻止通知或意外滑動中斷并導致曝光錯誤。其次,由于化學物質(zhì),暗室是潮濕的地方。這在手機上效果不佳。
所以,我決定構建自己的解決方案!
設計

暗室計時器應用程序具有一個關鍵優(yōu)勢:開發(fā)時間選擇。由于膠片、顯影劑、溫度等的所有組合,顯影時有多種選擇可供選擇。因此,我選擇不為計時器本身設計任何類型的界面——而是選擇將界面實現(xiàn)為應用程序,并使用低功耗藍牙將時間選擇傳輸?shù)接嫊r器。
計時器本身只需要一個按鈕來啟動計時器。每個計時器完成后,它會前進到下一個計時器(鑒于開發(fā)是一個三步過程,每個步驟都需要一個不同的計時器)。
電子產(chǎn)品

對于定時器本身,沒有界面意味著它可以非常簡單:它只需要一個四位七段顯示器,一個啟動/跳過當前定時器的按鈕,以及一種調(diào)節(jié)亮度的方法。對于顯示器,Adafruit 有一個完美的紅色 1.2 英寸顯示器,可通過 I2C 接口。為了控制顯示和接收時間,我選擇了基于ESP32 的TinyPico ,因為它內(nèi)置了 BLE 模塊、I2C 引腳和模擬引腳。瞬時按鈕啟動定時器,連接到模擬引腳的電位器設置顯示屏的亮度。當每個計時器完成時,蜂鳴器也會響起。
軟件

			該應用程序的數(shù)據(jù)來自電影社區(qū)網(wǎng)站,該網(wǎng)站擁有廣泛的電影和開發(fā)商數(shù)據(jù)庫。這是我在 iOS 開發(fā)中使用新的(差不多)SwiftUI 界面設計功能的第一個項目,它使將數(shù)據(jù)模型連接到一系列下鉆表變得輕而易舉。它似乎沒有長期使用的所有自定義選項,UITableView但對于簡單的需求,它要好得多。在應用程序中,我還添加了定義自定義計時器序列的功能。

			為了在 BLE 消息中將選定的時間集發(fā)送到計時器,我設計了一種自定義數(shù)據(jù)格式,將整數(shù)數(shù)組編碼為字節(jié)數(shù)組。消息的第一個字節(jié)包含“開始字符”,ASCII 碼0x02,第二個字節(jié)是一個無符號整數(shù),它是消息中定時器的數(shù)量,然后消息的其余部分是該長度中指定的兩個字節(jié)對的數(shù)量少量。每對都是無符號的 16 位秒整數(shù)。消息的最后部分是 ASCII 代碼0x03,表示消息結束。
發(fā)送:
func send(times: [UInt16]) {
    var message = Data()
    message.append(MessageStart)
    
    message.append(UInt8(times.count))
    times.forEach { time in
        let parts : [UInt8] = [
            UInt8(time & 0x00FF),
            UInt8(time >> 8)
        ]
        parts.forEach { part in
            message.append(part)
        }
    }
    message.append(MessageEnd)
    if let clockDevice = self.clockDevice, let clockCharacteristic = self.clockCharacteristic {
        clockDevice.writeValue(message, for: clockCharacteristic, type: CBCharacteristicWriteType.withResponse)
    }
}
		收到:
bool readBLE() {
  std::string value = pCharacteristic->getValue();
  if (value.compare(lastBLEValue) == 0) {
    return false;
  }
  lastBLEValue = value;
  const char* bytes = value.c_str();
  int l = value.length();
  if (bytes[0] != MESSAGE_START) {
    return false;
  }
  int length = uint8_t(bytes[1]);
  if (length >= MAX_LENGTH || length == 0 || bytes[2 + (length * 2)] != MESSAGE_END) {
    return false;
  }
  for (int i = 0; i < length; i++) {
     timerSet[i] = uint16_t(bytes[(i * 2) + 2]) | (uint16_t(bytes[(i * 2) + 3]) << 8);
     Serial.printf("Seconds: %d\n", timerSet[i]);
  }
  currentTimersN = length;
  return true;
}
		
		外殼

我在 Fusion360 中為外殼建模。這些部分是:
- 外殼
 - 穿孔板的支架
 - 墊片將顯示屏與機箱正面齊平
 - 電位器旋鈕
 - 按鈕的圓頂形蓋
 
- 樂鑫ESP32_藍牙配網(wǎng)用戶指南
 - 樂鑫ESP32_藍牙架構用戶指南
 - 樂鑫ESP32-S2_技術參考手冊
 - 樂鑫ESP32-MINI-1參考設計
 - 樂鑫ESP32-S2-SOLO參考設計
 - 樂鑫ESP32-S2-SOLO-U參考設計
 - 樂鑫ESP32-S2-MINI-1U參考設計
 - 樂鑫ESP32-PICO-MINI-02U參考設計
 - 樂鑫ESP32-MeshKit-Light_使用指南
 - 樂鑫ESP32-S2-WROOM-V1.6參考設計
 - ESP32系列芯片的規(guī)格 7次下載
 - ESP32 單片機學習筆記 - 04 - ADC和定時器
 - ESP32 之 ESP-IDF 教學(三)——通用硬件定時器(Timer)
 - HC05 藍牙模塊 連接 ESP32 經(jīng)典藍牙
 - 慕課嵌入式開發(fā)及應用(第三章.周期中斷定時器,低功耗定時器,實時時鐘)
 
- 【AI技術支持】ESP32-S3模組EspBleOTA搜索不到ble_ota例程的藍牙問題處理 301次閱讀
 - esp32有哪些編程方式 923次閱讀
 - 低功耗藍牙技術的特點 低功耗藍牙如何實現(xiàn)低功耗? 2218次閱讀
 - ESP32-S3模組是怎么配置低功耗模式的?低功耗模式下功耗大概是多少? 4629次閱讀
 - ESP32-C3模塊使用問題集錦| C3的串口日志該如何禁用? 1078次閱讀
 - 有關ESP32燒錄的問題解析 3617次閱讀
 - ESP32-H2一款極低功耗的物聯(lián)網(wǎng)通信芯片 1970次閱讀
 - ESP32-C3硬件定時器簡介及使用 4899次閱讀
 - 基礎定時器實驗 1231次閱讀
 - 基于ESP32的簡易web服務器設計 3990次閱讀
 - 軟件定時器簡介及程序配置 3954次閱讀
 - 使用ESP32實現(xiàn)UDP通信的方法 6519次閱讀
 - dfrobotBeetle-ESP32控制器簡介 2974次閱讀
 - 低耗定時器電路 4811次閱讀
 - 低功耗定時電路圖 2532次閱讀
 
下載排行
本周
- 1PFC電路與BOOST電路設計實例分享
 - 1.83 MB | 12次下載 | 4 積分
 - 2世平基于靈動微 SPIN560C 的低壓無刷電機應用方案
 - 10.93 MB | 11次下載 | 免費
 - 3電源測試報告-基于 國民技術 N32L406 和杰華特 JW3376+3330 的 BMS 方案
 - 6.47 MB | 11次下載 | 免費
 - 4PWM控制器的控制方法
 - 0.39 MB | 3次下載 | 4 積分
 - 5電流檢測芯片F(xiàn)P135應用說明
 - 1.24 MB | 3次下載 | 免費
 - 6全面解讀被動式與主動式PFC電路
 - 1.27 MB | 1次下載 | 4 積分
 - 7HC88L051F4低功耗芯片規(guī)格書
 - 4.76 MB | 1次下載 | 免費
 - 8CIU32D655x5數(shù)據(jù)手冊
 - 2.14 MB | 1次下載 | 免費
 
本月
- 1常用電子元器件使用手冊
 - 2.40 MB | 52次下載 | 免費
 - 2高功率密度碳化硅MOSFET軟開關三相逆變器損耗分析
 - 2.27 MB | 33次下載 | 10 積分
 - 3PFC電路與BOOST電路設計實例分享
 - 1.83 MB | 12次下載 | 4 積分
 - 4世平基于靈動微 SPIN560C 的低壓無刷電機應用方案
 - 10.93 MB | 11次下載 | 免費
 - 5電源測試報告-基于 國民技術 N32L406 和杰華特 JW3376+3330 的 BMS 方案
 - 6.47 MB | 11次下載 | 免費
 - 6USB拓展塢PCB圖資料
 - 0.57 MB | 11次下載 | 免費
 - 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊
 - 4.51 MB | 9次下載 | 免費
 - 8HAL9303線性霍爾效應傳感器技術手冊
 - 0.70 MB | 9次下載 | 免費
 
總榜
- 1matlab軟件下載入口
 - 未知 | 935134次下載 | 10 積分
 - 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設計
 - 1.48MB | 420064次下載 | 10 積分
 - 3Altium DXP2002下載入口
 - 未知 | 233089次下載 | 10 積分
 - 4電路仿真軟件multisim 10.0免費下載
 - 340992 | 191424次下載 | 10 積分
 - 5十天學會AVR單片機與C語言視頻教程 下載
 - 158M | 183352次下載 | 10 積分
 - 6labview8.5下載
 - 未知 | 81600次下載 | 10 積分
 - 7Keil工具MDK-Arm免費下載
 - 0.02 MB | 73818次下載 | 10 積分
 - 8LabVIEW 8.6下載
 - 未知 | 65991次下載 | 10 積分
 
	                電子發(fā)燒友App
	            
	        
	        
          
        
        
	                    
                        
                        
                        
                        
                        


創(chuàng)作
發(fā)文章
發(fā)帖  
提問  
發(fā)資料
發(fā)視頻
上傳資料賺積分
           
            
            
                
            
評論