O projeto foi desenvolvido instalando um módulo TS-7200 ARM9 SBC numa torradeira convencional e configurando o NetBSD nela. Trouxemos detalhes deste peculiar projeto!
| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. Mais detalhes clicando aqui.
Introdução
Há muito tempo se considera que o sistema operacional NetBSD, baseado em UNIX, portátil para todo tipo de máquina, exceto, talvez, numa torradeira da sua cozinha. A Technologic Systems, no entanto, conquistou essa última fronteira! Usando o embarcado TS-7200 encaixado dentro do espaço vazio de uma torradeira padrão de duas fatias, a Technologic Systems projetou uma torradeira funcional que roda com o NetBSD.
A torradeira, que estava em exposição no estande do NetBSD na LinuxWorld Expo, em São Francisco, é tão sofisticada quanto possível. A torradeira possui um LCD de 4 linhas, teclado USB, porta Ethernet /100 e uma porta serial RS232 para o console externo. As placas de circuito interno da torradeira foram ignoradas e roteadas através da placa da CPU, permitindo que o NetBSD controle completamente os recursos da torradeira. Um teclado se conecta através de uma porta USB na lateral da torradeira e o LCD 4 × 40 exibe um prompt de login do NetBSD /toaster. O elemento queimador também é controlado pelo TS-7200 através de um relé interno. Ao contrário das torradeiras anteriores do NetBSD, que não eram nada mais do que um glorificado case-mod, esta torradeira pode realmente torrar pão!
O NetBSD foi transferido para a torradeira por Jesse Off, engenheiro da Technologic Systems. Quando perguntado detalhes sobre o esforço de uma semana, ele respondeu:
O NetBSD está bem definido para este tipo de desenvolvimento de aplicativos embarcados. Eu estava mais preocupado com coisas físicas, como encaixar o hardware dentro da caixa e a placa ser capaz de sobreviver a 60 segundos de cada vez a meio centímetro de distância da saída da chama de 800 watts. Um PC normal não pode sobreviver à temperatura ambiente sem dissipadores de calor e coolers, e o TS-7200 não possui nenhum dos dois.
O design final não tem problemas térmicos e não permitirá que o usuário presencie um travamento do sistema se as coisas começarem a ficar próximas às margens de temperatura dos componentes internos medidos pelo sensor de temperatura integrado.
Quando perguntado sobre o que ele acha do sistema operacional NetBSD, Off respondeu:
Bem, estou dividido. Eu tenho sido um pequeno desenvolvedor do NetBSD nos últimos quatro anos. A árvore de fontes única, sem empecilhos e de alta qualidade do NetBSD é um ótimo ponto de partida para criar um aplicativo incorporado. As APIs têm uma excelente relação entre poder e complexidade e são codificadas com grande sabedoria e grande intelecto. Para o NetBSD, porém, ser mais sábio é definitivamente a maior virtude.
Quando perguntado sobre qual era o objetivo desse exercício, o presidente da empresa, Bob Miller, riu e disse:
Nós definitivamente não estamos planejando entrar em plena produção com isso! A ideia era seguir em frente em um processo que a maioria dos nossos clientes está usando todos os dias em seus próprios projetos incorporados usando nossas placas. Embora os clientes provavelmente não usem torradeiras em seus projetos, eles possivelmente encontrarão muitos dos mesmos problemas, como controle de hardware GPIO, design/modificação de software personalizado, lidar com espaços apertados e/ou altas temperaturas.
Então, o que exatamente está dentro dessa torradeira para um computador ler/controlar? Por um lado, há uma pequena trava magnética que mantém a plataforma contra a ação da mola depois que você pressiona. Para engatar essa trava, é preciso saber quando o usuário está pressionando o pão na torradeira, que o TS-7200 lê com outro sensor.
Há um botão de nível de escurecimento (um potenciômetro), que é lido com uma entrada de conversor analógico. O painel frontal também contém quatro LEDs vermelhos brilhantes e cinco botões que aparecem no sistema como um teclado de 5 teclas. O driver NetBSD LCD apresenta um console de modo de texto VT100 padrão que tanto o teclado USB quanto o painel frontal de 5 teclas estão conectados.
Detalhes técnicos
Todos os periféricos tinham drivers do NetBSD escritos que permitiam sua manipulação e leitura. A interface para o hardware da torradeira usa a API sysctl. O sysctl permitia a codificação fácil da máquina de estado finito do cozimento como um simples shell script. Os quatro LEDs são configurados como saídas de sinal PWM para variar o brilho/taxa de intermitência. A temperatura é rastreada usando o sensor TMP124 da própria placa TS-7200. Esse sensor de temperatura tem precisão de 0,0625 ° C e o driver do kernel faz várias medições ao longo do tempo para interpolar uma precisão ainda maior (o sysctl retorna milionésimos de ° C).
O botão de nível de escurecimento é um potenciômetro conectado ao canal MAX197 ADC de 12 bits que retorna um número de 0 a 4096 para o sistema também via sysctl. Os cinco botões são interruptores simples que são lidos em 64 Hz pelo driver de teclado matricial do NetBSD. Este driver permite o acesso ao sistema como um teclado padrão usando a API wskbd do NetBSD. O LCD do modo de texto 4 × 40 é um LCD baseado em HD44780 bruto disponível em allelectronics.com. Esses dispositivos usam o driver de kernel hd44780 bit-banged que permite o anexo no sistema como um display padrão do NetBSD. Os drivers wsdisplay e wskbd se unem na wscons quadro para aparecer para o sistema como um console regular do sistema VT100.
Placa TS-7200 usada na torradeira!
Uma instalação completa do NetBSD está no compact flash de 512 MB conectado ao TS-7200. Isso inclui compiladores auto-hospedados, servidor FTP e cliente telnet, servidor ssh, bibliotecas de criptografia, depuradores de kernel e user-level, e utilitários UNIX padrão. O Apache com PHP também é instalado no TS-7200 e apresenta alguns programas CGI para controlar os LEDs, reproduzir música, etc. Como o LCD 4 × 40 é anexado como um console genérico, a manipulação de arquivos de texto também é razoavelmente possível usando editores de texto instalados, embora admitidamente usando vi em uma exibição de texto de quatro linhas não é particularmente produtivo.
A própria torradeira usa uma única placa-filha TS-7200 plus TS-DIO24 para controle de torradeira. Dois pinos de saída de 48 mA no TS-DIO24 acionam diretamente dois relés de 5V com contatos de 250V/8A. Um relé é usado para ligar 110V ao elemento do queimador e um relé é usado para ligar 25VDC ao trinco magnético. 25 VDC é adquirido tocando alguns traços na placa de circuito da torradeira após a fonte de alimentação. Todos os traços da parte da fonte de alimentação do PCB para os LEDs e botões foram cortados e, em vez disso, conectados aos pinos GPIO TS-DIO24 do TS-7200 através de pequenos fios de jumper soldados diretamente nos componentes.
Uma pequena fonte de alimentação chaveada separada de 5 V também é colocada dentro da casca da torradeira para alimentar o TS-7200, o TS-DIO24 e o LCD da mesma linha de 110V que vem através do shell da torradeira. A porta USB do TS-7200, console serial DB9, e o jack ethernet são colocados em tomadas na parte de trás da torradeira. A porta USB é então usada para conectar um pequeno teclado de PC ao sistema que combina com as cinco teclas wskbd para controlar o console de exibição LCD 4 × 40. Os alto-falantes USB são conectados através do hub USB embutido no teclado para permitir a reprodução de MP3s enquanto a torragem ocorre.
Análise Opinativa
Com certeza essa é uma maneira interessante de comer o pão que o diabo amas… digo, torrou!
Brincadeiras á parte, uma torradeira executando BSD mostra o poderio do que um equipamento tão simples como uma torradeira pode se tornar com o advento da Internet Das Coisas. Ainda mais quando o NetBSD – juntamente de todos os demais sistemas UNIX e baseados nele – se mostra maleável o suficiente pra ser completo e enxuto ao mesmo tempo, tornando possível projetos como esse com bom desempenho.
#UrbanCompassPony
Fonte:
EmbeddedARM
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.