Bouwen van uw eigen Wifi-radio (9 / 14 stap)

Stap 9: Code


ik zal gewoon toevoegen de volledige code hier. Het is een beetje rommelig, aangezien ik niet elk gewenst moment verlaten om het schoon te maken. Toen ik heb het schoongemaakt (en verbeterd), zal ik de nieuwe postcode. Ik zal ook de foto's die ik gebruikt zodat u hen ook kunt hier toevoegen.

Wanneer u uw Atmega programmeert, moet u ook JTAG uitschakelen in de fusebits en de interne oscillator ingesteld op 8MHz.

De code zal passen in een Atmega16 maar ik gebruikte een Atmega32 als ik wil later toe te voegen sommige extra functies.

$regfile = "m32def.dat"
$crystal = 8000000
$baud = 9600

Config Serialin = gebufferde, grootte = 255
Config Serialout = gebufferde, grootte = 100
Config Graphlcd = 240 * 128, Dataport = Porta, Controlport = Portc, Ce = 5, Cd = 4, Wr = 7, Rd = 6, Reset = 2, Fs = 3, Mode = 8

Config Scl = Portc.0
Config Sda = Portc.1

Cha Alias Pind.3
ChB mailalias Pind.4

Config Cha = Input
Config Chb = Input

Const Ds1307w = & HD0 ' schrijven DS1307
Const Ds1307r = & HD1 ' ds1307 lezen
Const Adsecs = & H00 ' adres seconds
Const Admins = & H01 ' adres minuten

Dim Count As Byte
Dim I As Byte
Dim J As Byte
Dim Pos As Byte
Dim Oldpos As Byte
Dim Maxpos As Byte
Dim staat als Byte
Dim Volume As Byte
Dim Temp As Byte
Dim Uart_in As Byte
Dim Uart_buffer As Byte
Dim uren als Byte
Dim Mins As Byte
Dim Secs As Byte
Dim lengte As Byte
Dim Boxx As Byte
Dim Boxx2 As Byte
Dim Tube(4) As Byte
Dim X As Byte

Dim Uart_in_str As String * 255
Dim Stationname As String * 60
Dim Title As String * 60
Dim Station_pos As Byte
Dim Title_pos As Byte
Dim aanwijzer As Byte
Dim Station_length As Byte
Dim Title_length As Byte
Dim Temp_str As String * 4
Dim Volumestr As String * 3
Dim Station(20) As String * 30
Op Int0 0int
Int0 inschakelen
Inschakelen Interrupts

' Instellen van de Chohung Bank

Op Int1 1int,
Int1 inschakelen
Inschakelen Interrupts

Wacht 1
CLS

Init:
Showpic 0, 0, Intro
Vak (115, 90)-(200, 104), 255

Voor I = 118 tot 194 stap 4

J = I + 3
Boxfill (i), 92 - j, 102, 255
Wacht 3

Volgende
Chr(13) afdrukken
Wacht 2
Afdrukken "mpc duidelijk"
Voor I = 0 tot en met 3
Stationname = Lookupstr (i, Tunerlist2)
Afdrukken "mpc toevoegen"; Stationname
Volgende
Print "mpc volume 50"
Print "mpc play"
Volume = 20
GOSUB Empty_buffer
Ik = 1
Count = 1
Hoofdpodium:
Staat = I
CLS
Als State = 1 Then Goto Radio
Als State = 2 Then Goto Tuning
Als State = 3 dan Goto Vol
Als State = 4 dan Goto Setup

Radio:

Maxpos = 6
POS = 1
Oldpos = 1
Boxx = 0
Boxx2 = 40

Showpic 0, 88, spelen
Showpic 40, 88, pauze
Showpic 80, 88, Stopp
Showpic 120, 88, Volume
Showpic 160, 88, Tuner
Showpic 200, 88, klok
Vak (0, 88)-(40, 127), 255

Doen
Als ik <> staat vervolgens Goto Main
Als Pos Oldpos dan <>
Vak (boxx, 88)-(boxx2, 127), 0
Boxx = Pos - 1
Boxx Boxx = * 40
Boxx2 = Boxx + 40
Vak (boxx, 88)-(boxx2, 127), 255
Oldpos = Pos
End If

Afdrukken "echo"; Chr(34); "submenu"; Chr(34); " | NC localhost 6600 | grep -e ";" Chr(34); "^ Titel:"; Chr(34); " -e " ; Chr(34); "^ Naam:"; Chr(34); ">/dev/tts/0"; Chr(13)
Waitms 500
GOSUB Getuart
GOSUB Parser
CLS tekst
Zoek 5, 1
LCD Stationname
Zoek 8, 1
LCD titel

GOSUB Readclock
Loop

Tuning:

CLS
Count = 1
Doen
CLS tekst
Als ik <> staat vervolgens Goto Main
GOSUB Readclock

For J = 1 tot en met 4
Station(j) = Lookupstr (j, Tunerlist)
Volgende
J = aantal
Zoek 5, 5
LCD Station(j)
J = Count + 1
Zoek 6, 5
LCD Station(j)
J = Count + 2
Zoek 7, 5
LCD Station(j)
Waitms 500
Loop

Vol:
CLS
Doen
GOSUB Readclock
Als ik <> staat vervolgens Goto Main
Afdrukken "echo"; Chr(34); "status"; Chr(34); " | NC localhost 6600 | grep -e ";" Chr(34); "^ volume:"; Chr(34); ">/dev/tts/0"; Chr(13)
Waitms 100
GOSUB Getuart
GOSUB Volumeparser
CLS tekst
Zoek 6, 10
Volume = Val(volumestr)
LCD "Volume:"; Volume

Loop

Setup:
J = 1
Als J = 1 dan Count = uur anders Count = minuten
CLS
Doen
CLS
Als ik <> staat vervolgens Goto Main

' Gosub Readclock

Als J = 1 dan uren = anders Mins Count = Count

Tube(2) = min / 10 ' splitst de uren en minuten in
Temp = Tube(2) * 10 ' 4 cijfers zodat dat het kan worden weergegeven
Tube(1) = minuten - Temp
Tube(4) = uur / 10
Temp = Tube(4) * 10
Tube(3) = uren - Temp

Temp = Tube(4)
X = 48
GOSUB Clockpic
Temp = Tube(3)
X = 72
GOSUB Clockpic
Temp = 11
X = 96
GOSUB Clockpic
Temp = Tube(2)
X = 120
GOSUB Clockpic
Temp = Tube(1)
X = 144
GOSUB Clockpic

Zoek 8, 8
LCD ik
Waitms 100
Loop

Einde

0int:

Als ik = 1 en Pos = 1 dan Print "mpc play"
Als ik = 1 en Pos = 2 vervolgens afdrukken "mpc pauze"
Als ik = 1 en Pos = 3 vervolgens afdrukken "mpc stop"
Als ik = 1 en Pos = 4 dan ben ik = 3

Als ik = 1 en Pos = 6 dan ben ik = 4
Als State = 2 Then
Print "mpc play"; Graaf
Ik = 1
End If
Als ik = 1 en Pos = 5 dan I = 2
Waitms 100
Als State = 3 dan ben ik = 1
Als ik = 4 en J = 2 Then
GOSUB Setclock
Ik = 1
End If
Als ik = 4 en J = 1 Then
GOSUB Setclock
J = 2
End If
Terugkeer

1int:
Waitms 1
Als Cha = 1 en ik vervolgens <> 3
Als Chb = 0 dan Incr tellen anders Decr graaf
End If
Als Cha = 1 en ik vervolgens 3 =
Als Chb = 0 dan Print "mpc volume + 5" anders Print "mpc volume -5"
End If
POS = aantal
Als Pos > Pos Maxpos dan = Maxpos
Als Pos < 1 dan Pos = 1

Terugkeer

Getuart:
Uart_in_str = ""
Doen
Uart_buffer = Ischarwaiting()
Als Uart_buffer > 0 Then
Uart_in = Inkey()
Als Len(uart_in_str) < 254 dan Uart_in_str = Uart_in_str + Chr(uart_in)
Als Len(uart_in_str) = 254 dan Uart_in_str = Uart_in_str + Chr(13)
End If
Lus tot Uart_buffer = 0
GOSUB Empty_buffer
Terugkeer
Volumeparser:

Volumestr = ""
Temp = Instr (uart_in_str, "volume:")
Temp Temp + 8 =
Volumestr = Mid (uart_in_str, Temp, 3)

Terugkeer
Parser:

Stationname = ""
Titel = ""
Station_pos = Instr (uart_in_str, "naam:")
Title_pos = Instr (uart_in_str, "Titel:")

Station_pos = Station_pos + 6
Lengte = 0
Doen
INCR lengte
Aanwijzer = Station_pos + lengte
Temp_str = Mid (uart_in_str, Pointer, 1)
Lus tot Temp_str = Chr(13) of Temp_str = ""
Als lengte > 60 dan lengte = 60
Stationname = Mid (uart_in_str, Station_pos, lengte)

Title_pos = Title_pos + 7

Lengte = 0
Doen
INCR lengte
Aanwijzer = Title_pos + lengte
Temp_str = Mid (uart_in_str, Pointer, 1)
Lus tot Temp_str = Chr(13) of Temp_str = ""
Als lengte > 60 dan lengte = 60
Titel = Mid (uart_in_str, Title_pos, lengte)

Als Station_pos = 6 dan Stationname = "Naam niet gevonden!"
Als Title_pos = 7 dan titel = "Titel niet gevonden!"

Terugkeer

Empty_buffer:

Doen
Uart_in = Inkey()
Uart_buffer = Ischarwaiting()
Lus tot Uart_buffer = 0
Terugkeer

Readclock:

I2cstart
I2cwbyte Ds1307w
I2cwbyte Admins
I2cstop
I2cstart
I2cwbyte Ds1307r
I2crbyte minuten, Ack
I2crbyte uur, Nack

Uren = uren en & B00111111 ' verwijdert bit6 & bit7

Uren = Makedec(hours) ' BCD converteert naar decimaal
Minuten = Makedec(mins)

Tube(2) = min / 10 ' splitst de uren en minuten in
Temp = Tube(2) * 10 ' 4 cijfers zodat dat het kan worden weergegeven
Tube(1) = minuten - Temp
Tube(4) = uur / 10
Temp = Tube(4) * 10
Tube(3) = uren - Temp

Temp = Tube(4)
X = 48
GOSUB Clockpic
Temp = Tube(3)
X = 72
GOSUB Clockpic
Temp = 11
X = 96
GOSUB Clockpic
Temp = Tube(2)
X = 120
GOSUB Clockpic
Temp = Tube(1)
X = 144
GOSUB Clockpic

Terugkeer

Setclock:

Minuten = Makebcd(mins)
Uren = Makebcd(hours)
Reset Hours.6
I2cstart
I2cwbyte Ds1307w
I2cwbyte Adsecs
I2cwbyte & B00000000
I2cwbyte minuten
I2cwbyte uur
I2cstop

Uren = uren en & B00111111 ' verwijdert bit6 & bit7

Uren = Makedec(hours) ' BCD converteert naar decimaal
Minuten = Makedec(mins)

Terugkeer
Clockpic:

Als Temp = 1 Then Showpic X, 0, 1
Als Temp = 2 dan Showpic X 0, 2
Als Temp = 3 dan Showpic X, 0, 3
Als Temp = 4 dan Showpic X 0, 4
Als Temp = 5 dan Showpic X 0, 5
Als Temp = 6 dan Showpic X 0, 6
Als Temp = 7 dan Showpic X 0, 7
Als Temp = 8 dan Showpic X 0, 8
Als Temp = 9 dan Showpic X 0, 9
Als Temp = 0 dan Showpic X, 0, 0
Als Temp = 11 Then Showpic X, 0, Dp

Terugkeer
Intro:
$bgf "wifiradio.bgf"
Spelen:
$bgf "play.bgf"
Pauze:
$bgf "pause.bgf"
Stopp:
$bgf "stop.bgf"
Volume:
$bgf "volume.bgf"
Tuner:
$bgf "tuner.bgf"
Klok:
$bgf "clock.bgf"
0:
$bgf "0.bgf"
1:
$bgf "1.bgf"
2:
$bgf "2.bgf"
3:
$bgf "3.bgf"
4:
$bgf "4.bgf"
5:
$bgf "5.bgf"
6:
$bgf "6.bgf"
7:
$bgf "7.bgf"
8:
$bgf "8.bgf"
9:
$bgf "9.bgf"
DP:
$bgf "dp.bgf"
Streep:
$bgf "streep.bgf"
Tunerlist:

Gegevens "", "1920 netwerk", "KCEA", "FM Tango Junin Argentinië", "TANGOCLUB"

Tunerlist2:

Gegevens "http://64.5.130.43:80", "http://198.182.76.2:8000", "http://200.58.116.222:10580", http://190.245.64.194:8000

Gerelateerde Artikelen

Bouwen van uw eigen WIFI stoorzender

Bouwen van uw eigen WIFI stoorzender

bouwen van uw eigen WIFI stoorzender met behulp van een 2.4GHz AV zenders. In deze video zal ik je laten zien hoe u kunt bouwen uw eigen jammer om de jam een WIFI-verbinding. Ik zal ook uitleggen hoe dit werkt en het verschil tussen jammen en interfe
Bouwen van uw eigen ruwe Radio van de FM

Bouwen van uw eigen ruwe Radio van de FM

In dit project demonstreer ik hoe een RF FM-zender werkt en hoe dit beginsel zich verhoudt tot de oudere AM. Ik zal u ook tonen hoe te bouwen van een eenvoudige en ruwe FM-ontvanger die kan soms zelfs laten u naar uw favoriete radiozenders luisteren.
Bouwen van uw eigen labo FM Radio Astronomy

Bouwen van uw eigen labo FM Radio Astronomy

want ik een eenvoudige man ben, en de gedachte van proberen te begrijpen van alle voor het onbekende meer is dan ik kan verwerken, verkies ik de eenvoudiger kant van de astronomie. Mijn persoonlijke astronomie tools omvatten een 4,5" reflector telesc
Bouwen van uw eigen elektrische motorfiets

Bouwen van uw eigen elektrische motorfiets

overzichtHet voltooide project is een 1981 Kawasaki KZ440, omgezet in elektrische. Hij wordt aangedreven door vier Optima Yellow Top verzegeld (AVA) lood-zuur batterijen, die een elektrische Briggs & Stratton Etek motor rijden. De snelheid van de mot
Hoe te bouwen van uw eigen slager blok

Hoe te bouwen van uw eigen slager blok

Ik vond dat het bouwen van uw eigen slager blok niet zo ingewikkeld is! Met de prachtige bron van onze schuur te trekken uit (mijn grootouders oude hout werken winkel) houden ik gewoon vinden steeds meer materiaal om mee te werken. In dit geval die e
Een Wide-Body Quadrotor - ontwerpen en ideeën om te bouwen van uw eigen.

Een Wide-Body Quadrotor - ontwerpen en ideeën om te bouwen van uw eigen.

Multirotors--hoe cool zijn!Een quadrotor is een soort multirotor vliegtuigen. Deze vliegtuigen zijn gemakkelijker dan ooit om te bouwen. U kunt beginnen met deze machine en verhogen de mogelijkheden (en de complexiteit) als u meer informatie. Uw erva
Bouwen van uw eigen "Spy Satellite"

Bouwen van uw eigen "Spy Satellite"

Ik dacht altijd dat het zou netjes te hebben van uw eigen "Spy" Satellite. Het feit dat we hebben onze eigen Spy Satellites reizen rond de aarde net verbaast me. Dus waarom niet eens uw eigen? De volgende instructable toont u hoe te doen enkel d
Bouwen van uw eigen hondenhuis

Bouwen van uw eigen hondenhuis

Dit was mijn allereerste instructable. Ik was debatteren over een project om te bouwen voor een klasse, toen het soort viel in mijn schoot. Ik hoop dat alle newbies en beginnende hondeneigenaren gelijk, geniet ervan.Als de eigenaar van een gloednieuw
Hoe te bouwen van je eigen kooi voor hamster.

Hoe te bouwen van je eigen kooi voor hamster.

ik denk dat de kooien voor dieren te klein om satisify zijn hun behoefte aan ruimte. Natuurlijk, wil ik het beste voor mijn kleine huisdier... dus heb ik besloten om een plek waar ze kan plezier hebben en ook veilig te maken.In dit instructable, ik z
Bouwen van uw eigen Atlatl

Bouwen van uw eigen Atlatl

De jager, stengels zijn prooi aan een open veld met de perfecte gelegenheid om te staken. Ogen verkleinde met volledige intentie op een schone doden. Langzaam maar zeker de jager trekt een pijl uit zijn koker en bereidt zich voor op de aanval. In een
Bouwen van uw eigen Single of Dual Tik Kegerator voor Huis brouw vaatjes

Bouwen van uw eigen Single of Dual Tik Kegerator voor Huis brouw vaatjes

deze instructies in combinatie met de aankoopgegevens is alles wat je nodig hebt om te bouwen van uw eigen mini kegerator geschikt voor huisvesting van één of twee mini keg(s) van de 5 gallon, CO2-fles, en alle slangen.Elke instructie pagina heeft ta
Bouwen van uw eigen Ugly Drum Smoker (UDS)

Bouwen van uw eigen Ugly Drum Smoker (UDS)

Ugly Drum rokers (UDS) zijn eenvoudige rookcoupé voor bouw- en operateyet zij nul enkele echt goede barbecue. Dit Instructable zal u tonen hoe te bouwen uw eigen eenvoudige UDS. Als u niet wat een Ugly Drum Smoker weet is-- of niet weet hoe een te ge
Bouwen van uw eigen Smart DNS-Proxy en Netflix deblokkeren overal

Bouwen van uw eigen Smart DNS-Proxy en Netflix deblokkeren overal

Er zijn veel commerciële diensten op het Internet, waardoor hun gebruikers te bypass geografische blokken van de Netflix om toegang tot inhoud uit de regio. Bijvoorbeeld, als u een Amerikaanse expat wonen in het Verenigd Koninkrijk en wilt toegang de
DIY, BOUWEN VAN UW EIGEN DIGITALE BINAIRE KLOK!!!

DIY, BOUWEN VAN UW EIGEN DIGITALE BINAIRE KLOK!!!

Dit Instructable toont hoe het bouwen van een digitale klok in de eenvoudigste manier. U hoeft alleen een paar instrumenten en een beetje tijd...Stap 1: Inleiding Er zijn twee manieren om te bouwen van uw eigen binaire klok.1.-een is om uw eigen PCB.